Gödel, Escher, Bach · Douglas Hofstadter

Hofstadter’s law: it always takes longer, even when you know this law

Curated by · reviewed 2026-06-01

‘It always takes longer than you expect, even when you take into account Hofstadter’s Law.’ A wry, self-referential rule about the stubbornness of time estimates — even padding for known optimism isn’t enough, because the unknowns are genuinely unknowable.

Hofstadter’s law: it always takes longer than you expect — even when you account for Hofstadter’s law. Estimates run long no matter how much you pad them, because the delays come from things you couldn’t foresee.

Douglas Hofstadter coined his law half-jokingly while discussing how long complex projects (like programming a chess computer) actually take versus predictions. The genius is the self-reference: even once you KNOW estimates run long and deliberately pad yours, the padded estimate still runs long. You can’t simply correct for the bias by adding a buffer, because the buffer itself gets swallowed.

Why is it so stubborn? The planning fallacy explains part of it — we imagine the smooth best case. But Hofstadter’s law adds a deeper twist: the delays come from unknown unknowns, problems you literally cannot list in advance because you don’t know they exist yet. You can pad for the risks you can name; you can’t pad for the ones you can’t. Complex work especially has an unbounded supply of surprises — the dependency you didn’t know about, the bug that reveals a design flaw, the ‘simple’ task that unravels. No finite buffer covers an unknowable set.

The practical response isn’t a magic multiplier (though doubling estimates for complex creative work is a decent start). It’s structural humility: build slack into schedules, ship in small increments so each surprise is small, avoid promising precise dates for genuinely novel work, and treat any plan for complex work as a hypothesis that reality will revise. When you catch yourself thinking ‘but THIS time I’ve accounted for everything,’ smile — that’s exactly the thought Hofstadter’s law predicts, and the unknowns you haven’t imagined are already waiting.

Why it matters

It’s the funnier sibling of the planning fallacy — for complex, novel work no buffer is ever quite enough, so the fix is structural slack and humility, not a cleverer estimate.

A common misreading

It’s not ‘estimating is pointless, never commit to timelines.’ Estimates still guide planning, and simple, familiar tasks are often predictable. The law bites hardest on complex, novel work with unknown unknowns — there, the fix is slack and incrementalism, not abandoning planning or pretending a bigger buffer solves it.

Put it to work

Test yourself

What’s the self-referential twist in Hofstadter’s law?

Try to answer in your head first — that effort is what builds the memory.

Reveal answer
It always takes longer than you expect — even when you account for Hofstadter’s law. Padding for known optimism still isn’t enough, because the delays come from unknowns you can’t foresee.
Keep the chain going
Next idea → It’ll take twice as long as you think. It always does. Thinking, Fast and Slow · Daniel Kahneman Or explore all 100 ideas →

Go deeper

Hofstadter’s law examples Mental models for productivity & focus

Reading it once isn’t remembering it.

Lock this idea into memory with a 5-minute active-recall session — the science of spaced repetition, no signup.

Try this idea free →

One tap adds it to your review queue — we bring it back right before you’d forget. No signup.

Worth remembering? Post on X
Embed this idea on your site

A self-contained card that links back here — paste it anywhere:

FAQ

What is Hofstadter’s law?
‘It always takes longer than you expect, even when you take into account Hofstadter’s Law.’ A self-referential observation that time estimates for complex tasks run long no matter how much you pad them.
How is it different from the planning fallacy?
The planning fallacy is imagining the best case. Hofstadter’s law adds that even correcting for that isn’t enough, because delays come from unknown unknowns — problems you can’t list in advance, so no finite buffer covers them.
Was this helpful?