NON-FUNCTIONAL REQUIREMENTS — EVALUATING ILITIES FOR GREAT EXPERIENCE

Sumedha Madan
Engineered @ Publicis Sapient
5 min readJun 27, 2024

Introduction

Non-functional Requirements (NFRs) are system qualities that guide the design of the solution and create the basis for how a system feels. It evaluates the system based on responsiveness, usability, security, portability, accessibility, availability, and other non-functional standards that are critical to the success of any engineering product. For instance, “how fast does the website/app load?” The advantage is that it helps ensure great experience and ease of operating the software.

NFRs are usually more difficult to define, measure, test and track. It becomes critical to constantly re-evaluate the non-functional requirements for correctness of systems.

Shift in Industry Trends affecting NFRs

The transformation from testing to engineering is a journey that has shifted the focus on modern technologies like Cloud and wireless networks which makes it critical to analyze non-functional requirements to support the upcoming technologies.

Majority of the industries are transformed from legacy systems to Cloud architecture adapting agile methodologies; where NFRs become a little complex to manage, but define how a system will work with its operations and limitations.

Focus is now towards innovative approaches for preventing CI failures, improve CI, especially to produce efficiency and utility.

Following Shift Left Approach to identify the issues at their earliest stages of development help to save cost, time and efforts. It enables smaller and ad-hoc validations at component level along with automation suite integrated as part of Continuous Integration/Continuous Deployment process.

Also, with the evolution of AI — complex predictions and decision-making will be defined over the ML model, data, or the entire system and to understand the challenges of dealing with NFRs for ML in the industry.

Non-Functional Requirements — Evaluating Ilities for great experience

Non-Functional Requirements (NFRs) are critical to the success of a software system or product. NFRs are essential to specify the right level of detail in the requirements document.

Users may outrightly reject a system that fails to deliver the required quality outcomes, even if it meets all the expected functional requirements. Therefore, NFRs should be discussed during elicitation and defined precisely to ensure that the system’s behavior meets the user’s expectations.

What we really need is early discovery of runtime architecture behaviors, which has the potential to fail under specific conditions. Focus on “Discover”, “Experimentation” is an empirical approach.

Eliciting Non-Functional Requirements

A good approach for validation of non-functional requirements is to conduct a workshop with all relevant technical stakeholders and possibly an SME from the business.

NFR Gathering Process

Structuring Non-Functional Requirements

To examine the product success, it is important to keep reviewing NFRs basis on growth and new enhancements. Addition, removal and change in NFRs are required in response to implementation changes or changes in business needs.

Types of NFR’s

Key Measures in NFRs

Best practices for documenting requirements

Key points to be taken into consideration while documenting Non-Functional Requirements are as follows:

· To confirm whether the system meets quality constraints, we need to quantify with units of measurement as part of requirement elicitation

· Quantify requirements. If a stakeholder requires a website to load “quickly,” define exactly what that means (3 seconds or less? 2 seconds or less?)

· Quantify requirements. Use specific, measurable metrics such as the number of concurrent users, data volume, transaction rates, or response times

· Consider all third-party limitations

· Consider architectural limitations

· Only document the non-functional requirements that apply to the solution

· Base objectives on realistic usage scenarios, considering expected growth patterns and peak demand

· Requirements must be testable. Write requirements in such a way that after the product is created, testing can show whether they are delivered successfully.

· Focus on the functionality and quality attributes that users need. Remember that requirements must reflect higher-level business objectives.

· Regularly review your list of requirements to ensure that they still align with business goals and technological advancements. Adapt them if needed in response to new insights, market changes, or technological innovations.

Conclusion

Addressing NFRs requires a proactive and comprehensive approach. It begins with thorough planning and analysis to identify the specific NFRs relevant to the project/client requirement. Setting clear and measurable targets for each requirement is essential to ensure that the application meets user expectations.

Throughout the development process, consider NFRs at every stage. Continuously evaluate the app’s performance, making necessary adjustments and optimizations to meet the desired requirements. Close collaboration between developers, testers and stakeholders is crucial to effectively address NFRs and ensure a high-quality product.

Facilitate a collaborative discovery workshop to help establish specific NFRs, expand them into scenarios, and prioritize them for development. Create structured questionnaires or surveys to gather NFR-related information, organize workshops and brainstorming sessions. These workshops should involve all relevant stakeholders from your internal and development teams, so everyone can understand the business drivers, technical constraints, and architecturally significant requirements. Create documents to gain a deeper understanding of user needs and preferences, which can trace user experience requirements.

With the emergence of Artificial Intelligence, ensuring the success of ML-enabled systems, it is essential to be aware of certain qualities of ML solutions (performance, transparency, fairness, accuracy, safety and privacy).

Keep in mind that NFRs are not a one-time consideration. As technology evolves, user expectations change, and new challenges arise. Monitor and adapt to emerging trends and technologies to ensure that the app meets evolving NFRs.

It maintains competitiveness and reputation which contribute to ensuring high-quality products and services meet market and customer expectations.

This helps to satisfy clients, ensuring that the product is a success, meeting security standards, is easy to use, can handle increasing demand, and is easy to maintain.

--

--