Yes, Chef! Git in the Kitchen - Montana Webmaster

Yes, Chef! Git in the Kitchen

Thinking about Process as its own Thing

Well thought out process matters. The more people involved, the more it matters.

Busy restaurant kitchens and busy software development teams have similar process needs. One similarity is the never-ending search for the perfect process. How much process decision should management control, and how much should be left to the “team” to adapt to the work at hand. Is there one overall system that can be used for all situations?

Process is an important field of study on it’s own, even though it produces neither food nor code. And, whether you are a chef or a programmer, part of your learning curve, is learning about process.

Process is about Movement and Change

Food moves through the stations in a kitchen in various stages of preparation. From raw ingredients to storage to prep to storage to heat to the pass and on to the front side of the restaurant. There is a change to the food at each step. And, after each step in the process, the food is stored somewhere until the next step is ready for it. In a restaurant, there are many types of storage, depending on heat needs. Some types of storage hold large quantities, such as full crates of vegetables. Others hold small quantities, such as mis en place, which puts a small amount of frequently used ingredients right at hand.

Code moves through the team in various stages. While it’s easy to identify the process in the hand-off from one station to another in a kitchen, it’s not so easy with code development. Additionally, all the stages are held within one place, whether raw ingredients or final product.

Developers have a formalized process called Git for making sure the work is done in the right order and without duplication . Git is strange because it’s both a system and a specific piece of software to implement the system. And, there are other software packages that implement the Git system. Git works from a repository, or storage for the parts of the software project that are functional. The process for accessing the code and updating the code are very strict.

Formal Process in a Commercial Kitchen

It is actually easier to find information about various software development  processes than commercial kitchen process because one system, the brigade system, was started in the 1800s by Auguste Escofier. This  process seems to be the Holy Grail, but, articles can be found about alternatives.

A big difference between food and software is that you can see the food. You can hand it off easily to the next person. Code is visible, but software is invisible. Another difference is that food being prepared moves more linearly through the kitchen because once, you’ve chopped it, or cooked it, or put it on a plate, it’s impossible to unchop it or uncook it. You have to start over.

In describing the kitchen brigade system, the focus is on what jobs each person does, not the shape of the kitchen or what equipment is used to do each task. But, it does describe 25 possible chef positions in a commercial kitchens. While most commercial kitchens aren’t large enough to have 25 different positions, each position does identify a task that needs to be done. And, the food physically moves from place to place.

Formal Process in a Development Team

Another big difference between food and software is that you can change a software product after it’s being used.

But, you don’t want those changes to be released until they are finished and tested. So, the process has to cover how to change software after it has been released, not just when it’s in initial development. To do that, you have a “master” copy of the code that is the live production copy. Developers work on copies of the production code. Chefs in a commercial kitchen would envy the option to go to that plate that is ready to go and make a copy!

With a system like Git, there are specific terms to describe the stages those copies go through before they can become changes to the production copy. Git comes to play at the stage where there is code involved, and stays in play until that software is no longer in use.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.