I spent last week-end in NYC with my wife and we got back to Aldea for dinner. This place is becoming our favorite restaurant in NYC. The food is creative yet not too sophisticated (as in you get to actually taste and feel the ingredients) and really good. The wine list small but enticing.
We had a reservation for 9:30pm but got there 30min early. Our table wasn't available but we were offered to sit at the "chef's counter" where you are dining literally in front of the kitchen, fully open. So we sat there ordered and inevitably started to look at the kitchen's work...
At some point I surprised myself thinking: they have a perfect flow and are working so seamlessly together. It was really impressive and we spent a part of the dinner looking at them and trying to understand how they worked. Looked a lot like what we want to achieve in software development teams: fast flow, great collaboration, minimum waste due to unnecessary communication...
Signal-based communication: very few oral communication, which seemed weird at fist (and not like I imagined) yet meal are prepared and ready to be served in no time. They are using small signals. Orders comes in from the dining room, are stacked up and each cook take a task in the pool of orders (haven't determined the processing order). Of course there is some specialization (cold, hot, cooked, uncooked, etc.) but they just take the order and do it.
Focus on done: low level of "work-in-progress". When a cook start working on a meal, they work only on it until it's finished. Finished as in ready to be served or passed to the next stage. And when a meal is ready to be served, it wait for the others on the same order and leave. Same here, few orders in WiP stage at the same time.
Don't let tasks stack up: When tasks start to stack up somewhere, somebody comes to help. I noticed 1-2 cooks plus the chef able to change from one part of the kitchen to another to help completing orders when they started to stack up (i.e.: too many oyster to open for the lady in charge -> help came to open oysters faster).
Continuous testing: of course, no chance to miss a delivery here. They all go live . So you can see them check (at least visually) really often what they are doing (and start again if not good — which doesn't seem to happen a lot)
So of course I might be totally wrong and I know nothing about how restaurant kitchens work. Plus there is a lot of obvious differences with software development, but those similarities amused me and comforted my thinking that the core principle of Agile in general and Kanban specifically "Focus on the flow" can be applied to pretty much any team work.
I haven't asked but I'm pretty sure they also do Continuous Improvement to reach and maintain this stage of efficiency!
We have some experiment running to apply Kanban principle to other team than software dev teams. I'll share the learnings, but I am pretty positive on the outcome.
If you have any experience to share on this topic, I would be happy to learn about them.