Software Development and the Traditional Kitchen Brigade

la januari
4 min readJul 29, 2017

--

Where Linear Hierarchy Rules the Day

Some people hate analogies. Haters feel as if, in an effort to make two things analogous, facts are dropped, muddied, or stretched far beyond reality. While that may be true, I love a good analogy. As a budding software developer, parallels and correlations make my world go around. Not only do I welcome a great analogy when being taught a new concept, I am constantly looking for them as I traverse the tech world.

A few days ago, I attended a Project Management Workshop highlighting User Stories and their role in Agile Software Development. Also, I am completing a Boot Camp course that includes a unit on server/Node.js, app, and PostgresSQL — yes the wonderful world of back-end development. Following those introductions, my spinning brain begged for an analogy.

When my learning capacity is at full or overflow, my go-to-chill is television. As an aside, don’t people that act as if watching television is a full-on sin bug you? I will mention that I ‘love’ television and they look at me disdainfully and say in their best British accent (even if they were born and raised in Cleveland), “I never watch television,” And then for further emphasis they add, “In fact, I do not even own a television.” At that point I usually give them my best side-eye which, of course, they do not see because their eyes are rolled up to the ceiling/sky. But, alas I digress…

To be clear, I do not love all television programs. My genre of choice is competitive cooking reality competitions like Chopped and my fav Hell’s Kitchen with the bombastic Gordon Ramsey — which leads to my analogy — The Kitchen Brigade. Under the brigade system, each position has a station with defined responsibilities. Let’s see if it reasonably fits with Agile Software Development and Back-end Processing.

First a little background. According to Wikipedia:

The brigade de cuisine was codified just over one hundred years ago by chef Auguste Escoffier as a way to streamline the roles of kitchen staff, from executive chefs to dishwashers. Today, Escoffier’s model informs the hierarchy in the majority of restaurant and hotel kitchens. This structured team system delegates responsibilities to different individuals who specialize in certain tasks in the kitchen. https://en.wikipedia.org/w/index.php?title=Brigade_de_cuisine&oldid=783032044

The hierarchical structure is as follows:

1. Chef de Cuisine (in charge of the entire kitchen).

2. Sous Chef (second in command, supervises and coordinates the Station Chefs. Usually the expediter during service but not in Hell’s Kitchen!).

3. Chefs de Partie (the Station Chefs divided according to ingredients or cooking methods).

4. Head Waiter (in charge of service for the entire dining room).

5. Wait Staff (ensures that the food is properly delivered to the table, and that the needs of the guests are promptly and courteously met.)

Agile team analogy:

1. Product Owner (Scrum), On-Site Customer (XP), Active Stakeholder = Executive Chef. Responsible for the prioritized backlog and maximizing the return on investment. Also, documenting user stories or requirements for the project.

2. Team Lead, Scrum Master (Scrum), Team Coach, or Project Lead = Sous Chef/Expediter. Responsible for facilitating and guiding the team, obtaining resources when required, and removing impediments that keep the team from doing their work.

3. Team Member = Station Chefs Responsible for the project’s creation and delivery. The team members will normally be comprised of developers, QA, and documentation. They are responsible for planning, design, development, testing, and project delivery.

Okay, that was a stretch. But, let’s try the analogy with Back-end processing using Chef Ramsey and the Hell’s Kitchen Brigade:

Back-end Analogy:

1. The waitperson (front-end) takes a customer’s order; the order is filled in the kitchen (back-end).

2. The waitperson passes the order to Head Chef Gordon Ramsey (back-end) expediting at the pass.

3. Chef Ramsey separates the order into its component parts (meat, seafood, sauces, vegetables) and places each component in to the Sous Chef (the queue) for processing by the corresponding Station Chefs. All components are cooked simultaneously.

4. During heavy demand, Chef Ramsey can add more Station Chefs where needed. Each Station Chef is specialized and has been trained to prepare the dishes at his/her station, vegetables, meat, seafood, garnish.

4. As each Station Chef completes their dish, s/he hands it to Chef Ramsey and fetches the next request from the Sous Chef to fulfill the next order.

5. Once each component of the order is complete, it is approved by the Sous Chef, and the passed to Chef Ramsey who plates the components as a complete order, passes the plate to the waitperson, who passes it to the customer.

Ah, that was a better fit …Anyway, from my observations, a hierarchical model seems to prevail within the software industry. From coding (scope) to project management to organizational structure. While, the linear structure has its advantages in scalability and simplicity, the disadvantage is that with a linear structure Nothing can move until the component ahead completes.

Happy Coding!

<script src=”https://gist.github.com/lajanuari/81731c16dfee770b80c9be0e5e0dc1c3.js"></script>

--

--