Sunday, January 24, 2010

The agile kitchen

Last year I posted about why successful restaurant kitchens are more Agile than many software 'kitchens'. Tonight, I'm posting more about this topic.

A good software developer is disciplined, just like a good chef is disciplined. Both will put extra effort to make that application or dish 'hit that sweet spot' nom nom nom. Both will cook stuff up that will add value, and not just because they can. The average chef will say "Yes" to every customer request, the good chef will use common sense and say "No" to some i.e. "No I will not put extra sauce in your lasagna because blah blah blah" - after all, this chef knows more than me and I trust their judgement. Certain requests are accepted right away - no discussion - like "sure I'll hold the nuts".

Now imagine the restaurant owner, they're not a chef, they're a manager. At the end, they are concerned about making money; after all it is a business and they didn't open this restaurant to just provide this excellent chef with a job. If the customer wants extra sauce, the manager's response will most likely be "Sure, thats X dollars extra" - the famous "change request", but thats another day's topic.

A Waterfall kitchen

Consider a "waterfall kitchen". The manager needs to know exactly how many people are seated, what each one of them are ordering, how complex each order is and how many chefs are in the back before scheduling any one order. In reality, most kitchens don't operate that way because you can't keep everybody waiting until all the orders have been taken. Finally, when the orders come out, some may be cold because of waiting so long and will be returned for re-heating. While re-heating, chef will notice that the broccoli doesn't look fresh anymore and needs to boil some new ones. Other orders will come back because they were incorrect. The chefs held the nuts on the wrong order and now a diner is choking outside. Now, all the chefs are waving their hands over their heads that it wasn't their screw up, the Manager is looking at the wait staff and developers to find someone to blame. The wait staff can't remember the details of the order they took 5 hours ago and then the customer mentioned they are allergic to nuts 15 minutes after that. The chefs say they cooked what is on the ticket...

So, clearly this "waterfall kitchen" can't work, why would it? The other problem with this kitchen is that by nature it will resist change. Because dishes are cooked at the same time, and the head chef inspects them at the same time, and waiters serve them at the same time, a change will wreck havoc.

But when can it work? That model would work when food is delivered. A catering service can't send each dish down on its own - obviously that won't work. There is only 2 trucks and they have two parties to cater to so all the food for one party needs to be delivered together to save delivery time, gas, etc. As for change, this model still works here because there are usually different varieties of food, and if you are a vegetarian or allergic to nuts the responsibility falls on your host to have something available for you - not on the caterer or their kitchen.

Anyway, I'll leave you with Chef Ramsay now and one my favorite episodes of Kitchen Nightmares - the case of the authentic Indian restaurant that served french fries and do-it-yourself curry...

Kitchen Nightmares - The Curry Lounge (sorry embed disabled for this video, and can't find one that can be embedded...) My favorite part starts at 5:40.

No comments:

Post a Comment