Brian sets out in search of an illuminating metaphor for out-of-control software projects and finds himself offering some wise but contrarian advice.
I’ve been trying for a long time to find a proper metaphor for the kind of perpetual emergency mode that many of us find ourselves in.
I had the feeling that emergency mode had become so pervasive and typical that many people had lost sight of the fact that it was not supposed to be a long-term thing. When everything is an emergency and everything is top priority, the world ought to feel wrong somehow. It should remind you of that scene from The Princess Bride where Inigo says, “I do not think you know what that word means.”
The problem is that we’ve been in that mode for so many years that the strangeness has worn off and we simply accept coding up the hack... perhaps saying that we’ll fix it later (in that mythical tomorrow that is less hectic than today).
So I thought that perhaps if I came up with a good metaphor I could remind us that crisis mode was supposed to be an occasional state. I hoped that this metaphor might remind people that the behavior that got you into the crisis was unlikely to get you out of the crisis!
So here is my metaphor. I hope you like it.
The China Syndrome
Imagine you are in a wedding gift store full of expensive breakable crystal... with a small pig. That pig is running around and crashing into things. Champagne flutes, crystal vases, precious china, and expensive cookware are heading for the floor.
Faced with this situation, most of us are going to do one of two things. Some of us will follow the pig, trying to catch the crystal pieces before they hit the floor and break. We catch each item, if we can, put it gently down, and then dash after the pig to try to catch the next item. Others will sit on the floor amid the chaos with a tube of Super Glue trying to repair the broken items.
I’m going to make a crazy suggestion. And I know it’s crazy because decades’ worth of managers and co-workers have assured me that it’s a crazy suggestion. Here is the suggestion:
Forget the crashing items for a moment and catch the pig! That’s right, let the next couple of vases, flutes, or baubles smash on the floor. Chances are that you will not appreciably increase the entropy of the system because it’s probably already pretty chaotic. There is a chance, however, that you will actually catch the pig and prevent the injection of still more chaos!
That’s my suggestion and, as I say, it has met with resistance when I’ve advanced it over the years.
One technique that I’ve found somewhat helpful, though, when people object to this approach, is to ask this simple question: “Do you think that there will be a day any time soon that is less busy than today?” Most people, especially those most inclined to stay in the chaos, will shake their heads and say that they cannot imagine the business ever relenting. So the decision changes from “Shall we do the right thing today or tomorrow?” to the more honest question “Shall we do the right thing today or never?”
This is similar to the advice Joel Spolsky gives about hiring: “After interviewing a candidate the only two answers allowed are ‘Hell yes’ or ‘No.’” When it comes to picking a co-worker, there is no maybe. And when it comes to quality there is no tomorrow.
That level of honesty tends to shake people up and sometimes scares them enough to reconsider even such crazy ideas as letting the baubles break—and catching the pig.
Brian Tarbox is a Principal Staff Engineer at Motorola where he designs server side solutions in the Video On Demand space. He writes a blog on the intersection of software design, cognition, and Tai Chi at briantarbox.blogspot.com.