Hofstadter's Law

This recursive law captures the paradox of estimation. No matter how much experience we have, projects tend to run late. Even if you say, “This might take 2x longer than I think,” it might still take 3x. It highlights the inherent uncertainty in complex creative work, such as software development. There are often hidden tasks, unplanned integration issues, or requirement changes.

In practice, Hofstadter’s Law explains why techniques like padding estimates, awareness of Parkinson’s Law, and the use of historical data are essential, yet surprises still occur.

It pairs with Parkinson’s Law as a caution: don’t pad too much (Parkinson will waste time), but also don’t be naive (Hofstadter will bite you with delays).

  • Humans are generally bad at estimating how long tasks take, especially in complex projects. Even when we know we're bad at it, we still underestimate.
  • There are always unknowns and complexities that reveal themselves during implementation, extending the timeline.
  • Include contingency buffers in schedules, but even those buffers often get consumed.
  • Don't be overly optimistic in planning. Acknowledge that delays happen and factor that into timelines and expectations.
添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论