What is requirements elicitation in requirements engineering?

Requirements elicitation is a fundamental step in software engineering (SE) that involves the systematic gathering of information from stakeholders to understand and define the needs and expectations of a software system.

Software engineers interact with various stakeholders during requirement elicitation, including clients, end users, and domain experts. The goal is to collect, analyze, and document their inputs, which will serve as the foundation for designing and developing the software, as shown in the illustration below.

Steps for capturing requirements
Steps for capturing requirements

Let’s delve into the key stages of the requirements elicitation process, which ensures that system development aligns seamlessly with stakeholder expectations.

Requirements elicitation and analysis process

There are four stages in the requirements elicitation and analysis process, as shown in the diagram below.

Stages of requirements elicitation and analysis
Stages of requirements elicitation and analysis
  1. Requirements discovery: Interact with stakeholders to uncover system needs and domain requirements, while also reviewing existing documentation. For example, interviewing customers and analyzing sales data to understand e-commerce platform needs.

  2. Classification and organization: Group requirements by system architecture, identifying subsystems for clarity. For example, grouping car requirements into engine performance, safety features, and interior design categories.

  3. Prioritization and negotiation: Resolve conflicts and prioritize requirements through stakeholder consensus, even if it requires compromise. For example, balancing marketing’s desire for new features with development’s need for system optimization in software development.

  4. Requirements specification: Document requirements formally or informally to provide a clear foundation for system development. For example, documenting smartphone specifications, including screen size, camera details, and battery life for development guidance.

There are multiple techniques followed in eliciting the requirements. Let’s explore them one by one.

Requirements elicitation techniques

Requirements elicitation techniques
Requirements elicitation techniques

1. Scenarios

  1. Collaborate on scenarios: Work closely with stakeholders to develop scenarios, incorporating their insights and details.

  2. Scenario variety: Explore different scenario formats, including text, diagrams, and screenshots, to convey requirements effectively.

  3. Structured approach: Consider structured methods like event scenarios or use cases for a more organized approach.

  4. Visual aids: Use visual elements like diagrams to enhance scenario understanding.

  5. Detail capture: Ensure that scenarios capture all the necessary details for a comprehensive requirement understanding.

2. Interviewing

  1. Create a clear questionnaire: Start with a detailed questionnaire.

  2. Involve key people: Include different stakeholder groups.

  3. Ask open questions: Use open-ended queries for free-flowing insights.

  4. Flex your methods: Adjust to their preferences (in-person, groups, video, email).

  5. Listen actively: Dig deeper with follow-up questions to uncover hidden needs.

3. User stories

  1. Use conversational text: Create brief, customer-focused user stories for initial requirements and agile planning.

  2. Embrace agile: Align user stories with agile methods for flexibility.

  3. Customer’s voice: Let customers express system needs in their own words.

  4. Variety of prototypes: Prototypes can be working (e.g., software code or simulations) or nonworking (e.g., storyboards and mock-ups).

  5. Keep it short: Aim for two to four sentences on a compact card.

  6. Adapt to project: Adjust the number of user stories based on project size and methodology.

4. Requirement workshops

  1. Focused workshops: Highly structured sessions with selected stakeholders.

  2. Clear objectives: Define, refine, and finalize business requirements.

  3. Swift documentation: Quickly complete and share documentation for review.

  4. Instant confirmation: Get immediate feedback on requirements.

  5. Efficient for large groups: Ideal for efficiently gathering requirements from large groups.

5. Document analysis

  1. Review existing materials: Start by carefully examining the available documents to grasp the business environment and ensure current solutions are on track.

  2. Validate implementation: Use this approach to confirm the effectiveness of existing solutions.

  3. Comprehend business needs: Dive into documents to gain a clear understanding of business requirements.

  4. Documents for evaluation: Focus on business plans, technical documents, problem reports, and any existing requirement documents.

6. Focus groups

  1. Focused discussions: Focus groups facilitate discussions that target specific subjects, differing from individual interviews.

  2. Optimal group size: Typically, a focus group comprises 6 to 12 participants, with the option to form multiple groups for broader participation.

  3. Dynamic interaction: Active discussions foster an environment conducive to idea exchange.

7. Prototyping

  1. Explore new features: Prototyping helps uncover and explore new system features.

  2. Architectural insights: Architects use prototypes, like scale drawings and 3-D models, to uncover and validate customer requirements.

  3. Systems engineering benefit: Systems engineers also employ prototypes to achieve similar goals in requirement discovery.

8. Brainstorming

  1. Idea generation: Use brainstorming to generate solutions for specific issues involving domain and subject matter experts.

  2. Diverse ideas: Encourage multiple ideas for a knowledge repository and a range of choices.

  3. Table discussions: Hold table discussions—typically held as a roundtable discussion, with all participants given equal time to share their ideas.

  4. Key questions: Brainstorming answers questions like system expectations, risk factors, rules, issue resolutions, and future issue prevention.

9. Ethnography

  1. Observational approach: Ethnography immerses an analyst in the work environment to grasp operational processes and derive support needs.

  2. In-depth observation: Analysts keenly observe daily tasks, uncovering implicit system requirements that mirror real-world work practices, not just formal processes.

10. Surveys/questionnaires

  1. Survey/questionnaire approach: Stakeholders are given a set of questions to quantify their thoughts, with data analyzed to identify key areas of interest.

  2. Effective question crafting: Craft questions based on high-priority risks, keeping them direct and unambiguous. Notify participants once the survey is ready and remind them to participate.

  3. Broad data collection: Easily gather data from a large audience.

Conclusion

In conclusion, requirements elicitation serves as the compass that directs software developers in building systems that fulfill practical demands and goals while assuring smooth alignment between technology and user expectations.

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved