Communication in this step of the requirements gathering process involves the following:
- Clear, written version of requirements by Business Analyst
- Peer reviews
- Additional questions
- Topical meetings and meeting minutes
- Identification of process owners and function experts
- Provide list of lessons learned from prior projects
General Requirements
This checklist captures issues that apply to all requirements content, regardless of technique used to identify, analyze, and capture it. In this context, a requirement may be thought of as a unit of system behavior.
For all requirements...
- Are they complete?
- Are all they uniquely identifiable?
- Are they clearly and appropriately prioritized?
- Are they consistent?
- Does the set of requirements adequately address all appropriate exception conditions?
- Does the set of requirements adequately address boundary conditions?
- Are the requirements feasible? Does a solution to the set of requirements exist?
- Can they be implemented within the known constraints?
- Are they sufficient? Could they be sent to a reputable development organization and have a reasonable probability of producing the desired product?
- Are inverse requirements explicitly stated?
- Are these the simplest set of requirements that meets the stakeholders' needs?
- Are all cross-references to other requirements correct?
- Have functional and non-functional requirements been considered?
For each individual requirement:
- Is it precise and unambiguous?
- Is it stated as simply as possible?
- Is it testable/verifiable?
- Is it correct?
- Is it in scope?
- Is it as modifiable as possible?
- Is it written in the customer's language, using the customer's terminology?
- Is it acceptable to all stakeholders?
- Is it a statement of stakeholder need, not a solution?
- is it traceable?
- Is it necessary?
- Are all missing items or unresolved issued identified with a TBD, an owner, and a timeline for closing?
Business Requirements
Business requirements describe why a system needs to be created and the general strategy desired. They are the basis for the system's scope and the primary measure by which the project can be judged a success or failure.
- Are the high-level business objectives described?
- Is a system perspective used when appropriate?
- Are the requirements understandable by all stakeholders?
- Is the value to the business owner (cost savings, reduced inventory, etc.) identified?
- Is the value to the customer (new features, improved usability, etc.) identified?
- If appropriate, are the business opportunities the requirements support outlined?
- Are the details of how the system will meet objects avoided?
- Does this requirement answer the question "why are we doing this software"?
- Is this requirement a product or business vision?
- Is this requirement a product or business goal?
- Is this requirement a customer goal?
- Is this requirement a system objective?
- Does this requirement describe a product charter?
Functional Requirements
Functional requirements provide detail about what a system will have to do in order to satisfy business requirements. Note that this does not include details about how the system will be designed and constructed. An example of a functional requirement would be the creation of toast from a toaster.
- Does the set of functional requirements meet the needs outlined by business requirements? (e.g. complete, sufficient, etc.)
- Is the relation between functional and non-functional requirements clear?
- Is the relation between functional requirements and any user interface designs clear?
- Do the functional requirements convey enough knowledge to allow design activities to begin or continue?
- Do the functional requirements avoid design and construction details?
- Are the functional requirements at an appropriate level of precision? (e.g., with an evolutionary prototyping life cycle, functional requirements should NOT be extremely precise; details will be worked out as design and construction progress.)
- Are appropriate mechanisms used to capture the functional requirements? (e.g., user interface prototypes and screen mock-ups are often better than text.)
Quality Requirements
- General
- Are the requirements stated in a specific an measurable form? (e.g., 10 sec vs. fast)
- Does this requirement answer the question "how well"?
- Is this requirement a task detail constraint?
- Is this requirement mandated by a standard or other binding authority?
- Reliability
- Are the reliability (MTBF) requirements specified?
- Are the availability (up time) requirements specified?
- Are the serviceability (MTTR) requirements specified?
- Are the robustness requirements specified?
- Performance
- Are the response time or latency requirements specified?
- Are the throughput requirements specified?
- Are the data volume (input, stored, output) requirements specified?
- Are the peak or short-term load requirements specified?
- Hazard/Safety/Security
- Are the security requirements specified?
- Are the safety requirements specified?
- Configurations
- Are the supported configurations specified?
- Are the compatibility requirements (backwards, other applications, etc.) specified?
- Usability
- Are the usability requirements specified?
- Are the internalization/localization requirements specified?
- Are the look and feel (e.g., color schemes, standards, etc.) requirements specified?
- Operational
- Are any operational constraints or requirements (e.g., the user must be able to operate the system using ski gloves) specified?
Software Requirements
- Is the requirement adequate for the business goal of the project?
- Does the requirement conflict with some domain constraint, policy, or regulation?
- Does the requirement include premature design or implementation information?
- Is the requirement necessary?
- Does the requirement require non-standard hardware or must software be used?
- Is the requirement ambiguous? Could different persons read it in different ways? What are the different interpretations?
- Is the requirement realistic given the technology that will be used to implement the system?
- Does the description of a requirement describe a single requirement or could it be broken into several different requirements?
- Has each requirement been assigned a priority?
- Are the system boundaries well defined?
- Have the portability, reliability, usability, and maintainability requirements for the system been respected?
- Did you create a System Architecture Model?
- Did you develop a behavioral or structural model for the system?
- Is the requirement uniquely identified?
- Do the deduced requirements have a valid source and rationale?
- Does the requirement have a source so it can be traced?
- Does the requirement have a type?
- Is the requirement ambiguous, unclear, or vague?
- Does the requirement align with the business goals of the project?
- Does the requirement conflict with some domain constraint, policy, or regulation?
- Is the requirement related to an organizational or political issue in opposition to the business goal of the system?
- Does the requirement take into consideration the needs of all stakeholders?
- Has an UIR been used for a requirement related to user interfaces?
- Have all the stakeholder been consulted during the elicitation process?
- Has all the system information (gathered in the preliminary phase) been restated as requirements?
- Does the requirement need a scenario to be elicited?