Thursday, July 14, 2005

What are Functional and Nonfunctional Requirements?

Recall the definition of "requirement":

"A requirement specifies the least stringent condition that must hold to solve or avoid a prospect problem (problem that a prospective customer faces)."

Product managers distinguish between functional and nonfunctional requirements. In my article, "How to Guarantee Product Failure", I briefly allude to this distinction.

A functional requirement states what the product must do to solve or avoid a prospect problem. It might state, for example, that an air conditioner should maintain a constant temperature in a room.

Nonetheless, functional requirements do not by themselves fully specify what it takes to solve or avoid a prospect problem. How constant should the temperature be? How easy should it be to set the thermostat? Nonfunctional requirements complete the picture by supplying the answers to these kinds of questions.

A nonfunctional requirement attaches measurable constraints to a functional requirement. A nonfunctional requirement might specify that the amount of time it takes for a user with a given skill set to set the thermostat will not exceed five seconds. Or it might might specify that the air conditioner will keep the temperature within one degree of the thermostat setting.

No comments :