The purpose of Requirements Development (RD) (CMMI-DEV) is to elicit, analyze, and establish customer, product, and product component requirements.
Introductory NotesThis process area describes three types of requirements: customer requirements, product requirements, and product component requirements. Taken together, these requirements address the needs of relevant stakeholders, including needs pertinent to various product lifecycle phases (e.g., acceptance testing criteria) and product attributes (e.g., responsiveness, safety, reliability, maintainability). Requirements also address constraints caused by the selection of design solutions (e.g., integration of commercial off-the-shelf products, use of a particular architecture pattern). All development projects have requirements. Requirements are the basis for design. The development of requirements includes the following activities:
- Elicitation, analysis, validation, and communication of customer needs, expectations, and constraints to obtain prioritized customer requirements that constitute an understanding of what will satisfy stakeholders
- Collection and coordination of stakeholder needs
- Development of the lifecycle requirements of the product
- Establishment of the customer functional and quality attribute requirements
- Establishment of initial product and product component requirements consistent with customer requirements
- Analysis of needs and requirements for each product lifecycle phase, including needs of relevant stakeholders, the operational environment, and factors that reflect overall customer and end-user expectations and satisfaction, such as safety, security, and affordability
- Development of an operational concept
- Definition of the required functionality and quality attributes
- Constraints of various types
- Technological limitations
- Cost and cost drivers
- Time constraints and schedule drivers
- Consideration of issues implied but not explicitly stated by the customer or end user
- Factors introduced by the developer’s unique business considerations, regulations, and laws
In Agile environments, customer needs and ideas are iteratively elicited, elaborated, analyzed, and validated. Requirements are documented in forms such as user stories, scenarios, use cases, product backlogs, and the results of iterations (working code in the case of software). Which requirements will be addressed in a given iteration is driven by an assessment of risk and by the priorities associated with what is left on the product backlog. What details of requirements (and other artifacts) to document is driven by the need for coordination (among team members, teams, and later iterations) and the risk of losing what was learned. When the customer is on the team, there can still be a need for separate customer and product documentation to allow multiple solutions to be explored. As the solution emerges, responsibilities for derived requirements are allocated to the appropriate teams. (See “Interpreting CMMI When Using Agile Approaches” in Part I.)
Refer to the Requirements Management (REQM) (CMMI-DEV) process area for more information about managing customer and product requirements, obtaining agreement with the requirements provider, obtaining commitments with those implementing the requirements, and maintaining traceability.
Refer to the Technical Solution (TS) (CMMI-DEV) process area for more information about how the outputs of the requirements development processes are used, and the development of alternative solutions and designs used in refining and deriving requirements.
Refer to the Product Integration (PI) (CMMI-DEV) process area for more information about interface requirements and interface management.
Refer to the Verification (VER) (CMMI-DEV) process area for more information about verifying that the resulting product meets the requirements.
Refer to the Validation (VAL) (CMMI-DEV) process area for more information about how the product built will be validated against the customer needs.
Refer to the Risk Management (RSKM) (CMMI-DEV) process area for more information about identifying and managing risks that are related to requirements.
Refer to the Configuration Management (CM) (CMMI-DEV)process area for information about ensuring that key work products are controlled and managed.
- RD.SG 1 Develop Customer Requirements
- Stakeholder needs, expectations, constraints, and interfaces are collected and translated into customer requirements.
- RD.SG 2 Develop Product Requirements
- Customer requirements are refined and elaborated to develop product and product component requirements.
- RD.SG 3 Analyze and Validate Requirements
- The requirements are analyzed and validated.