In The Mythical Man Month, Fred Brooks likened shipping software in time with customers’ expectations to cooking an omelette:
An omelette, promised in two minutes, may appear to be progressing nicely. But when it has not set in two minutes, the customer has two choices–wait or eat it raw. Software customers have had the same choices.
The cook has another choice; he can turn up the heat. The result is often an omelette nothing can save–burned in one part, raw in another.
I’m going to stretch, and maybe strain, the analogy. Sometimes you’re about to serve the omelette and you realise that something’s wrong. It’s not seasoned right, or you’ve forgotten to put the peppers in. Or perhaps your customer actually ordered a cheeseburger.
So what do you do?
You can serve it up and hope the customer won’t complain, at least not loudly enough for others to hear.
You can insist that it’s fine: you’re the chef, you’ve been cooking omelettes for twenty years and the customer wouldn’t know a decent omelette from his elbow.
You can cover it with a large sprig of parsley to make it look nice.
Or maybe you follow it up quickly with an omelette 2.0 which corrects the deficiencies in the first omelette.
Or, possibly hardest of all, you accept that the omelette isn’t right, slide it into the bin, and start again. That’s hard to do though. You’ll disappoint your customer, it means acknowledging that your first omelette wasn’t up to scratch, and it can be expensive in both time and money. But sometimes it’s the right thing to do.
Great metaphor. As infeasible as it would be, I wish more companies would choose the latter route. The sea of crappy software out there could be prevented if companies were willing to suck it up and serve something better.
On the other hand, this would be very risky business-wise. I hope that at least some middle ground will be accepted. It would be immensely refreshing if more software companies were honest and willing to admit their products aren’t as good as they could be. And I don’t mean 5 years down the line when the next iteration has shipped.
There’s nothing worse than an omelette that disappoints (and puts you off the restaurant and all the other great things it has to offer). Every meal has to hit the spot or you’ll likely strike it up as not worth the effort and expense.
It could be mediocre, but that would leave you wanting.
It could be poor, and that will definitely leave you seeking alternatives.
It could be great, and that will leave you looking for other dishes on the menu.
I’ve never gone back to the last place that served me mediocre food.
The question now is: When is it best to choose each action? I know that is something that I have personally struggled with in consulting work in the past and is something that I find easier and easier to discern as my experience level grows.
Because un