Friday, July 15, 2005

Artificial Precision in Nonfunctional Requirements

Now that I've outlined the difference between functional and nonfunctional requirements, I want to home in on what matters in nonfunctional requirements.

I once wrote in a market requirements document (MRD):

"The number of user gestures required to configure a controller and control history should not exceed 6400."

This requirement was an ease-of-use constraint on a functional requirement specified earlier in the document. It limited the number of mouse clicks, keystrokes, and any other "gestures" the user would have to employ to achieve the functional goal.

How did I come up with the figure '6400'? Did I have any real market data to support it?

Well, I did base the figure on some real data, but the point is that the exact figure doesn't matter very much. The most important thing we can do in specifying the nonfunctional requirements of a system is to define the kinds of measurements we would perform to verify the system solves problems in the marketplace. Knowing the kinds of measurements enables product designers and developers to understand what it means to improve the product, even if they don't know precisely when it's good enough.

No comments :