Key Concepts
Estimation is hard. Understanding why it's hard — and using the right techniques — is the difference between reliable and chaotic delivery.
Why Estimation is Hard
Scope creep, unknown unknowns, interruptions, optimism bias, complexity underestimation.
Planning Poker & Story Points
Relative estimation using Fibonacci sequence. Team votes simultaneously — reveals disagreement, triggers discussion.
COCOMO Model
COnstructive COst MOdel. Algorithmic estimation based on lines of code (KLOC) and complexity factors.
Velocity-Based Forecasting
Use past team velocity to forecast future delivery. More accurate than COCOMO for agile teams.
Concept Deep Dives
Click each concept to expand — real examples, diagrams, pros & cons.
Why Estimation is Hard
When to Use
Understanding this prevents promising what you can't deliver.
Real-World Example
The Standish Group CHAOS Report: 66% of software projects are over budget or behind schedule.
✓ Advantages
- Understanding the causes lets you mitigate them
⚠ Watch Out
- No silver bullet — estimation will always be imprecise
Planning Poker & Story Points
When to Use
Sprint planning in Scrum. Estimating user stories before committing to a sprint.
Real-World Example
Team estimates user story: devs vote 3, 8, 13. Discuss why 13 — uncovers hidden complexity. Revote: 8. Done.
✓ Advantages
- Relative estimates more accurate than absolute
- Reveals hidden disagreements
- Fast with practice
⚠ Watch Out
- Calibration needed
- Velocity varies by team
- Story points ≠ hours (explain to stakeholders)
COCOMO Model
When to Use
Large projects where historical data and detailed specs exist. Government/defense contracts.
Real-World Example
NASA, defense contractors use COCOMO for large-scale system estimation where contracts require formal estimates.
✓ Advantages
- Systematic and repeatable
- Good for large, well-understood projects
- Historical calibration
⚠ Watch Out
- LOC hard to estimate before coding
- Many adjustment factors are subjective
- Not great for agile projects
Velocity-Based Forecasting
When to Use
Ongoing agile projects with ≥3 sprints of historical velocity data.
Real-World Example
Team average: 32 points/sprint. Backlog: 160 points. Forecast: ~5 sprints (10 weeks) to complete.
✓ Advantages
- Based on actual team performance
- Improves as more data available
- Accounts for team-specific factors
⚠ Watch Out
- New teams have no history
- Velocity changes with team changes
- Doesn't account for scope changes
Quick Reference
- 1Estimation is inherently uncertain — the Cone of Uncertainty.
- 2Algorithmic models: COCOMO uses LOC and complexity factors.
- 3Expert judgment + analogy: compare to similar past projects.
- 4Story points + velocity: relative estimation, improves with history.
- 5Planning poker: team estimation with Fibonacci sequence.
- 6Software pricing: cost + profit + market factors. Not just effort × rate.
- 7Always add contingency — Hofstadter's Law is always right.
Quiz — Test Yourself
Think through your answer first, then reveal.