Why are so many software projects late? Estimation (and how we use it) is often at the heart of it.
Humans are naturally optimistic. We overestimate how well things will go and underestimate the time required. It’s a well documented phenomenon:
๐คย Optimism Bias: Our tendency to believe things will go better than they likely will.
๐๏ธ Planning Fallacy: Underestimating time required, even when past experience tells us otherwise.
Secondly, even with careful planning, we can only account for what we know. As well as software development being inherently complex, as time progresses, unexpected factors always emerge: shifting priorities, new challenges, team changes โ the “known unknowns” as Donald Rumsfeld infamously put it.
๐๐ฎ๐ป ๐๐ผ๐ ๐ด๐ฒ๐ ๐ฏ๐ฒ๐๐๐ฒ๐ฟ ๐ฎ๐ ๐ฒ๐๐๐ถ๐บ๐ฎ๐๐ถ๐ป๐ด?
Yes, we can avoid common pitfalls and improve our estimation practices. But they are still likely to be optimistic because of the reasons above.
“It always takes longer than you expect, even when you take into account Hofstadter’s Law.”
– Hofstadter’s Law
๐๐ผ๐ฒ๐ ๐๐ด๐ถ๐น๐ฒ ๐๐ผ๐น๐๐ฒ ๐๐ต๐ถ๐?
Agile embraces uncertainty, such as breaking down work into the smallest possible pieces and delivering value early and often. But it doesnโt eliminate the challenge of longer-term planning.
๐๐ผ๐ปโ๐ ๐ฏ๐ผ๐๐ต๐ฒ๐ฟ ๐ฝ๐น๐ฎ๐ป๐ป๐ถ๐ป๐ด ๐๐ต๐ฒ๐ป?
Not at all. Organisations need to plan. Without long-term planning, you canโt set realistic budgets, allocate resources & people, or prioritise efforts. The trick is learning how to plan effectively, even in the face of uncertainty.
In my next post, I’ll share how Iโve approached longer-term planning successfully.
Pingback: How to Plan Effectively in the Face of Uncertainty | Rob Bowley