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?