Why are software development task estimations regularly off by a factor of 2-3?
quora.com
quora.com
We are not evolved to deal with time. As a thematic extension, every time we remember something, we overwrite the memory. The past is not in our control.
The future is not in our control either. We are poor at acknowledging delayed gratification. Few animals had to invest and sacrifice their current rewards for a payoff months or years later.
On a similar note, when humans imagine an average-case scenario for a task, we imagine best-case scenarios.
In an age where investments of time and money play a large role, those humans who can better grasp time (with external systems of aid) will survive.
Becoming a time lord is more important than ever.
somehow we fail to account for the other things. background bug fixing activity, writing unrelated future work out on the whiteboard, reworking an adjacent component. not being on your game, expecting something to already work when it clearly doesn't
so yeah, those are developer failures. but at least as often, i think technical management has failed by laying out a plan with a fixed end date. for all the reasons above and more, the end date passes by, and another date is laid out, and so on.
i think we all need to do a better job of adapting to circumstance and continuously measuring the progress vs the passage of time. where we can settle for less than what we planned, and how to express the truth of the matter. the worst trap we all fall into is thinking that perhaps we aren't as far along as we should be, but a couple days of solid effort will put us back on track.
'just two more weeks' is the death knell of many projects
When we plan to climb a mountain, we aim for the top and focus on everything that's required to get there. It takes real experience to also plan for the trip back down.