Software development is like cooking

A few weeks ago at work we were looking at the Visual Studio ALM Rangers Branching and Merging Guide and one wise colleague said that this is only a cookbook, you still have to select which recipe you want to prepare.

More recently, someone asked me on LinkedIn, “What’s the most important thing you’ve learned in your line of work? Something that college didn’t teach you.”

Well, just like in cooking, there is not in my opinion one single recipe that is more important that everything else. There are like in cooking a number of techniques that a good developer (a good cook) should know. School should be teaching new engineers some of these techniques. My experience from college is that school teach you far too few of them.

One important lesson from my experience is to expand your knowledge and familiarity with the techniques beyond what school teaches you. An excellent resource for that is the Art of Computer Programming by Donald Knuth. This series of books is huge, and myself I have not read it all. But Mr Knuth went after that which will survive the test of time, that which was true is 1968 when he first published it, and which is still very much applicable today, over 40 years later. Some do read some of it.

Just like cooking, you are most of the time not alone in the kitchen. Yes, at home you likely will do things all on your own. In a professional setting, most of the time you don’t. Then the best techniques are not sufficient. You also need to know how to interact with your colleagues and execute in a cohesive, efficient manner as a team. Many engineers sadly underestimate this point, and believe that progress in their career is primarily a function of their technical aptitude. Yes, you do need techniques and intellectual horse power, but no, you mostly cannot succeed with just those. While I do not have a great resource to refer here, I advise someone starting in this line of work not to underestimate the importance of soft skills and team work, while he needs to be ready for colleagues who likely will not give proper attention to it. People, more than computers, is the greatest challenge I have seen in software engineering.

A reference on that, from the cooking world, is the Brigade the cuisine. I would certainly not recommend using such organization for software development, but the very existence and importance of this concept in cooking show the importance of people beyond pure technique.

Another question I was asked on LinkedIn is, what does my daily routine entails, so that it may be use for practice of what goes in the work environment. I would caution people starting in the industry in trying to emulate role models that are much further in their career. Imagine you were learning to cook and try first an elaborate recipe from a renown chef. Most likely, you will fail in your attempt, the result will taste awful and you will be frustrated and disappointed. Likely you won’t learn much from the experience. (Yes, renown chefs also share sometimes surprisingly simple recipes and you can succeed at that – not the point here, and likely not what the chef does daily). Instead you do need to learn from basic, simple recipes. Learn to boil an egg, cook rice, pasta. Trivial? Don’t underestimate how many layers there is in egg cooking techniques, how much of a difference properly drained, not overcooked, a nicely seasoned pasta can make. Think of sushi apprentice chef who spend 2 years learning to cook sushi rice properly (http://www.trevorcorson.com/sushi-facts.html)

 

(Sorry this article lacks a proper ending, folks are waiting for me at work.)

This entry was posted in Aliments et boissons, Computers and Internet, Food and drink, Microsoft, Ordinateurs et Internet, Travail, work. Bookmark the permalink.

One Response to Software development is like cooking

  1. Thanks David. It’s been a pleasure, & you’ve been most helpful. I do enjoy reading older publications with an understanding that it is the basis of everything current. I actually have a collection from the 60’s to the 80’s for reference, so I’ll have to get those! Asking for practice may have been a leap, but you’ve provided information that I find even more valuable & inspiring. Thanks again!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s