Avoid Estimate Insanity
We all know that developers can't estimate time, don't we? But why not? Developers are very smart. We deal with abstract concepts every day. You'd think we'd be able to learn this skill over time. But somehow we never get better at work estimation. Some people attribute it to a developer's innate optimism, and that's part of it. But there's a more important factor here.
There's an old saying... "Those who ignore history are doomed to repeat it". And as Einstein put it "Insanity is doing the same thing over and over and expecting a different result".
I frequently see developers asked to generate estimates. But I rarely see anyone come back and look at why the estimates are wrong. So let's think about this... we ask for estimates and the times are completely wrong. So we complain about it... and then we do it again next week. A bit of insanity perhaps?
If you go to a shooting range, you fire a gun at a target. Then you look at the target. Immediately. It's impossible to adjust your aim and improve if you don't look at the target and not see how far you are from the goal.
But that's what we do in software development. And when we do revisit estimates, it's weeks or months later. How do you think your shooting accuracy would improve if they mailed you the target so you could see it 4 to 6 weeks after you took the shot?
Wouldn't that be a great way to play golf too? Just hit the ball N times, then go home. Before you start the game, tell your 'manager' how many times you think you'll have to hit the ball on this course. Then don't get any feedback for a few weeks and watch your game improve.
When you get serious about improving your estimates, start looking at the estimates versus the actuals as soon as the work is done. Waiting for a product release retrospective 6 months later just isn't good enough.
The next thing you need to do is estimate less work. I try to keep all estimates under a week. (I also keep them at half a day or more). I've found that developers have a lot of trouble estimating large amounts of work. I've written more on this topic on my personal blog. Small Code Commits
What got me on this topic? I was looking at the 6th Sense Analytics Status Reports. We provide you, the developer, with feedback on how far your estimates were from your actual time. We provide it you individually and as a team aggregate as well.
Here are you steps to improving your estimation attempts.
1) Estimate smaller (more granular) features
2) Always look back at estimates vs. actuals
3) Get your feedback as fast as possible
The best tool I know for this type of feedback is the 6th Sense system, but it's not the only tool. Just make sure you're looking at it somehow.
Previous Post:
Video Interview: Brian Sletten
Next Post:
We’re Late! Don’t Stop for Gas


Pages tagged "the 6th target" ( 2008.18.05 12:46 pm )