The Archive of Random Material Just a collection of summarized resources I find useful

Software Effort Estimation Considered Harmful

By
Read original article

Estimating the completion of a software product tends to be futile; it’s at least very hard to do well, and at worst actively harmful for the team.

Factors that make estimation difficult:

  • Every product hopes to accomplish something that hasn’t been done before, so you can’t rely on past experience all the time.
  • Unknown unknowns do not surface until implementation time and can really only be accounted for with padding.
  • Complexity that arises from interdependencies becomes exponentially greater the larger a piece of software.

Reasons estimation may be harmful:

  • Estimation creates dates that attempt to create accountability, rather than building a relationship on trust.
  • Underestimating leads to compromises in the health of a project, such as increasing tech debt.
  • Overestimating can make a project seem less valuable than it actually is.
  • The act of estimation slows progress down as developers are incentivized to over-analyze to create accurate estimations.

Instead, estimation should be about relative effort rather than absolute cost. That is, there is value in the team collectively understanding the complexity of tasks relative to each other, mostly to ensure a shared understanding.