Task: Find and Outline Requirements
This task describes how to find and outline the requirements for the system so that the scope of work may be determined.
Disciplines: Requirements
Extends: Find and Outline Requirements
Purpose

The purpose of this task is to identify and capture functional and non-functional requirements for the system. These requirements form the basis of communication and agreement between the stakeholders and the development team on what the system must do to satisfy stakeholder needs. The goal is to understand the requirements at a high-level so that the initial scope of work can be determined.  Further analysis will be performed to detail these requirements prior to implementation.

Relationships
Steps
Gather information

Use various techniques to make gathering requirements easier. Face-to-face meetings with stakeholders is the most effective way to understand stakeholder needs and to gather and validate requirements, but you must prepare in order for these meetings to run efficiently.

Be prepared by gathering and reviewing information related to the problem domain, problem statement, business environment and key stakeholders. Most of this information should be available in the Artifact: Vision.  Review the Artifact: Work Items List for stakeholder requests.

See Guideline: Requirements Gathering Techniques for more information.

Identify and capture domain terms
Collaborate with stakeholder to make sure that ambiguous or domain-specific terms are clearly defined in the Glossary and that you use these terms consistently.
Identify the types of requirements relevant to your system

Requirements can be broadly classified as either functional or non-functional requirements. The former specify what the system must do. The latter specify constraints on the solution such as usability, reliability, performance, supportability, interfaces with legacy systems, etc. Depending upon the domain there may be regulatory requirements that apply.

Collaborate with stakeholders to identify the types of requirements relevant to your system. This will help you assess the completeness of your requirement set. For more information on types of requirements see Concept: Requirements and Concept: Supporting Requirements.

Identify and capture Use Case and Actors in a Use-Case Model

Collaborate with stakeholders to identify and capture the Actors and Use Cases in the Use-Case Model. See Guideline: Find and Outline Actors and Use Cases for more information.

Identify and capture Supporting Requirements

Collaborate with stakeholders to identify and capture the other types of requirements relevant to your system. See Guideline: Supporting Requirements for more information.

Achieve concurrence
Conduct a review of the requirements with relevant Stakeholders and the development team to ensure consistency with the Vision, assess quality, and identify any required changes. See Guideline: Effective Requirement Reviews for more information.
Update the Work Items List
Capture references to the requirements in the Artifact: Work Items List, so they can be prioritized.
Key Considerations

The Ambassador User should take the lead in this task, deferring to the Analyst where specific requirements management techniques and expertise are required.

The Ambassador User has overall responsibility for agreeing the precise scope and priority of the requirements. The Advisor User(s) and other stakeholders will provide additional sources of requirements. The Analyst will render the requirements into a format that enables software to be developed and tested. The Visionary will verify that the scope of the requirements supports the Vision.

More Information