Estimating Under Uncertainty
Strategies for story point estimation when requirements are unclear, technology is unfamiliar, or dependencies are unresolved. Includes cone-of-uncertainty concepts.
Detailed Explanation
Estimating Under Uncertainty
Uncertainty is inherent in software development. The question is not whether uncertainty exists, but how to account for it honestly in your estimates.
The Cone of Uncertainty
At the start of a project, estimates can be off by 4x in either direction. As the team learns more, uncertainty shrinks:
Phase Uncertainty Range
─────────────────────────────────────
Initial concept 0.25x – 4.0x
Requirements done 0.5x – 2.0x
Design complete 0.67x – 1.5x
Code complete 0.8x – 1.25x
Strategies for High Uncertainty
1. Spike first, estimate later
When you cannot estimate because the problem is poorly understood, do not guess. Time-box a spike to reduce uncertainty, then estimate with better information.
2. Use ranges instead of single values
Instead of "this is a 5," say "this is between 5 and 13, depending on whether the legacy API supports batching." Document the assumption and revisit when the answer is known.
3. Estimate the known, acknowledge the unknown
Split the story into parts you understand and parts you do not. Estimate the known parts normally. For the unknown, either spike or add a buffer.
Story: "Integrate with Partner X's API"
Known: Build our adapter layer (3 pts)
Known: Write integration tests (2 pts)
Unknown: Partner's API behavior under load → Spike (1 day)
→ Estimate known work at 5, revisit after spike
4. Use confidence levels
"I'm 50% confident this is a 5, but there's a 30% chance it's a 13 if the database migration is harder than expected."
5. Re-estimate early and often
Estimates are perishable. When you learn something that changes your understanding, update the estimate immediately rather than pretending the old number is still valid.
The Most Important Rule
Never penalize the team for inaccurate estimates. If estimates are used to punish, teams will pad them defensively, and the entire system loses its value.
Use Case
Refer to this guide when the team feels paralyzed by unknowns during estimation, or when stakeholders push for precise numbers before requirements are clear.