Software estimation is the practice of predicting the effort, time, cost, and resources required to complete a software project or task. It sits at the crossroads of project management, engineering judgment, and empirical data analysis. Estimation matters because delivering value requires planning under uncertainty — teams need to answer "how long?" and "how much?" to commit to work, forecast delivery, and allocate resources. The core challenge is that estimation is fundamentally a prediction problem in an environment where requirements evolve, complexity accumulates, and human judgment is subject to systematic bias. The single most important insight: estimates are not commitments — they are probabilistic forecasts that should improve through learning and feedback, and the best techniques embrace relative comparison over illusory precision.
What This Cheat Sheet Covers
This topic spans 11 focused tables and 83 indexed concepts, 76 flashcards. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
A jump-to index of every table row in this cheat sheet.
An interactive map of every table and concept in this topic.
Table 1: Relative Estimation Scales
Relative scales replace absolute time estimates with dimensionless numbers or labels, letting teams judge complexity by comparison rather than by prediction. The Fibonacci sequence dominates because its exponentially widening gaps naturally signal the growing uncertainty of larger items — a property that linear scales lack.
| Scale | Example | Description | |
|---|---|---|---|
| 123581321 | • Most popular relative scale • modified Fibonacci sequence where gaps increase with size, reflecting growing uncertainty for larger items • teams compare work items against reference stories rather than estimating absolute hours. | ||
XS, S, M, L, XL, XXL | • Lightweight sizing using familiar clothing sizes • ideal for early-stage roadmaps, portfolios, or large backlogs where precision isn't needed yet • easy for non-technical stakeholders to understand. | ||
| 12358132040100 | • Adds larger values (20, 40, 100) for epic-level work • commonly used in SAFe and scaled agile environments • a value of 100 signals the item needs decomposition before estimation. | ||
| 12481632 | • Exponential scale emphasizing doubling complexity • eliminates pointless debate between adjacent values (e.g., 6 vs. 7) • less common than Fibonacci but mathematically elegant for uncertainty representation. | ||
| 12345678910 | • Simple numeric scale with equal intervals • treats complexity as linear • generally discouraged in agile because it implies false precision and doesn't account for exponential uncertainty growth. | ||
Chihuahua, Poodle, Labrador, Great Dane | • Alternative metaphor for sizing where breed implies relative size • used occasionally to break monotony or engage teams differently • functionally equivalent to T-shirt sizing but non-standard. |