Summary

Jacob Kaplan-Moss’s estimation framework: break work into small/medium/large/XL tasks, estimate both expected time AND uncertainty separately, calculate best-case and worst-case ranges, and track accuracy over time to improve. The critical characteristic: every estimate must capture both time AND uncertainty.

Jacob Kaplan-Moss 的估算框架:將工作分解為小/中/大/超大任務,分別估算預期時間和不確定性,計算最佳情況和最壞情況範圍,並隨時間追蹤準確性以改進。關鍵特徵:每個估算都必須同時捕捉時間和不確定性。

Key Points

  • Critical property: estimate = time + uncertainty; “10 days” implies false certainty; “8-14 days” communicates actual risk
  • Task sizes: small (1 day), medium (3 days), large (1 week/5 days), XL (2 weeks/10 days)
  • Use real wall-clock time, not idealized “programmer days”; 1 day = ~4 hours of actual coding in a normal workday
  • Uncertainty tiers: low (well-understood work) → medium → high → very high (exploratory/unknown)
  • Best-case = sum of task times; worst-case = apply uncertainty multiplier (e.g., high uncertainty = 2x)
  • Refine by breaking large tasks into smaller ones if they’re too uncertain
  • Track accuracy over time: compare estimates to actuals; adjust your calibration accordingly

Insights

The time + uncertainty combination is the key insight that makes this more useful than most estimation approaches. A range communicates actual project risk to stakeholders, who can then make informed decisions (accept risk, add buffer, descope). The “real wall-clock time” requirement is a common failure mode: estimates in “ideal programming hours” are systematically over-optimistic because they ignore meetings, interruptions, and context-switching. The tracking step is what converts estimation from a ritual into a skill that improves.

Connections

Raw Excerpt

My system has one critical characteristic that I believe any effective estimation technique should have: it captures both time and uncertainty. An estimate that only includes time implies a high degree of certainty — the range communicates real risk to stakeholders.