Why software engineers can make excellent bread makers
Recently, it had dawned upon me how similar building software products was to baking sourdough bread.
To set the context, let me share some background and a little story. My fiancĂ©, Marko, and I are consultants in the tech space and LOVE food. We often work long hours so by the time we factor in a social life, dining out was the norm and cooking/baking was the exception. After many years of excuses, we began to question the quality of ingredients and food which we were eating from restaurants, markets and grocery stores. One weekend about 6 months ago, we were having a conversation about the weekly purchase of artisan bread, which led to a personal challenge of âhow hard could it really be to make our own breadâ.
The conversation went a little something like this:
Me: âI like this sourdough too, but why is this it âbetterâ than the ones from Harris Farms or Woolworths?â
Marko: âIt tastes better.â
Me: âBut at $10 (compared to $5) per loaf each week, it would be good to knowâŠis it healthier?â
Marko: âIâm not sure.â
Marko: âActually, how hard could it be to make bread anyways? Let me take a look (and simultaneously opens Google on his mobile).â
Whilst it might sound like a typical couples conversation, this was âthe end of the beginningâ. A sequences of events, research and experimentation had begun. We both learnt a lot about bread, itâs history and the difference in store-bought bread compared to the bread is that baked at home with homemade sourdough starter.
Here are four facts about why real sourdough (and homemade) bread is healthier than store-bought bread:
- Store-bought bread uses lower quality grains, thus can lack essential nutrients
- Store-bought bread uses preservatives such as Benzoyl Peroxide & Calcium Peroxide
- Homemade bread can be adapted to your dietary requirements (eg. gluten free, organic, etc.)
- Homemade bread tastes better because you can control the quality and types of ingredients used
Itâs amazing that bread is the most widely consumed food in the world and that itâs been apart of our diet for approximately 30,000 years. Letâs take a look at the 7 commonalities that we noticed between homemade sourdough bread and software development.
1. Trial and error
When we donât understand how a particular technology works, we apply the âbrute forceâ method by default. Likewise when making our first loaf of sourdough bread. Itâs all about trial and error but it may not be the most efficient for reaching the imagined goal. For example, when making a decision about how much to invest into developing a software product, we are often emotionally distracted by a combination of capturing the opportunity and the funds that weâre willing to pour into it.
2. They both demand attention
When making real sourdough bread, bakers use something called âsourdough starterâ (aka natural or wild yeast), instead of commercial yeast. The starter constantly needs to be âfedâ in order to keep it active and to maintain its âstrengthâ. Additionally, the process for making the dough takes patience and attention to the personality of the dough. For example, there is never a fixed time around how long you should let the dough rise for because there are many factors that influence the rate at which the dough will rise.
Similarly, the technologies used to build software products need to frequently be updated because technologies are constantly evolving. And once a software product is built, the work is really only half done. The product must now be maintained and enhanced in order to stay competitive and useful for its customers.
3. Lean experiments
In 2011, a book called the Lean Startup was published and the concept of running experiments exploded in the tech space. The general principle is to rapidly discover if a proposed business model, thus software product, is viable. This grew in popularity quickly due to the number of factors like a businessâ technology legacy, requirements, constraints and team skillset and experience that played a significant role in the resulting software product. Whilst two different teams might have the same skills and experience building web software products for a particular industry, 99.9% of the time you will end up with a different product (eg. multiple ways to write code that achieves the same result). No two software products are created exactly the same.
The same can be said about baking sourdough bread. When making the exact same loaf of bread, a baker could have followed the exact same measurement of ingredients, but without knowing the environment the dough was proofed in, 99.9% of the time youâll end up with a different kind of loaf. Temperature, duration of proofing, different types and qualities of flour and the combinations of different flour types can result in a wide range of sourdough bread flavour, shape, crumb openness (interior texture) and overall quality. I can speak from second hand experience of listening to my fiancĂ©, who also happens to be a software engineer and regularly talks about his next sourdough experiment. Thereâs always a discussion about the sourdoughâs hydration and the debate about the percentages of different flours in the next sourdough loaf. One may dare to say that sourdough baking has become a scientific hobby for some. Therefore, no two sourdough breads can be alike.
4. Early feedback, often
Obtaining a certain level of quality is all about frequently collecting early feedback. In the kitchen, it is common to continuously make the same type of bread and modify one or more variables (eg. type of flour, proportion of water to flour, etc.), in order to work towards a desired flavour and crumb openness in the sourdough bread. To achieve this, it requires patience and an analytical approach due to the many iterations of experimentation with each new sourdough loaf. For example, feeding the starter regularly with unbleached organic plain flour until it is established then occasionally feeding it with wholemeal flour adds a little ânuttinessâ to its flavour.
In product development, it is common for each new feature to be tested or put in front of a customer to obtain feedback and learn what needs to be tweaked or what didnât behave as expected. Customers often cannot articulate and prescribe the exact issue with the product. Instead, customersâ infrequent engagement or âuninterestedâ reactions of the product are often a sign that the product doesnât provide value or meet a need. Hence, it is crucial to continuously experiment, test and learn the new product ideas and what the end-userâs needs are.
5. Perceived value
For both sourdough bread and software products, there is a wide price range associated to how much it will cost to make or to build, eg. time, experience, skill and quality. The key factors influencing which end of the price scale you end up paying depends on the quality of the product, skills and experience involved to produce the product and the associated worth assigned to the product by the customer. At the end of the day, if the customer does not see any value in a particular product (eg. artisan sourdough bread or custom software), they would most likely go for the cheaper option.
Regardless of it being sourdough or software, itâs important to educate the customer on the different ends of the price scale and the respective pros and cons.
6. Itâs not cheap to make
There are many reasons why cheap sourdough simply doesnât exist. The process to make it isnât fast, so the âtime-is-moneyâ approach just doesnât work here. With a loaf naturally containing so few ingredients, any artisanal baker worth their (third ingredient) salt will take huge pride in selecting the best ones for the job.
Developing software is also expensive, not because of the cost of developers to build the product, but because of the collective cost of all the activities, time, resources and effort that is required to take a software product from a concept to a finished product that customers will use.
To be clear, Iâm not saying you canât get cheap sourdough bread or software products. But if you do get them cheap, you should ask yourself âwhat corners did they cut in order to reduce the price?â What are you paying âtomorrowâ for the perceived cost-saving incurred today (eg. the cost of convenience)?
7. Uncertainty is king
Whether itâs getting the sourdough bread to the ârightâ level of sourness or getting your bread to the desired level of âfluffinessâ, there are many unknowns with how the bread could turn out. From the history of the sourdough starter itself to the batch of organic flour and combination of different flour types, it is not easy to predict the exact characteristics of the sourdough bread. To give you an idea of some questions:
- Which flours and in what combinations will give me âfluffyâ sourdough?
- What are the âbestâ flours to use?
- How much of which flours should I use to make gluten free sourdough?
- Etc.
The biggest question that we want to know when it comes to software development is âwill there be customers who will pay for this new product/feature?â. There are also countless other questions like:
- Is this product useful?
- Does it deliver value?
- How much is someone willing to pay for this product?
- Etc.
As you can see, uncertainty is the norm when it comes to baking sourdough and developing software. But with experience and the help of more scientific approaches, the multiple variables involved with bread making and software development can be brought under control as a result of reducing the uncertainty. As a result, bakers and producers of software are empowered to make more confident decisions and have a more realistic expectation of the outcome.
8. From scratch or pre-built
For some, sourdough bread may be as simple as buying sourdough bread from the grocery store as an item to be eaten. For others, it may be as complex as understanding all the ingredients, quality and nutrition of the ingredients, sourcing their own ingredients then baking their own sourdough bread.
Sourdough can be as simple as buying it from somewhere. But it can be as complex as understanding all the ingredients, quality and nutrition of the ingredients, sourcing their own ingredients then baking their own sourdough bread. With software products, the same two extremes existâââeg. to build the software from scratch or to utilise a software that is already pre-built by a third party.
For both sourdough and software products, there are different pros and cons corresponding to the âfrom scratchâ (eg. homemade sourdough and custom built software) compared to the âpre-builtâ (eg. store-bought sourdough and software built by a third-party) version of the product. These pros and cons help the consumer to decide based on their perceived value.
Analytical thinkers, passionate doers
By default, both those who produce software products and those who bake real sourdough bread must be analytical thinkers. Analytical because it is a mandatory requirement for uncovering the essence of desirability, usability and quality of the end productâs consumer in order to be successful.
âThere are no cheap tickets to mastery. You work have to work hard at it, whether it means rigorously analysing a systemâŠand throwing yourself into the humility of not-knowing.ââââDonella H. Meadows
Software development is the art of problem solving because a product usually stems from experiencing a problem or desire to make something more efficient with the help of technology. There are no formulas or instructions to inform how we could create the perfect solution. The probability of the intended solution is surrounded by waves of uncertainty due to several factors such as the rapidly changing and wide variety of technologies and imperfect information. Thus, the only way to succeed is to operate lean, fast and learn lots along the way!
On the other hand, as the chef Julia Child puts it, âno one is born a great cook, one learns by doingâ. Chefs and people from the food industry say that cooking delicious food is not only art, but also a skill because of the vast range in ingredients and flavours, the attention to detail and use of techniques. âWhen you analyse cooking there are many techniques that must be mastered, and some are really boring,ââ said Michele Urvater. The same can be said about baking bread. Therefore, one must constantly balance creativity and adaptivity in the food industry because our forever evolving food sources, environments and trends.
So when it comes to successfully producing real sourdough bread and software products:
- âQuality is never an accident; it is always the result of intelligent effort.ââââJohn Ruskin
- âThere are no cheap tickets to masteryâŠââââDonella H. Meadows
- **â**FAST. GOOD. CHEAP. Choose any two.ââââCommon Project Scheduling Mantra
And if you didnât already know, bread making has been around for thousands and thousands of years. Could we learn something from baking sourdough to improve the way we develop software today?
Learned something? Hold that đ to say âthanks!â and help others find this article.
Do you want more? Follow me or read more here.