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 72 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: Relative Estimation Scales
| Scale | Example | Description |
|---|---|---|
| 123581321 | • Most popular relative scale • uses 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. | |
| 12358132040100 | • Variation of Fibonacci adding larger values (20, 40, 100) for epic-level work • commonly used in SAFe and scaled agile environments • caps at 100 to signal items need decomposition. | |
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. |