Agile Baking – The Way to Perfection
This blog post is inspired by my recent bread baking experiments. As I was preparing my first sourdough bread, I’ve seen similarities with agile software development process. If you look around to other disciplines, you will find out that any innovative product was developed iteratively. Don’t take this blog post too seriously 😊
Initially, I started with no sourdough bread baking skills. I read several articles, watched couple of videos and asked my family for their experience.
You can see this point as a start of a green field software project. You know how to write code, you read tutorials and you watched several talks on project success.
The major point is you don’t have a hands-on experience.
The next step is to prepare sourdough starter. There are multiple ways you can go:
- Create your own starter from either rye flour, plain flour or wholemeal flour
- Bootstrap the process by starting with dry yeast
Your software project also needs a solid foundation. You can either bootstrap your project or start from the scratch by setting up all dependencies, build and formatting tools (e.g. React, ESLint, Prettier).
You should select one way to try and evaluate it as soon as possible. Initially, I tried to use wholemeal flour, but it was not promising. A liquid was appearing on top of my starter and smell was not ideal. Based on that I tried to bootstrap process by using a tiny bit of yeast from the previous non-sourdough bread. In a spirit of experimentation, I also tried another sourdough starter based on plain flour. I maintained three starters in parallel.
Your software project might need initially multiple proof-of-concepts to explore the best way forward. It is quite common that the recommended way to start your project simply does not work beyond “Hello World” prototype. Don’t be afraid to go back to beginning and explore other ways forward.
One day you need to wake up and decide, yes, this is the day, when I will bake my first sourdough bread. I prepared flour, a pinch of salt, water and mixed in the best sourdough starter at that time. After leaving the bread to grow overnight, I baked the bread. It looked very good and the taste was much better than bread we can buy in the nearest supermarket. I received a feedback on the taste and structure. It was eaten really quickly, so there was a second attempt.
This time, I adjusted heating temperature differently and used fan-less mode of the over. I also used a different ratio of the starter and flour. After 30 minutes, I had the best bread I've ever baked 😊
The bread release process is very similar to software release process. You ship your product out, get a feedback, adjust few bits and pieces and repeat the cycle. There is nothing better than giving the product to real users and staying in touch with them to receive their feedback.
It’s always better to iterate on your idea or product than to work very long on your idea to perfection. Get the feedback from your customers as soon as possible, but don’t forget you’re the expert on your product, so you need to translate the feedback into expert actions.
Your partner will not tell you to adjust ratio of flour and water, or custom will not tell you to adjust database connection pool. They will, however, tell you “it’s too crumbly” or “it’s too slow”.