The team-specific responsibilities of the Requirements Team are to:
Develop a top-level vision of the system or application.
Elicit, reuse, analyze, specify, and manage the
real requirements of the endeavor.
Produce a formally documented consensus among all
endeavor stakeholders (e.g., client, users, management, and
developers) concerning these requirements for the next
version [incremental iteration] of the application.
Prioritize the requirements and determine the version of
the application by which the requirements shall be implemented and delivered.
Leads the requirements engineering activity by
coordinating the efforts of the requirements team members.
Works with the other team members to:
Schedule the requirements engineering tasks and milestones.
Report the status of the requirements engineering
activity (e.g., number of requirements identified,
analyzed, and specified, and number of use cases identified and modeled).
Ensures that all members of the team use an appropriate requirements analysis (e.g., modeling) approach.
Ensures that the requirements are of sufficient high quality (e.g., consistent, complete, and testable).
Works with the customer representative, system
architect, and test engineer to ensure an optimal, consistent prioritization of the requirements.
Identifies architecturally-significant requirements and ensures that they are addressed early.
Prioritizes the requirements from an architecture, design, and implementation perspective.
Ensures that each requirement is implementable from a system’s perspective.
Performs engineering trade-offs studies to reduce the risk of high-risk requirements.
Ensures (to the extent practical) that the requirements
are optimally organized so that the requirements are easily
allocatable and traceable to the major components of the system architecture.
A requirements team, even if its membership overlaps with
other teams, is almost always appropriate.
The amount of time and frequency of meeting of the
requirements team will vary during the endeavor based on the
phase of the endeavor and the volitility of the requirements.
Members of the requirements team should:
Understand and be trained in:
Requirements engineering.
The application domain.
The desires and true needs of the customer and user organizations.
Have decision authority regarding the requirements and
changes in scope, cost, and schedule of the endeavor due to
the impact of changes in requirements.
Have excellent interpersonal skills for interacting
with all of the stakeholders in the requirements.
Understand and respect the needs and viewpoints of all
of the stakeholders in the requirements.
Be able to quickly achieve consensus and move on.
The membership of the requirements team may well change
during the course of the endeavor as:
Different types and levels of requirements are engineered.
The emphasis on requirements engineering changes.
A requirements team should recognize that:
Requirements engineering is an ongoing activity that is
performed iteratively, incrementally, and in a parallel and timeboxed manner.
Some of the stated requirements are neither good quality nor real requirements.
Some requirements will change during the course of the endeavor.