Monday, April 24, 2006

Poor Definition of "Requirement"

Karl Wiegers, author of several books on product requirements, says his favorite definition of requirement is:
"Requirements are…a specification of what should be implemented. They are descriptions of how the system should behave, or of a system property or attribute. They may be a constraint on the development process of the system."
This unfortunate definition comes from Ian Sommerville and Pete Sawyer.

Frequent readers of this blog know that I find this definition to be overly broad. After all "a specification of what should be implemented" could include a detailed design specification with UML class and collaboration diagrams. Wieger's favorite definition thus fails to provide any meaningful distinction between requirements and design.

A proper definition of requirement must clearly distinguish between requirements and design.


Steve said...

Agreed. A good requirement is a statement of the problem, that can be solved, and absent a design of how to solve it.

See my article "On Reqs and Specs" for more.

Roger L. Cauvin said...

Thanks, Steve. Your "On Reqs and Specs" is highly recommended, and I think it hits the nail on the head. It's nice that one of the most respected authorities in the product management community has drawn attention to this issue.