A requirement should support a decision
Requirements are useful when they define an observable boundary for design and acceptance. Vague language transfers ambiguity into architecture, risk controls, and verification.
- Each requirement has one clear subject
- Performance is quantified with units and conditions
- Acceptance can be demonstrated by an identified method
- Source and related user need are traceable
- Conflicts and assumptions are visible
Review the set, not only each line
A collection of individually testable requirements can still be incomplete or contradictory. Review system boundaries, interfaces, environmental conditions, misuse, security, service, transport, and disposal.