NFR (SAFe)
Auteur : © 2010-2023 Scaled Agile, Inc.
Source : Enablers
Date : 13/10/2023 (dernière mise à jour)
Traducteur : Fabrice Aimetti
Date : 28/12/2023
Traduction :

Le diable est dans les détails.
- Proverbe populaire.
NFR (Exigences non fonctionnelles - Nonfunctional Requirements)
Les exigences non fonctionnelles (NFR) sont des qualités du système qui guident la conception de la solution et servent souvent de contraintes dans les carnets de commandes concernés.
Contrairement aux exigences fonctionnelles, qui spécifient la manière dont un système répond à des exigences spécifiques, les exigences non fonctionnelles sont utilisées pour spécifier diverses qualités et attributs du système, tels que :
- Performance : la rapidité avec laquelle un système doit répondre aux demandes
- Scalabilité : la capacité d'un système à gérer une augmentation du nombre d'utilisateurs ou de la charge de travail.
- Sécurité : dans quelle mesure un système protège-t-il contre les accès non autorisés et les violations de données ?
- Utilisabilité : facilité d'utilisation d'un système
- Maintenabilité : facilité de mise à jour et de modification du système.
Les NFR sont des qualités et des contraintes persistantes qui sont généralement réexaminées dans le cadre de la définition du fini (DoD) à chaque itération, PI ou version. Les NFR influencent les backlogs des équipes, de l'ART, du Solution Train et du Portefeuille.
Description détaillée
Les exigences non fonctionnelles (NFR) sont destinées à spécifier les "qualités du système", divers attributs du système qui ne sont pas directement liés à ses fonctionnalités. Ces attributs ne disent pas ce que le système fait, mais comment il le fait. En revanche, les exigences fonctionnelles sont exprimées sous la forme de Capabilities, de Features et de Stories, qui définissent ce que le système fait en réponse à diverses entrées. Bien qu'elles puissent sembler subtiles, les NFR sont tout aussi vitales pour garantir la réussite du système. Le non-respect des NFR peut se traduire par des systèmes qui ne répondent pas aux besoins de l'entreprise, des clients, du marché ou des réglementations ou normes applicables. Dans certains cas, la non-conformité peut entraîner des problèmes importants, tels que des coûts, des mesures de rappel, la protection de la vie privée, la sécurité, des risques pour la santé, des risques juridiques et bien d'autres encore.
L'identification et la mise en œuvre correctes des NFR sont essentielles. La solution peut être trop coûteuse ou non viable si elles sont sur-spécifiées. En cas de sous-spécification, le système risque d'être inadapté à l'usage auquel il est destiné. Quelle que soit la portée du système, une approche adaptative et incrémentale de l'exploration, de la définition et de la mise en œuvre des NFR est une compétence vitale pour les équipes Agile.
Les NFR contraignent les Backlogs
Les NFR sont associées aux backlogs dans l'ensemble de SAFe, comme l'illustre la figure 1. Cependant, elles ne sont pas des éléments d'un backlog. Les éléments d'un backlog vont et viennent au fur et à mesure de leur mise en œuvre. Les NFR sont des contraintes persistantes sur la conception et le développement du système. Par exemple, considérons une exigence telle que "tous les produits de la suite requièrent une authentification unique basée sur SAML". Alors que l'authentification unique est une exigence fonctionnelle, la sélection de SAML (Security Assertion Markup Language) est une contrainte. Tout nouvel élément du backlog nécessitant une fonctionnalité d'authentification doit inclure SAML dans ses critères d'acceptation.
Figure 1. Les NFR concernent tous les backlogs dans SAFe.
Comme les NFR sont des attributs importants de la solution créée par l'Agile Release Train (ART) et les Value Streams, elles influencent les backlogs des Teams, des ART et des Solution Trains. Le backlog du portefeuille peut également nécessiter des NFR, généralement pour des qualités intersolutions (comme les normes réglementaires). Les équipes agiles utilisent des pratiques de qualité intrinsèque pour accélérer les tests NFR et les rendre continus. Les équipes incluent les NFR pertinentes dans leur DoD, les utilisent comme contraintes pour les décisions locales de conception et de mise en œuvre, et assument la responsabilité des tests NFR.
Comme l'illustre la figure 2, les NFR sont modélisées comme des contraintes du carnet de commandes.
Figure 2. Les NFR sont associées aux backlogs et contraignent la conception du système.
Les NFRs peuvent contraindre n'importe quel élément du backlog tel que décrit dans le modèle d'exigences SAFe. La plupart des NFR nécessitent un ou plusieurs tests de qualité du système (idéalement automatisés) pour savoir si le système est conforme à la contrainte.
Types de NFR
D'une manière générale, il existe deux types de NFR : Les qualités des systèmes et les contraintes de conception. Chacun est décrit dans les paragraphes suivants.
En savoir plus
[1] Non-functional requirement. Wikipedia. Retrieved October 13, 2023, from https://en.wikipedia.org/wiki/Non-functional_requirement
[2] Gilb, Tom. Competitive Engineering: A Handbook For Systems Engineering, Requirements Engineering, and Software Engineering Using Planguage. Butterworth-Heinemann, 2005.
[3] Manifesto for Agile Software Development. http://AgileManifesto.org/
[4] Crispin, Lisa, and Janet Gregory. Agile Testing: A Practical Guide for Testers and Agile Teams. Addison-Wesley Professional, 2009.
[5] Leffingwell, Dean. Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise. Addison-Wesley Professional, 2010.
[6] Gregory, Janet, and Lisa Crispin. More Agile Testing: Learning Journeys for the Whole Team. Addison-Wesley Professional, 2014.
[7] Leffingwell, Dean, and Ryan Shriver. Nonfunctional Requirements (System Qualities) Agile Style. Agile 2010.