Cooking Good BBQ is Like Writing Good Software

Cooking Good BBQ is Like Writing Good Software

I have such a passion for cooking, and I think in many ways, it started from grilling on scout campfires when I was a teenager. There is just something about the open flame and the smells from cooking on it that just so dramatically call to me, like a moth to a flame.

I tend to think of myself as somewhat of an acclaimed BBQ chef. It is most definitely a bold claim, but I do have the proof to back it up.

BBQ Season

For me, June is the start of BBQ season, and it was also the start of the season that coincided with many of us at NTC getting our first Covid vaccination. Therefore we decided to celebrate all of this and the minor redecoration of our balcony by throwing a BBQ party. As if all of this wasn’t enough reason to celebrate, this fantastic weather also coincided with the party, and quite frankly, this was such a lovely event. Not only catching up with colleagues that we haven’t seen in the flesh in, well, forever but also just celebrating the summer in general, I guess.

It was when I was finishing off the three days marinated, 24-hour slow roast, pulled pork on the BBQ that I had a sudden epiphany that good BBQ food was precisely like good software. Of course, I’d had a few drinks by this point, but I’m pretty sure that any accomplished home chef will immediately see where I am going with this analogy, but I will break it down for those who don’t.

How to execute a good BBQ

A commitment to create excellent tasty BBQ, meat, vegan or otherwise, requires certain things.

Careful research and planning

Read and re-read the recipes you have selected to make sure you understand how complicated the recipes are and that you can pull them off.

Detailed preparation

Make sure you get every ingredient when you shop. If you forget that critical ingredient and have already started cooking, it could make the difference between tasty and tasteless. Also, don’t forget to marinate your proteins well before you start cooking.

Prepare well in advance the things that you can, so you don’t have to worry about doing too many things simultaneously. Get the minor jobs done first; it will make your life a lot easier when cooking the main attraction.

Careful and attentive execution

Cooking on a BBQ requires you to be attentive at every stage of the cooking process. Check constantly on your proteins on the BBQ, make sure the heat is just right and turn the cooking food frequently to ensure an even cook.

In addition, if you rush any stage of the process, you tend to end up with something raw or tough! If you don’t use the correct spices, it will be tasteless. If you don’t pay enough attention to the cook, you’ll get something dry or, even worse, burnt.

Present beautifully

We are visual creatures. If your food looks terrible, it will often taste different to someone, even if it tastes the same as a dish that looks amazing. So throw some bright colours into your salads and other food. Even colourful plates and napkins make a surprising difference.

So, software?

As an experienced developer will tell you, a project that was planned hastily, and executed, or designed in the wrong way, can and often will run fine. But the moment you try to add things to it, the whole codebase grinds to a halt. And as patch upon patch is made to get it to do something that it wasn’t originally intended to do, things get messy and chewy and tough.

Writing software is exactly the same as the process I just described, and I don’t think you need to be a genius to see why. But just in case it is not clear:

Careful research and planning

Ensure that you have carefully thought about your user stories and how they relate to the problem you are trying to solve. Think about what can go wrong, what features are coming up.

Detailed preparation

Think about your project architecture and how to add new features and extend old ones. Make sure you understand the limitations of the libraries you intend to use. If you are lucky enough to have designers, check in with them and make sure they understand the technical possibilities of your software requirements.

Careful and attentive execution

As you are developing, it is natural to build up some level of technical debt, but try to make sure that you stay on top of it. Check back in with the designers to ensure that what you are implementing makes sense from a usability perspective. Making sure you check-in means that there will be fewer accidental diversions and things don’t get lost somewhere along the way. Make sure tests are written at every stage of the development process.

Present beautifully

To repeat, we are visual creatures. If your app/website/software looks bad or is challenging to understand, users might not want to use it even if it does everything you need it to do. Designers are essential to this process, and sound design, from service design, through UI/UX, to visual design, can make and break a project.

Conclusion

If projects can take a little longer to make a careful, holistic plan, understand the requirements and think about future features whilst re-examining while doing, the whole project would benefit.


This article is written by Senior Developer and Designer Oliver Lillie.