Why non-functional requirements are becoming increasingly important
If a system does not fulfill its function, we have a serious problem: what would a music player be that does not play music? But there are also many requirements that have nothing directly to do with the function of the system. And these are becoming increasingly important.
First the terminology: Functional requirements are, well, about the function of the system. What should the system do? The music player should play music (among other things). There is a long tradition of working with functional requirements and Many approaches.
The term "non-functional requirement" is often criticized, partly because the name suggests that these are not so important. This is why the term "quality characteristic" is often used.
Non-functional requirements come in many shades. Some are directly relevant to the user, such as appearance or performance. Others are indirectly relevant, such as safety or operating costs.
Form Follows Function
The guiding principle in design has long been "Form Follows Function" - function comes first, and form (a non-functional characteristic) must not stand in the way of this and, at best, supports it.
This way of thinking is undoubtedly still important and correct today. However, we are currently experiencing a decoupling of form and function, driven in part by software. This is particularly easy to see in products that have "stabilized": In cars, four wheels have proven their worth; in smartphones, the flat, rectangular shape with the display on one side. Even if there are variants, it is difficult to differentiate between them. This often comes from non-functional features.
Equal rights right from the development stage
Functions also take a back seat because they can often be retrofitted via software. During development, it is therefore sometimes sufficient if a function can potentially be supported. For example, the music player mentioned at the beginning could be retrofitted with the ability to play other file formats. For the end customer, this would alleviate a missing function.
At the same time, the non-functional features are often the ones that the user comes into contact with. Who doesn't remember ticket machines with horrible user guidance? The function is there, but the non-functional user guidance makes it frustrating to use.
Incorporating non-functional requirements into development
Especially in software development, it is quite easy to specify and consider non-functional requirements right from the start. By working with User storiesfor example, often have a positive impact on usability. Automated load tests ensure that the system performs well at an early stage, etc.
Even In modeling, non-functional requirements can be be taken into account. This can be done using languages designed for this purpose, but also by quantifying aspects (e.g. performance) or by systematically recording cross-cutting issues.
Functions are easy to recognize and copy from competitors. Non-functional requirements are an important way to stand out from the competition. This was not the case in the past, which is why non-functional requirements are more important than ever.
Photo by Cody Davis on Unsplash






