AI projects take two to three times longer than planned because teams estimate the demo, which is the visible 20%, and discover the iceberg, evals, data cleanup, edge cases, guardrails, in production month three. This isn't pessimism and it isn't incompetence; it's a systematic estimation error that repeats because the demo arrives so fast it recalibrates everyone's expectations in the wrong direction. The fix is not padding. It's planning the iceberg explicitly.
The iceberg, itemized
- Eval construction: collecting real cases, defining 'good', grading outputs, weeks, and it gates everything else.
- Data reality: the 'clean' data has duplicates, gaps, format drift and permissions questions nobody owned.
- The edge-case long tail: the demo handled ten happy paths; production has ten thousand, each cheap alone, brutal in aggregate.
- Guardrails and failure handling: what happens on wrong output is a product decision, then an engineering effort.
- Integration and permissions: wiring into real systems, auth, logging, cost controls, invisible in the demo, mandatory for launch.
- Nondeterminism tax: every fix must be re-verified against the whole eval set, because improvements regress other cases.
Why smart teams still miss it
- The demo's speed anchors everyone: if 80% took two days, 100% feels like a week away. The curve bends the other way.
- Traditional software intuition assumes quality rises linearly with effort; model quality plateaus and fights back.
- Nobody budgets for evals because nobody was ever asked to define 'good enough' numerically before kickoff.
How to plan honestly
- 1Build the eval set first and put it in the plan as a named workstream with an owner.
- 2Multiply your demo-based instinct by 2.5, that's not padding, it's the observed base rate.
- 3Plan quality as iteration cycles ('six eval-improve loops') rather than a date on which quality occurs.
- 4Ship at the honest bar with guardrails and a human fallback, then improve in production, waiting for 99% is how projects die.
- 5Report progress in eval scores, not percent-complete, it's the only number that doesn't lie.