The planning fallacy is part of the job
Developers don’t just underestimate tasks. We are particularly good at underestimating the transitions between tasks:
- integration into an existing system,
- unexpected interactions,
- test data,
- deployment,
- permissions,
- app-store approval,
- migrations,
- documentation,
- follow-up questions,
- and the one bug that appears only under real-world conditions.
In my head, I usually see the straight path. In reality, I’m working within a system that has a history, dependencies, and other people involved.
Experience often improves estimates. But it can also create a different problem: I assume I already understand something because it resembles a problem I’ve seen before.
Familiarity then replaces analysis. So the important question is not merely:
How long did something similar take in the past?
But also:
What is different this time?