Non Functional Requirements | Quick Guide for the Business Analyst in 2023

Scalability

The scalability non-functional requirements are used to determine the highest workloads under which the system will still perform as expected (Black Friday Test). This NFR doesn’t necessarily define the maximum load the system has to process now, but rather the one it may have to deal with in the future. It should allow for a smooth business expansion and account for both software and hardware implications. The scalability NFR should, for example, take into consideration a potential growth in the number of users and simultaneous sessions and define improvement of the functionality of the system without impacting the performance.

Reliability

The reliability NFR defines the ability of the system to properly perform the required functions under predefined conditions for a certain period of time. Commonly, it’s expressed through probability percentages predicting chances that the system won’t experience critical failure under the normal usage, and during the set time. As a critical failure, normal usage, and the time period can be rather difficult to define, a somewhat simpler approach is often used. It includes counting the number of the system’s critical failures during testing and tracking the mean time between critical failures.

Regulatory

The NFRs from this category describe product compliance to laws or other regulatory requirements. If a product potentially violates these regulations, it may result in legal punishment, including fines, or even the inability to release the product on a certain market. These requirements commonly address various regulations, including privacy laws, GDPR, and international trade regulations. The audibility requirement usually falls under this category, too.

Maintainability

Maintainability is a quality attribute that defines how the solution can be modified to fix the fault or improve the performance. In order to be maintainable, the system should be capable to be managed or adapted in a cost-effective way over the expected lifespan. Similar to the reliability, this non-functional requirement includes can be expressed with the probability percentage showing the likelihood of system repair for a certain period of time. Maintainability often incorporates other requirements such as configurability, modifiability, interoperability, and extensibility.

Serviceability

Closely connected to maintainability, the non-functional requirement defines how easy it is to perform service on the component or the whole system when needed. Serviceability ensures that technical and support staff are able to monitor the operation of the system and quickly react if needed. Properly set serviceability positively impacts reliability and availability.

Utility

This type of non-functional requirement defines how effectively the system can be used or utilised to achieve required goals. When this NFR is properly set, the system is easy and straightforward to use by as many people as possible, including end-users, as well as operators and administrators. Defining these can be tricky, as there are many types of utility criteria and the requirements should be measurable.

Security

The security requirement is particularly important when the system involves handling sensitive data, such as personal or financial information. To define these NFRs, it’s important to fully understand regulatory and compliance requirements from the very start of the project and clearly communicate them to developers. This way, the security NFR can help them implement necessary actions to maintain necessary security levels. When done right, it ensures that all data inside the system or one of its components is secure and protected against unauthorised access and attacks. Security NFRs define specific threats that can be addressed in more detail by functional requirements. Security often incorporates other non-functional requirements, such as authentication or confidentiality.

Manageability

Manageability defines how easy it is for administrators to efficiently control the system to ensure continued optimal performance. This non-functional requirement dictates that the system architecture must have a built-in ability to monitor the system, allow dynamic configuration, and easily analyse the root cause of failure. Manageability is one of the crucial non-functional requirements as it has a significant influence on recurring costs and potential failures. It also influences several other NFRs, such as availability, reliability, performance, and security.