Nej's Natterings

Thursday, October 05, 2006

Estimating

One of our objectives at work is to improve our estimating skills. By this I don't mean "there are 2,547 beans in that jar" I mean software development time estimating.

Previously this was easy as I just said "two weeks" to every request. A month for a big job. But now they want to stop really big projects overrunning by months and months, and so we have to track each step of the project and log the reasons for any delay, such as "Complexity misunderstood, Working on other projects, Waiting For Other People, Holiday, Change in Scope". These can alternatively be written as "Didn't Bother Researching It Properly,Fixing Somebody Else's Mistakes In Another Project, Reliant On Dumb People, Running Away So Somebody Else Does The Tricky Bit, To Be Expected".

The thinking is that by learning where the delays are, we can build those into the estimates of when we'll be done. So whilst we think something will take 10 days to do, it'll actually take us 13 days, because of interruptions, delays etc. Therefore the effort and the delivery date will not match. 5 working days of effort does not mean you'll deliver in 5 working days.

So for my latest project I estimated 9 days of effort. I was then advised to build in a couple of extra days, especially as I was likely to be doing something else for a day or two. No problem, I add a couple. I'm also then told that over-estimating is as bad as under-estimating. Three days into the project, and frankly, I could have it done by lunchtime if I wanted to. But then I'm not supposed to finish it until the 16th of October, according to my planning sheet. If I finish early, I'll look bad for estimating too high (which I had a suspicion I had done anyway). Especially as I'd have done a 9-day project in 3 days which is WAY off.

So, this is the really, really clever bit, and where the whole system falls down. ALL of my projects will ALWAYS be perfectly on time, making me the best estimator EVER (with a bit of margin built-in to make it realistic). How will I do this? Simple. I'll always over-estimate, but then work really slowly when it looks like I'll finish a week early. This will also allow me to write blogs and waste time. So each task that I've put down a day to do, that is actually taking me about 15 minutes, will still be stretched out to a day. Now I have to wonder what to do with the remaining 7 hours of today...

0 Comments:

Post a Comment

<< Home