Estimates: the +100h joke
We have a saying in my team, that we “pull a number out of our ass” if an estimate on the spot is larger than 100h hours. As with any joke, there’s a core of truth to this. Here’s why: You don’t have a feel for how long a task spanning 40h of work is (never mind above 100h). 8h is tangible, 16h might be tangible, 40h is not tangible and 100h is funny.The time estimate is then multiplied by the usual offset factor based on historical estimates. But, it has happened that if we make too many jokes about the number being random the time estimate is raised one notch more because those jokes shows that we still really don’t know.
Is it tangible?
What usually happens with an estimate above 16h: You start out with grand plans, you make things extra nice. Refactor this, change that, there’s still plenty of time left, right? Time looms on, and you wake up. Half the time is gone, you have still 75% of the work left, never mind the testing. And the estimate goes out the window.At 40h this is prolonged by the fact that 40h just feels so much more. But work wise its just as much as 5*8h. When the 20th hour rolls by, you should be as done as you are on the 4th hour of an 8h estimate.
What can you do
Break it down. If any of your chunked points are above say 25h, chunk it again. The goal it to get it as close to tangible (aim for 8h) chunks as possible. At the end of each chunk you know what should be ready. Look at it like many small 8h tasks that just happen to be connected to a bigger task.Be aware of that having done 8h chunks may give you a false security of having all the bits in place. Even with nice sequential 8h chunks on a larger estimate – the larger the estimate, the more off we are. This is because missing stuff hides on the edges of those 8h chunks. The interplay between those chunks takes more time, but are hard to factor in.
Also be aware of any gray areas or stuff you don’t know that well. Here is the other mistake we often do. We oversimplify things. If you are any bit unsure, go look at the code, think about the edits you’d make. Touch it, smell it, get some feel for it. Write down the line-numbers and files you’d change in the estimate.