2 min read
It always takes longer than you expect, even when you take into account Hofstadter's Law.
Takeaways
- 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.
Overview
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).
Hofstadter’s Law
Examples
Virtually every software project can serve as an example. A team plans a new feature expecting it to take one month. They factor in potential delays and say six weeks to be safe. It ends up taking three months, sometimes even six months later. Why? Integrating with an API was harder, a key developer got sick, or the first approach failed and had to be redone. The unexpected became the norm.
A practical rule of thumb: if it takes 2 minutes, do it now. If it takes a few minutes, call it 1 hour. If it takes a few hours, call it 1 day. We are not working to prove speed, but to buy enough space to ship well.
Origins
Douglas Hofstadter created this law in 1979 in his book “Gödel, Escher, Bach: An Eternal Golden Braid”. The book explores themes of recursion and self-reference, making this recursive law a fitting example.
In software engineering, Fred Brooks’ observation “everything takes longer than it takes” from The Mythical Man-Month has a similar meaning. The law has become common among developers who’ve all experienced projects that overshoot schedules.
Further Reading
Gödel, Escher, Bach: An Eternal Golden Braid Douglas Hofstadter's Pulitzer Prize-winning book where the law first appeared
The Mythical Man-Month Fred Brooks' classic on software project management with similar insights on estimation
Why Software Projects Take Longer Than You Think A statistical model explaining estimation failures
Want to go deeper?
All 63+ laws are covered with more depth, examples, and practical guidance in the Laws of Software Engineering book.
Last updated: June 24, 2026

Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.