Re: the "TDD-or-acceptance" question
Posted: Oct 27, 2007 12:24 PM
> Do "good restaurant kitchens" spend 35% 50% of their time
> cleaning or do they redesign the kitchen to reduce
They do both.
> Do "good restaurant kitchens" do meal design up front, or
> do they believe the chefs should take a different approach
> with each plate while the customers wait?
I have wondered wether to answer this for a week or so. I´ll bite.
That is the wrong rhetorical question to ask.
Now, I am a software developer. You can more or less put any development-related label on me, and I will have done that job in the past. I am no guru. I frequently make mistakes. I hope I learn from them.
I am also a foodie. I have done the wedding dinner for a friend of mine, I have cooked a 7 course meal for 35 bikers, I regularly cook food for many people with as high a quality as I can. I am not a trained cook, but I know a bit about what is needed to avoid having 50 dinner guests needing to go potty at the same time on two lavvies. This would be the dinner for the wedding, by the way. If you want to do a scallop carpaccio, be very sure of your produce.
A restaurant kitchen does not clean because they are production oriented. They clean in between tasks because doing their regular tasks (which is production, granted) will suffer if they constantly need to redo stuff because they contaminate food with scraps from whatever they did before. In software development, we would call this "reducing the bug count so you can get some real work done". We could even call it "not starting from scratch every four years because nobody can understand what the mess does any more".
Clearing away the stuff from the last thing you did and disinfecting the bench is part of something called "mise en place". Roughly, it means you need to keep track of what is going to happen. It has very little to do with the physical act of cleaning and everything to do with how you organize your work.
When you are juggling five dishes in varying states of completion, you really need to have some kind of control over that project. You also don´t have time to run around, fetching things, putting things away, trying to find where you put your tongs or where those dishes are, and, oh gods, the salmon just got burnt.
I should say "I burnt the salmon". Bugs don´t happen by themselves.
That is why there usually is a strict regime in place where you clear away whatever you don´t need, you wash down your bench, and you fetch whatever foodstuffs and utensils you need for whatever you are going to do next. You never, ever put dirty dishes in the sink - you need that sink for other stuff than as a container for dirty dishes. About 20% of the time in a kitchen is spent doing what you think of as "making food". The rest of the manpower is used to put everything in order for putting a dish out blindingly fast as soon as someone wants it. In restaurants with a fair throughput there is usually a person dedicated to ensuring the dishes are clean.
As you can see, this is a way of thinking about quality and work organization. No sauce involved.
Now, back to the wrong rhetorical question. You seem to think that there is nothing to learn from production environments. If that is the case, I think you are wrong. Mise en place is a must-have for developers too. If all you do is answer the questions of the people who put their nose in the door, fixing bugs or trying to find stuff you need, you will not get any real work done. This has absolutely nothing to do with the state of your desk.
If you think the software development community is the first profession to tackle these kinds of issues, you really are living a very shielded life. That is why your rhetorical question was wrong. I think you would be better served by trying to find stuff that you can use than by writing other very competent people off as "in manufacturing".
I will get off my high horse now.