« NFR (SAFe) » : différence entre les versions

De Wiki Agile
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 50 : Ligne 50 :
===Types de NFR===
===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.
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.
====Qualités du système====
Les NFR sont souvent des exigences architecturales significatives qui décrivent les différents attributs de qualité du système ("-ilités"). Elles sont aussi critiques, voire plus critiques, que les exigences fonctionnelles qui passent par le backlog. En collaboration avec le [https://scaledagileframework.com/product-management/ Product Management] et le [https://scaledagileframework.com/solution-management/ Solution Management] et les équipes, les [https://scaledagileframework.com/system-architect/ architectes système] et [https://scaledagileframework.com/solution-architect/ architectes solution] sont souvent responsables de l'identification et de la définition des NFR. La figure 3 présente une liste relativement complète des sources de NFR à prendre en compte pendant le développement.<br/>
<br/>
[Fichier:Nonfunctional Requirements F03.jpg|border|link=|900px]]<br/>
<small>''Figure 3. Exemples d'attributs du système pouvant faire l'objet d'une NFR [1].''</small><br/>
====Contraintes de conception====
Outre les -ilités de ces systèmes, un autre type de NFR peut avoir un impact considérable sur la conception du système. Il s'agit des "contraintes de conception", qui limitent la liberté de choix pour certaines options de conception. Voici quelques exemples de contraintes de conception
* La conception du système doit utiliser uniquement des composants matériels provenant de fournisseurs agréés (système cyberphysique).
* L'authentification unique doit utiliser le protocole SAML.
* Les composants open-source doivent être approuvés à l'avance par le service juridique.
* Toutes les données des utilisateurs doivent être cryptées et stockées dans la base de données de l'entreprise.
* Les langages de programmation Java, Python et Javascript sont approuvés pour un usage général. Tout autre langage de développement doit être approuvé au préalable.
<br/>
Bien entendu, pour favoriser l'innovation, ces langages doivent être aussi peu nombreux que possible et refléter les décisions centralisées qui permettent de réaliser des économies d'échelle, d'assurer la sécurité ou de prendre en compte d'autres aspects essentiels de l'ensemble des solutions.<br/>
<br/>
Les exigences fonctionnelles (NFR) et les contraintes de conception définissent la portée et la qualité du système. En comprenant à la fois les NFR et les contraintes de conception, les équipes peuvent prendre des décisions plus éclairées sur la conception du système, en s'assurant qu'il répond aux besoins des parties prenantes tout en respectant les limitations.<br/>





Version du 29 février 2024 à 09:50

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.

Qualités du système

Les NFR sont souvent des exigences architecturales significatives qui décrivent les différents attributs de qualité du système ("-ilités"). Elles sont aussi critiques, voire plus critiques, que les exigences fonctionnelles qui passent par le backlog. En collaboration avec le Product Management et le Solution Management et les équipes, les architectes système et architectes solution sont souvent responsables de l'identification et de la définition des NFR. La figure 3 présente une liste relativement complète des sources de NFR à prendre en compte pendant le développement.

[Fichier:Nonfunctional Requirements F03.jpg|border|link=|900px]]
Figure 3. Exemples d'attributs du système pouvant faire l'objet d'une NFR [1].

Contraintes de conception

Outre les -ilités de ces systèmes, un autre type de NFR peut avoir un impact considérable sur la conception du système. Il s'agit des "contraintes de conception", qui limitent la liberté de choix pour certaines options de conception. Voici quelques exemples de contraintes de conception

  • La conception du système doit utiliser uniquement des composants matériels provenant de fournisseurs agréés (système cyberphysique).
  • L'authentification unique doit utiliser le protocole SAML.
  • Les composants open-source doivent être approuvés à l'avance par le service juridique.
  • Toutes les données des utilisateurs doivent être cryptées et stockées dans la base de données de l'entreprise.
  • Les langages de programmation Java, Python et Javascript sont approuvés pour un usage général. Tout autre langage de développement doit être approuvé au préalable.


Bien entendu, pour favoriser l'innovation, ces langages doivent être aussi peu nombreux que possible et refléter les décisions centralisées qui permettent de réaliser des économies d'échelle, d'assurer la sécurité ou de prendre en compte d'autres aspects essentiels de l'ensemble des solutions.

Les exigences fonctionnelles (NFR) et les contraintes de conception définissent la portée et la qualité du système. En comprenant à la fois les NFR et les contraintes de conception, les équipes peuvent prendre des décisions plus éclairées sur la conception du système, en s'assurant qu'il répond aux besoins des parties prenantes tout en respectant les limitations.


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.