Tuesday 31 January 2012

My estimates are too optimistic

First of all, I’m not talking about story points here. As a consultant, as I am, most customers don’t care about story points. They care about –What will it cost? and the answer depends on how many hours I, or my team, will spend (don’t tell me about fixed price! I don’t want to here about it!). Story points may solve a lot of problems, but it requires the customer to be accustomed with it (and perhaps use agile methods already). So, still, very often I estimate in hours. Usually for rather “small” improvements/features/changes.

But almost all the time my estimates are too optimistic. And it doesn’t help anyone. Especially not me! So, why? I think it’s because I want to give the impression that it isn’t such a big effort so they will make an order. Or I want to give them the most optimistic estimate for being… optimistic! Or perhaps they think I’m a crappy developer who requires all that time for such a “simple” change/feature. Honestly, I don’t really know…

But, I’ve started to use a simple test to see if my estimates are too optimistic. Very unscientific, but it has never stopped me before, so why should it now :-)? Something like this:

If I estimate a new feature - or anything - to, let’s say, 20 hours. Then I question myself (in front of the customer or not, doesn’t matter): is it just as likely to take 10 hours as 30 hours (±10 hours from my estimate)? -No! 10 hours is not likely at all, even if things runs as smoothly as it could never go (has never happened yet, but I never loose hope…)! But 30 hours is not unlikely at all (if something unexpected happens, and it usually does). Not to mention 5 hours compared to 35 hours (±15); 5 hours is ridiculous, 35 is not likely – but not ridiculous! 0 hours is impossible, but 40 is not (okay, this has to be reasonable; 0 hours is always impossible and 100 hours probably not, but all estimates should therefor not be 50 hours). And all of this is my signal that my estimate is too optimistic.
Then I have to adjust my estimate until the min value is just as likely (or ridiculous) as the max value. Is 15 hours as likely as 35? Yes. Is 10 hours as likely as 40? No. Okay, so maybe I will settle at 30 hours (or something in between, like 28, but I keep things simple here)? 10 hours is as likely as 50 hours (50 hours should not happen). And 20 hours as likely as 40. But wait! 20 hours was my initial feeling! Is that as likely as 40 all of a sudden? Yes, I would say it probably is. In the end, it may take 20 hours after all (my initial feeling was correct) and then I think all I have is a happy customer (because I said 30)! I would definitely have an unhappy customer if I say 20 and it takes 40, compared to that it takes 40 and I said 30 and so on... And to be honest, if you have ever made an estimate that ended up being correct (or very close, yes it has happened) it was an estimate that had some “air” in it – right?

Of course, I could give the customer a min value and a max value. But most customers don’t want it or don’t like it.

No comments:

Post a Comment