DEV Community

Cover image for What I learned about software development by baking cakes
Milan Mimica for Infobip

Posted on • Originally published at Medium

What I learned about software development by baking cakes

Some time ago I started baking cakes. Out of nowhere, just like I started programming about 15 years ago. I wanted to adopt a new skill, learn something new, fun and interesting. Wait, am I talking about programming or baking?

I've been contemplating a lot lately about programming, software development, cakes, life universe and everything. Here I'm going to share some of my ideas.

Expect failures

In baking cakes, just as in software development, some attempts end with a failure, going down the drain/toilet/unlink(2). At some point you realize the cake is going to be a certain failure, an unfixable one. The sooner you realize it the better. Real failures are ones from which you don't become a better pastry chef/programmer/person. Sit back and think where it went wrong, have a glass of wine, and learn something from it.

Failures don't cease, ever. Admittedly, the chemical process of cake baking, when developed in a closed system, is determined by a finite set of factors. The result should be predictable. There is no magic. Just as software is executed on deterministic machines. Yet, both fail. It's a mystery to me.

I know, there is software which never fails, developed by the process, not by people. There is also cake factories producing rum-tasting cubes wrapped in plastic. Not my coup of tea.

You cannot force quality

Motivated people deliver quality. If I don't feel like writing software I am not going to write software. Same goes for cakes. It's just that baking cakes doesn't pay my bills, but honestly, bad quality software doesn't pay anyone's bills either. When I don't feel like coding I can always resort to reviewing someone else's code, writing cute emails, thinking about architecture, or just socializing with other people who also don't feel like coding.

Luckily, there are times when all I wanna do is to bake a cake. Coding, also sometimes.

Working software over comprehensive documentation

You should already have heard this one. Here is what I think about recipes: you don't need those. They are incomplete, wrong and you probably don't know how to use them. A recipe is just a reference. It roughly describes the process. It's a good starting point to develop something on your own. If it weren't so, you'd be better of with a cake printer.

Recipe is like a programming tutorial. You need it just to get started. Soon enough you'll have to learn about all the hidden processes that make a cake a great success.

Discussion (0)