Architecture & System Design › System Design Fundamentals
Clarifying Requirements
Asking what the system must do, and at what scale, before designing it.
Also known as: clarifying requirements, requirements clarification, asking questions
Clarifying requirements means nailing down what to build before designing it: functional scope (which operations, which reads vs writes), scale (users, data, throughput), and constraints (latency, consistency, budget) — asked explicitly, because the same prompt (“design a URL shortener”) describes a weekend project and a global service depending on the numbers.
"design X" → users? reads/writes per second? data size? latency? consistency?
→ scope + numbers → design
The questions shape everything downstream: read-heavy vs write-heavy picks storage and caching; strong-vs-eventual consistency picks coordination; the scale picks single-box vs distributed. Designing without them optimises for imaginary constraints and misses the real ones.
The classic mistakes:
- Jumping to components. Drawing boxes before knowing the scale produces generic diagrams that fit nothing. Numbers first, boxes second.
- Vague scale acceptance. “Millions of users” without reads/writes per second, data sizes and growth can’t size anything. Ask for rates, sizes and ratios.
- Ignoring the read/write ratio. 100:1 read-heavy and 1:1 balanced demand opposite architectures; the ratio is the single most informative number.
- Forgetting non-functional needs. Latency targets, availability, durability and compliance constrain as hard as features. Ask.
- Over-constraining. Demanding bank-grade consistency for a like counter wastes the design. Match guarantees to actual harm.
- No scope boundaries. “And notifications, and analytics, and…” — endless scope creep kills the exercise. Time-box features; defer explicitly.
How to do it: functional scope, then scale numbers (users, QPS, storage, bandwidth), then constraints (latency, consistency, availability). Five minutes of questions saves an hour of wrong design — in interviews and in real projects alike.