Managing estimation failures
In early January of this year, my wife and I decided to build a new home on a block of land that we had purchased last year. We looked around for a fair bit, and finally found a builder (Newstart Homes) who had a plan that suited our budget and our block.
So we decided to sign on the dotted line, paying the hefty deposit of $3000, on the condition that the final costs for site works be told to us before we proceeded further. If the site works came to be of a prohibitive cost, we would have pulled the plug on the project and waited a bit longer before we had enough money to go on.
You see, the block had a curious problem. It sloped for 2.75m (9 feet or 3 yards roughly) from the front to the back in a diagonal way. This required special ways to place the house, exact details of which, I will spare you.
The builder agreed to this condition and proceeded to provide an estimate for the site works, which would be accepted as final, as it would be done by their site surveyors and professional estimators.
So in early February, we received the final site works cost of $23200. An expensive figure, but we were preparing ourselves for it.
To cut a long story short, we then proceeded to customize the house. You know, widen the cupboards a little, paint this room this awful pink, select the tiles and so forth. Except, to be told 2 months later, that the site works done in February was incorrect, performed by an incompetent staff, and unfortunately, the actual cost IS going to be prohibitively expensive.
Now, mistakes happen. That's life, even if it spoils three months of designing and dreaming up your home. What happened afterwards, however, is less than optimal.
The builder decided to get nasty. Ignored phone calls and emails. Blamed us for our 'tight budget' (Yes, that's very professional, blame the victim). And asked us to cancel the project so that he won't have to refund the full deposit, when the mistake as admitted by their estimation manager, was because of their estimation staff.
So, where am I going with this personal story and why am I telling it to everybody unconcerned with the building industry?
There is a lesson here in managing failures of estimations that go beyond one industry and apply very specifically to the software industry.
This week, I had to go to a client's place. Perturbed by the lack of smoothness in a software/hardware rollover, I felt the heat as the client replayed to me a promised estimate provided by my manager and I several weeks earlier. The client complained that the initial estimate had proved wrong and that they were suffering because of it and were clearly unhappy.
I froze on the spot when I heard what she had to say. The words were eerily familiar. Ignoring the specifics, what she said, was exactly what I had said to the builder. There was a clear failure in providing estimates in both cases. I was now the builder and my client was me (ok ok metaphorically). I struggled with the implications.
I thought to myself: "Why am I any different to the builder? I failed to provide a service as a result of incorrect estimation, same as that $* builder. Is the client now thinking the same $#%^ thoughts about me?"
Clearly, a case of practice what you preach was in order.
The difference, as you may guess, lay in the way the estimation failure was managed. Instead of blaming the client, I apologized for the delay, provided a reasonable guarantee of future services and delegated tasks to ensure that the problems were rectified as a matter of high priority.
Of course, the core problem remained. What about the flawed estimates? How could I ensure that the estimates didn't fail us again? Further and more importantly, how could I ensure that failure of estimates didn't leave the client more unhappy than is to be expected from a failed commitment? In other words, how do you manage programming estimation failures?
As programmers we are notoriously and perhaps naively lampooned for providing generalized estimations ('If the software guys say it will take 4 man weeks, it will actually take 8'; or 'oh this is simple, it will only take a day!'; or 'you want it when?').
Yes, not all of us are like this. But we all do fail in our estimates one time or the other. The problem is not in the fact that we provide an incorrect estimate, but if we don't manage the fall out better.
So to repeat the question, how do you manage such failures?
(BTW: If by chance you live in Australia, and by chance you also happen to live in the state of Queensland, and further, due to another fortuitous circumstance you are also looking to build a house, well, first, Hello and Good Luck! and second, avoid Newstart homes like the bubonic plague. We still haven't received our deposit back.)