Stating what is needed unambiguously.
WHAT A GOOD REQUIREMENT IS
Specific Testable Free of implementation detail Attributed to a source Necessary
WHAT MAKES ONE UNTESTABLE
Adjectives without measures: fast, easy, intuitive, robust.
WHAT TO REPLACE THEM WITH
Conditions that can be verified.
WHAT AMBIGUITY LOOKS LIKE
"And" and "or" combined without clarity Pronouns with unclear referents Terms used differently by different people Implied but unstated behaviour
WHAT TO DO ABOUT TERMS
Define them, once, and use them consistently.
WHY
Most requirement disputes are vocabulary disputes.
WHAT TO SEPARATE
What the system must do How well it must do it Constraints on how it is built
WHAT TO AVOID
Specifying the implementation, which removes the team's ability to find a better one.
WHAT TO STATE INSTEAD
The outcome required.
WHAT TO ASK OF EVERY REQUIREMENT
How would we verify this?
WHAT TO DO IF NOBODY CAN ANSWER
Rewrite it.