0
0
HLDsystem_design~25 mins

Requirements gathering (functional and non-functional) in HLD - System Design Exercise

Choose your learning style9 modes available
Design: Requirements Gathering Process
Focus on the process and best practices for gathering and documenting requirements. Out of scope are detailed design, implementation, and testing phases.
Functional Requirements
FR1: Identify and document functional requirements that describe what the system should do
FR2: Identify and document non-functional requirements that describe system qualities like performance, security, and usability
FR3: Ensure requirements are clear, measurable, and testable
FR4: Prioritize requirements based on stakeholder needs
FR5: Manage changes to requirements throughout the project lifecycle
Non-Functional Requirements
NFR1: Requirements must be gathered within a 2-week timeframe
NFR2: Stakeholder availability may be limited
NFR3: Requirements must be understandable by both technical and non-technical team members
NFR4: Maintain traceability between requirements and design decisions
Think Before You Design
Questions to Ask
❓ Question 1
❓ Question 2
❓ Question 3
❓ Question 4
❓ Question 5
Key Components
Stakeholder interviews and workshops
Requirement documentation templates
Prioritization frameworks (e.g., MoSCoW)
Traceability matrices
Change management process
Design Patterns
Use case modeling
User stories and acceptance criteria
Requirement decomposition
Non-functional requirement categorization
Version control for requirements
Reference Architecture
 +-------------------+       +---------------------+       +-------------------+
 | Stakeholder Input | ----> | Requirements Analyst | ----> | Requirements Doc  |
 +-------------------+       +---------------------+       +-------------------+
          |                            |                             |
          |                            |                             |
          v                            v                             v
 +-------------------+       +---------------------+       +-------------------+
 | Interviews &      |       | Prioritization &    |       | Traceability &    |
 | Workshops        |       | Validation          |       | Change Management |
 +-------------------+       +---------------------+       +-------------------+
Components
Stakeholder Input
Interviews, Surveys, Workshops
Gather initial needs and expectations from users and stakeholders
Requirements Analyst
Documentation tools (e.g., Word, Confluence)
Analyze, clarify, and document requirements
Requirements Documentation
Templates, Traceability Matrices
Store and organize functional and non-functional requirements
Prioritization Framework
MoSCoW method, spreadsheets
Rank requirements by importance and urgency
Change Management Process
Version control, approval workflows
Manage updates and revisions to requirements
Request Flow
1. Stakeholders provide input via interviews and workshops
2. Requirements analyst collects and clarifies needs
3. Functional and non-functional requirements are documented
4. Requirements are prioritized and validated with stakeholders
5. Traceability is established linking requirements to design and tests
6. Change requests are managed through a formal process
Database Schema
Entities: Requirement (id, type [functional/non-functional], description, priority, status), Stakeholder (id, name, role), RequirementChange (id, requirement_id, change_description, date, approved_by). Relationships: Stakeholder submits Requirement; Requirement has many RequirementChange records.
Scaling Discussion
Bottlenecks
Difficulty managing large numbers of requirements from many stakeholders
Ensuring consistent understanding across diverse teams
Tracking changes and maintaining traceability as requirements evolve
Solutions
Use specialized requirements management tools to handle volume and complexity
Standardize documentation formats and conduct regular review sessions
Implement automated traceability and version control systems
Interview Tips
Time: Spend 10 minutes understanding the importance of requirements, 15 minutes discussing functional vs non-functional requirements and gathering techniques, 10 minutes on documentation and change management, 10 minutes on scaling and challenges.
Clear distinction between functional and non-functional requirements
Importance of stakeholder communication and prioritization
Use of structured documentation and traceability
Handling changes and maintaining requirement quality
Challenges in scaling requirements management and practical solutions