Loading...

Requirements Gathering in System Design

A team was asked to build a feature called “Smart Notifications.” They spent weeks designing it. It was fast. It scaled well. It looked impressive.

When it launched, users barely used it. Why?

Because no one had clearly defined what problem it was supposed to solve. The system was well designed, but the requirements were never clear.

This happens more often than system failures.

Why Requirements Are Important Than Architecture

You can design the best system in the world. But if the requirements are wrong, the system will fail.

System design always starts with understanding:

  • what needs to be built
  • how well it needs to work
  • what limits exist

Good requirements make system design easier.
Bad requirements make system design impossible.

Functional vs Non-Functional Requirements

These two sound technical, but the idea is simple.

Functional Requirements

Functional requirements describe what the system does.

For example:

  • A user can sign up.
  • A user can send a message.
  • A user can download a certificate.

If it describes an action, it is functional.

Non-Functional Requirements

Non-functional requirements describe how well the system must perform.

For example:

  • The system should respond quickly.
  • The system should be available most of the time.
  • The system should protect user data.

These don’t add features, but they shape the design. In interviews, many candidates list features and stop.
Strong candidates talk about both.

SLOs, SLAs, and Constraints

Let’s simplify these ideas.

SLO (Service Level Objective)

An SLO is an internal goal.

For example:

“95% of requests should respond within 200 ms.”

It helps teams know if the system is healthy.

SLA (Service Level Agreement)

An SLA is a promise to users or customers.

For example:

“We guarantee 99.9% uptime.”

If you break it, there may be penalties. In interviews, mentioning SLAs shows you understand real systems, not just theory.

Constraints Shape Everything

Constraints are non-negotiable limits.

Common constraints include:

  • budget
  • latency
  • legal or compliance rules
  • team size

You don’t design around constraints later. You design because of them.

MVP vs v1 vs v2

This is where many systems go wrong.

Teams try to build everything in one version.

MVP (Minimum Viable Product)

The MVP solves the core problem only.

It proves that users actually want the product.

No extra features.
No perfect scaling.
Just enough to learn.

Version 1 (v1)

v1 improves stability and usability.

It adds:

  • basic monitoring
  • better performance
  • essential edge cases

This is when system design starts to matter more.

Version 2 (v2)

v2 focuses on scale and optimization.

This is where you add:

  • advanced caching
  • background processing
  • stronger reliability

In interviews, clearly separating MVP, v1, and v2 shows maturity.

Turning Vague Ideas into Clear Requirements

Interviewers often give vague problems.

For example:

“Design a system for online certificates.”

That’s not enough.

A strong candidate asks:

  • Who uses it?
  • How often?
  • How fast should it be?
  • How important is security?

This is how vague ideas become clear specs.

AI to Improve Requirement Gathering

AI is very useful at this stage.

You can use it to:

  • list missing requirements
  • identify constraints
  • suggest edge cases

But AI should expand, not decide. You still choose what matters.

AI-Assisted Requirement Flow

  • First, state your assumptions.
  • Then ask AI to suggest requirements.
  • Then filter and prioritize them.
  • Finally, restate the final requirements in your own words.

This keeps your thinking clear and interview-safe.

What Interviewers Want to See

They want to see that you:

  • don’t rush into design
  • ask the right questions
  • understand tradeoffs
  • define scope clearly

A clear requirement discussion often matters more than the final architecture.

Key Takeaways

Good system design starts before drawing diagrams.

If you learn to gather requirements properly:

  • designs become simpler
  • mistakes reduce
  • interviews become easier

Frequently Asked Questions

Because a system can be well built but still fail if the requirements are unclear or incorrect. Good design starts with understanding the problem.

Functional requirements describe what the system does, while non-functional requirements describe how well it must perform, such as speed, scale, and reliability.

SLOs are internal performance goals for a system, while SLAs are promises made to users about uptime or performance.

Constraints like budget, latency, and compliance limit design choices and directly shape the system architecture.

An MVP is the smallest version of a system that solves the core problem and helps validate whether users actually need it.

Dividing scope prevents overbuilding, helps teams focus on what matters first, and makes system design more realistic and manageable.

Still have questions?Contact our support team