This tweet from John Cutler has been challenging me recently:
Instead of focusing on making ‘better’ estimates, focus on:
- working smaller
- integrating frequently
- exposing work to users/customers sooner
- testing assumptions earlier
- limiting dependencies
- less fragile code
- limiting handoffs
Your estimates will improve.
We focus so much on estimates because we want certainty, because we want to feel like we are in control and are directing progress.
Development teams want to know how much work they think can be done during a sprint. Management wants to know when new features will be finished, when deadlines will be met. Customers want to know when they can get this new functionality.
And so we develop systems that give us a sense of security even though they may be false.
But human beings are terrible at estimating. Just read this article on Wikipedia about the planning falacy to see just how much.
Psychologists Daniel Kahneman and Amos Tversky explained the planning fallacy by suggesting that planners focus on the most optimistic scenario for any task, rather than using their full experience of how much time similar tasks would take.
Curiously, when asked to estimate how long something will take, people will generally underestimate how long they would take and overestimate how long they think others would take to do the same task. In other words, people will consider the best case scenario for themselves and the worst case for others.
Originally posted on my work internal blog.