Requirements and estimation

Updated October 7, 2026 · By the Devana Team

Every system design interview opens with the same few minutes: agree what the system must do, how big it has to get and what it can leave out, then turn that scale into a handful of numbers. Those numbers decide the rest of the design, and skipping them is the most common reason a design ends up answering a different question from the one asked.

Building block 1 of 6 in system design building blocks

When it comes up

  • At the start of every design question, before any boxes are drawn.
  • Whenever the prompt is short and open, such as "design a link shortener".
  • When the interviewer gives you a number: use it, and work out what it implies.
  • Later, whenever a choice depends on scale: "is one database enough?" is an estimate question.

The core idea

Split requirements into three lists. Functional: the three to five things a user can do, written as verbs (create a link, follow a link, see click counts). Non-functional: scale, latency, availability, consistency and durability targets. Out of scope: what you will deliberately not design today. Read the lists back and get agreement; it takes a minute and saves the next forty.

Then estimate with round numbers. A day has about 100,000 seconds (86,400), so requests per day divided by 100,000 is requests per second; multiply by two or three for the peak. Work out the read to write ratio, the size of one record, and storage over the retention period. Every estimate should end in a conclusion that changes the design; a number with no consequence is wasted time.

A worked estimate

Assume 100 million new links a month and 100 reads for every write.

Writes:  100M / 30 days / ~86,400 s   ≈ 40 per second, ~100 at peak
Reads:   100 x writes                 ≈ 4,000 per second, ~10,000 at peak
Storage: 500 bytes x 100M a month x 12 months x 5 years ≈ 3 TB

So: reads dominate, which puts a cache in front of the redirect path;
3 TB fits on a few database nodes, so sharding can wait;
40 writes a second needs no write queue.

Trade-offs to name

  • Consistency against availability for the core path: must every read see the latest write?
  • Latency targets against cost: a 50 ms target and a 500 ms target lead to different designs.
  • Precision against speed: round numbers and orders of magnitude are enough; say when one would change your mind.
  • Building for today's scale against next year's: say which you are designing for.

Common mistakes

  • Drawing boxes before agreeing what the system must do.
  • Listing a dozen requirements and designing for none of them properly.
  • Estimating without drawing a conclusion from the numbers.
  • False precision: 38.58 requests a second instead of about 40.
  • Designing for the average when the peak is three times higher.

How to explain it out loud

Open with a sentence that buys you the time: "Before I design anything, I'd like to agree on the main use cases and the scale." Then ask two or three focused questions and state your assumptions where the interviewer leaves you to choose. In Devana's system design rubric, requirements scoping is the largest single communication metric, so these minutes are worth the most.

Use the numbers out loud when you make later choices: "At around 10,000 reads a second at peak, I want a cache in front of the database." Referring back to your own estimate is what driving the discussion sounds like, and it keeps the design anchored to the question.

Practice questions

These come from Devana's question bank, in the order to try them. Each one starts a voice mock interview with Josh, Devana's AI interviewer, on that question, so you practice explaining the approach out loud as well as getting it right.

  • Design a URL shortener at scale

    mediumGoogle · A classic place to practice scoping and a full estimate.

    Practice
  • Design the voting infrastructure

    mediumReddit · Write-heavy at peaks, with counts people watch live.

    Practice
  • Design the shopping cart service

    mediumAmazon · Requirements that hide durability and consistency choices.

    Practice
  • Design a globally consistent view counter

    hardGoogle · An estimate that decides how exact a number can be.

    Practice

Prove it in a mock interview

A 15-minute mock interview on a question that is not on the practice list, scored out of 100. Score 70 or more and requirements and estimation is marked proven on your roadmap. It counts as one of your interviews: the Free plan has 3 a month, no card needed.