Tuesday, November 01, 2005

Overemphasis on Functional Requirements

I've mentioned before that there are two kinds of requirements, functional and nonfunctional. What I didn't mention is that most organizations place too much emphasis on functional requirements.

How can you tell if your organization overemphasizes functional requirements?

If your organization bothers to document requirements (whether in an MRD or other document), examine them. If you find any of the following statements apply, then your organization probably is overemphasizing functional requirements:
  1. Is there a laundry list of product features?
  2. Are there more use cases than constraints on the use cases?
  3. Is there a multi-page section labeled "functional requirements"?
If any of these statements apply in your case, then your organization likely fails to understand the difference between functional and nonfunctional requirements. In a future entry, I will explain why the overemphasis on functional requirements has a negative impact on product development.

UPDATE: See the follow-up entry and this clarification. The problem is that so-called functional requirements are sometimes functional design specifications masquerading as requirements.

4 comments :

leathej1 said...

I see where you are going with this. However, let me turn this upside down and suggest we concentrate on Using Functional Requirements More Effectively. I think you will find that NF requirements will fall right off the page if we follow some simple steps to drive detail and context in our Functional Requirements.

Roger L. Cauvin said...

But isn't "detail and context" precisely what nonfunctional requirements are?

leathej1 said...

Right. So why let your BAs procrastinate with statements like this:

Non-functional requirements:
Non-functional requirements will be dealt with in another document.

IOW - why the hell do we deal with them separately?

Roger L. Cauvin said...

I agree. Since nonfunctional requirements modify (or constrain) functions, it doesn't make sense to deal with them separately.