I use Fibonacci for a couple of reasons:
- As task gets larger the details become more difficult to grasp
- Task estimate is the number of hours for anyone in the team to complete the task
- Not everyone in the team will have the same amount of experience for
a particular task so that adds to the uncertainty too
- Human gets fatigue over larger and potentially more complex task.
While a task twice as complex is solved in double time for a computer
it may take quite a bit more for a developer.
As we adds up all the uncertainties we are less sure of what the hours actually should be. It ends up easier if we can just gauge if this task is larger/smaller than another one where we gave a estimate of already. As we up the size/complexity of the task the effect of uncertainty is also amplified. I would be happily taking an estimate of 13 hours for a task that seems twice as large as one I've previously estimated at 5 hours.