There is little disagreement over the fact that quality requirements are important, even essential, to the success of software projects. If we define project success as usable, working software, then it becomes quickly apparent that we need “good” requirements that reflect what the system should do. This begs the question, what qualities make a requirement good?
Logically, a requirement should clearly identify a real and specific business need. This is most easily ensured by having extensive user input during requirements gathering phases and close communication with business users for elaborations. Changing requirements are a hallmark of agile development projects and a focus on requirement elaboration and clarification are key.