Section 02 · Initiation & Scope

Requirements Gathering

Requirements gathering (also called elicitation) is the process of discovering, documenting, and validating what stakeholders need from the project. It bridges the gap between a business problem and a workable solution. Get this wrong, and everything built on top — design, development, testing — will be wrong too.

Types of Requirements

Not all requirements are the same. Understanding the categories helps ensure nothing important is missed:

Functional Requirements
  • What the system must do
  • Features, behaviors, functions
  • "The system shall allow users to reset their password via email"
  • "The report shall generate daily at 6:00 AM"
Non-Functional Requirements
  • How the system must perform
  • Quality attributes, constraints
  • "The page must load within 2 seconds"
  • "The system must support 10,000 concurrent users"

Beyond this primary split, requirements can also include:

Gathering Techniques

No single technique captures all requirements. Effective gathering uses a combination:

Interviews One-on-one or small group conversations with stakeholders. Best for deep understanding of individual needs, concerns, and context. Prepare questions but allow organic exploration.
Workshops Facilitated group sessions (e.g., JAD — Joint Application Design). Bring multiple stakeholders together to discuss, negotiate, and agree on requirements in real-time. Efficient for resolving conflicts.
Surveys & Questionnaires Useful for gathering input from a large number of stakeholders. Best for quantitative data and validating assumptions. Less effective for complex or nuanced requirements.
Observation Watch users in their actual work environment. Reveals workflows, pain points, and workarounds that people often forget to mention in interviews. "Show me" beats "tell me."
Document Analysis Review existing documentation — process flows, current system specs, SOPs, regulatory documents, previous project reports. Provides baseline understanding before stakeholder engagement.
Prototyping Build a quick mockup or wireframe and use it to elicit feedback. Stakeholders often can't articulate what they need until they see something concrete. "I'll know it when I see it."
User Stories Agile format: "As a [role], I want [feature], so that [benefit]." Keeps requirements user-centric and tied to value. Complemented by acceptance criteria for testability.
Brainstorming Open-ended idea generation with a group. Useful early on to explore possibilities before narrowing down. Use techniques like mind mapping or affinity diagrams to organize output.

Requirements Documentation

How you document requirements depends on your approach:

Approach Document Format Best For
Predictive (Waterfall) Software Requirements Specification (SRS), Business Requirements Document (BRD) Large, complex, regulated projects
Adaptive (Agile) Product Backlog with User Stories, acceptance criteria, and Definition of Done Iterative delivery, evolving requirements
Hybrid Lightweight BRD for high-level scope + User Stories for detailed features Governance + flexibility balance

Validation & Prioritization

Validating Requirements

Every requirement should be checked against these quality criteria:

Prioritizing Requirements

Not everything can be built at once. Common prioritization methods include:

Common Pitfalls

The best requirements gatherers are translators — they speak both business and technical languages. They listen more than they talk, ask "why" relentlessly, and document not just what stakeholders say, but what they actually mean. Remember: a requirement that can't be tested is just a wish.