Nonfunctional Requirements (NFRs) are system qualities that guide the design of the solution and often serve as constraints across the relevant backlogs1. Unlike functional requirements, which specify how a system responds to specific inputs, NFRs are used to specify system qualities and attributes such as performance, scalability, security, usability, and maintainability.
NFRs and System Design: NFRs are persistent qualities and constraints that are typically revisited as part of the definition of done (DoD) for each Iteration, Program Increment (PI), or release. They influence the design and development of the system by providing guidelines on how well the system should perform certain functions1.
Influence on Backlogs: NFRs affect the backlogs of Teams, Agile Release Trains (ARTs), Solution Trains, and the Portfolio. They are not backlog items themselves but are persistent constraints that any new backlog item must consider in its acceptance criteria1.
Example of NFR as a Constraint: For instance, if there is a requirement for all products in a suite to require SAML-based single sign-on, while single sign-on is a functional requirement, the choice of SAML (Security Assertion Markup Language) is a nonfunctional constraint. Any new feature requiring sign-on functionality must include SAML in its acceptance criteria1.
NFRs in SAFe: In the SAFe framework, NFRs are significant attributes of the solution that the ART and Value Streams create, and thus, they have a substantial impact on the work items in the backlogs. The portfolio backlog may also include NFRs, typically for cross-solution qualities like regulatory standards1.
In summary, NFRs are critical to the success of a system as they provide the necessary constraints on the design, ensuring that the system meets the required standards for quality and performance. They are not merely items to be implemented when capacity is available; they are integral to the system’s architecture and must be considered throughout the development process.