Part 4 · 2 chapters · ~12 min
Estimation and Back-of-Envelope Maths
Fermi estimation, orders of magnitude, ranges instead of points, the numbers worth memorising, estimating systems (QPS, storage, cost), estimating projects with reference classes, and sanity-checking every number you are given.
8
Fermi problems
Enrico Fermi famously estimated quantities with almost no data by breaking them into factors. Engineers use the same move for capacity planning, cost forecasting and sanity checks (Backend System Design part 0 lists the numbers worth memorising).
A FERMI ESTIMATE
how many POS card transactions happen in Nigeria on a weekday? (structure, not a fact)
swipe the figure sideways, or tap expand for full screen
1/4
decompose
Break the unknown into factors you can estimate: number of active terminals × transactions per terminal per day.
unknown = product of guessable factorseach factor easier than the whole
9
Estimating projects
| technique | how |
|---|---|
| reference class | how long did the last three similar projects take? start there |
| break down, then add contingency | estimate parts, then add for integration, review, unknowns (often 30-50%) |
| ranges with confidence | "4-7 weeks, 80% confident" |
| re-estimate on new information | update weekly; an estimate is a forecast, not a promise |
| spike the unknowns | a two-day spike can shrink a range from 2-12 weeks to 3-5 |