Estimation & Planning

Fermi estimation, capacity planning, breaking ambiguous work, Little's Law

Technical Reference & Key Concepts

Fermi Estimation Framework

  1. Decompose: Break the problem into independent sub-estimates. "How many tweets per second?" = users x tweets per user / seconds.
  2. Bound: Establish reasonable lower and upper bounds. "Between 1M and 1B users" -> geometric mean ~30M.
  3. Sanity check: Does the answer pass the smell test? If Twitter has 300M MAU and each tweets 3x/day, that's ~10K writes/sec. Reasonable.

Capacity Planning

  • Always plan for peak traffic, not average. 2-3x average is a good heuristic.
  • Use Little's Law: L = lambda W (average requests in system = arrival rate x average service time).
  • Bottleneck analysis: Which component saturates first under load? Database? Network? CPU?

Breaking Down Ambiguous Work

"How long to build a chat feature?" Don't give a single number. Break it into phases: (1) Prototype (2 weeks), (2) MVP with one-on-one (4 weeks), (3) Groups & channels (6 weeks), (4) Production hardening (2 weeks).