Nonfunctional is worthy, too.

Okay, so you’ve most certainly heard about requirements before. At least you’ve read about it on my blog (please? ?). And probably you don’t have the full mental image of actual requirements, because most requirements definitions only focus on functional requirements, actually.


These so called functional requirements are based on the expected functioning of the product/service. This is typically represented in features such as menus or buttons. Here is where you want to think about potential use scenarios. For most cases, though, if you fail to identify some nonfunctional requirements, you’ll have some trouble later. Trust me.
A milk container has the functional requirement of being capable to contain fluid without leaking. Of course, milk containers can also be used for other things:



Now, nonfunctional requirements are those regarding attributes such as performance levels, security, usability, reliability and availability. Here is where you you want to think about user narrative statements, acceptance criteria. When these factors are not taken into account, not even your perfectly well functional requirements will save you from some very unsatisfied resulting customers. This highly increases the chances of abandonment.


A hard hat has the non-functional requirement of not breaking under pressure of less than 10,000 PSI. Now, let me just say there are some pretty cool things you can do with hard hats:



And I don’t blame you, the fact that they’re called NONFUNCTIONAL requirements already makes you think it’s not worth of your time, as if nonfunctional meant pointless, secondary, negligible. I hope you’ve learned here otherwise. It might help to make a mental image of them more as “quality requirements”. That rings more the bell for most of us.

Functionality and quality don’t cancel each other out, in fact, they live as one in all successful software. Both functional and nonfunctional requirements are considered part of high-level design, as the two serve the purpose of product specification. Now you know the difference between functional and nonfunctional requirements, as well as some awesome things you can do with milk containers and hard hats ;)

If you want to take your reading any further, these were my sources: http://searchsoftwarequality.techtarget.com/answer/Functional-requirements-and-nonfunctional-requirements-in-software-engineering-explained