- Published on
Requirements Gathering in System Design
- What Are Requirements?
- Why Are Requirements Important?
- How to Gather Requirements?
- Visual: Requirements Flowchart
What Are Requirements?
Requirements define what the system should do and how it should perform. They guide the entire design process.
Two Main Types:
Functional Requirements: Describe specific features or functions the system must support. Example: “Users can upload photos.”
Non-Functional Requirements: Describe system qualities like performance, security, scalability, etc. Example: “The system should handle 10,000 uploads per minute.”
Why Are Requirements Important?
- Aligns stakeholders’ expectations
- Helps prioritize features and design decisions
- Prevents scope creep and costly redesigns later
How to Gather Requirements?
- Stakeholder Interviews: Talk to users, business teams, engineers.
- Use Cases: Describe interactions between users and system.
- User Stories: Short descriptions of user needs (“As a user, I want to…”)
- Documentation Review: Existing specs, market analysis, competitor research.
Visual: Requirements Flowchart
[Stakeholders]
|
v
[Gather Needs & Constraints]
|
v
[Define Functional Requirements] ----> [User Stories & Use Cases]
|
v
[Define Non-Functional Requirements]
|
v
[Prioritize & Validate Requirements]
Quick Exercise:
Pick a simple app you know. Write down 2 functional and 2 non-functional requirements you think are important for it.