2. Back-of-Envelope Estimation
2.12 How do you round, and how do you know you're not way off?
Checking yourself
At the wedding: Nobody says "we need 47.3 kilos of rice". You say "about 50", and you sanity-check it: "500 guests, 100 grams each, yes, 50 kilos."
In the system:
Round hard. Keep one or two significant figures. 5,787 → "about 6,000". 1.46 PB → "about 1.5 PB". Precision you can't justify only slows you down.
Keep the units in every step. "500 million views × 200 KB" makes it obvious the answer is in KB and needs converting. Most big estimate errors are unit errors (bits vs bytes, per day vs per month).
Sanity-check with a second route. Does the answer fit with something you know?
- "9 Gbps out on average": that's a lot for one machine, so yes, a CDN makes sense.
- "Only 23 writes a second": one database handles that easily, so the write path isn't the problem. The read path is.
Know which errors matter. Being off by 20% changes nothing. Being off by 10 times changes the design. Check the number of zeros, not the decimals.
Memory code: "Right zeros, not right decimals."