From a friend ”not particularly into IT” (my friend’s own denomination) I sometimes get the question why it is so hard to estimate the cost of a software project. After all, this is my profession, this is what I do, right? If you contract a construction company to build a house, you expect that they have done something similar before, and therefore also know how much it will cost.
I patiently reply that the analogy might not be entirely correct. Software is not a house. If what you need already exists, you just purchase a copy. And if what you need almost exists, you could buy that and then adapt it to your needs, and you would probably not talk to me, a project manager at a consultancy firm. The reason you talk to me is that what you really want is an architect, who not only designs your house – to some more or less vague specification – but also takes care of buying the plot, contracts the builders, electricians, plummers, and then makes sure that everything in the house works before handing over the keys. Preferrably, all of this is in time and on budget.
But this is what you do for a living, my friend insists. Surely your experience should count for something? And after all, it is just a house. And it should still have all the typical features of a house: a foundation, walls, doors, windows, a roof.
Yes, I reply, experience is the key. A house can only look in so many different ways. With more experience, the cost estimate will get better and better. But it is not until I have built every possible combination of features that I will know exactly what your house is going to cost.
But how come that so many IT projects overshoot their budgets with 200% or more? If you have built a number of houses, you should be able to estimate unforeseen additional costs.
Yes, I reply again, slightly annoyed with my friends persistence, I could. But after you have approved the initial drawings, and made your choice of everything from carpets to wallpaper to knobs in the kitchen, you cannot make a single change.
That’s fine with me, my friends say. I do not like too many choices, anyway.
There will be a pink toilet seat, I say, trying to make a point. With red tiling on the floor. And a green sink. Those were the cheapest I could find, and it offset the cost for the large rock in the ground that we had to remove. I hope that is fine then. No changes allowed.
You cannot do that, my friend says. That was not in the contract!
No, I reply and smile, it was not. Slowly I see my point hitting home. I continue, seeing my chance to give great wisdom to my friend.
The only way you are going to get the house that you want – not the one that is in the contract, because by default that is not the house you really want – is if you are with me every step of the way. You have choices to make along the way, no matter what you are trying to build. You are the owner of the end result, not me. And in doing so, you also control the final cost. I will help you and support you in making the decisions if you want, but in the end they are yours to make.
Ah, my friend says, I see that you are trying to make an argument for this agile (and he says the words while doing a quotation gesture with his hands) thing that you always go on about. But even so, I would expect that you, who are the professional, should be better equipped to understand that I do not want a pink toilet seat. And, I would expect you to know what the house is going to cost, at least give me a ballpark figure!
I feel slightly uncomfortable at this point, because I recognize this train of thought. Maybe I am not that professional, being unable to estimate the cost of something I do every day? I, if anyone, should have the tools to do the job right. Doubt creeps in.
And then it hits me. The analogy is false, a mirage.
Because, really, my friend is right and wrong at the same time. He is right, because if we are talking about a simple web site, I could do exactly what he wanted. But a large software project is not a house. Instead, a software project with dozens or hundreds of people involved is more akin to a huge palace with a huge glass ceiling, a large garden and a built-in combined acquarium and swimming pool.
With the mirage shattered, the analogy slightly modified, both me and my imaginary friend are happy again.