- Gestion des exigences
-
La gestion des exigences consiste à gérer les exigences hiérarchisées d'un projet, à détecter les incohérences entre elles et à assurer leur traçabilité.
Dans de nombreux métiers, l'expression de ces exigences donne lieu à une quantité de documents dont la cohérence et la qualité conditionnent le succès ou l'échec des projets concernés.
Il existe des logiciels spécialisés qui permettent d'aider à la réalisation de cette activité.
Certains cahiers des charges (en Haute qualité environnementale appliquée au bâti, par exemple) peuvent contenir des « performanciels » et des « exigenciels », comprenant des niveaux de résultats attendus que l'architecte et la maîtrise d'œuvre s'engagent à atteindre (obligation de résultats, et parfois de moyens ; par exemple utilisation de panneaux solaires, d'isolants produits à partir de matériaux végétaux issus de l'agriculture biologique, etc.).
Sommaire
Indépendance de la classification des exigences
On peut adopter différentes classifications des exigences selon l'approche ou l'organisation préexistante, par exemple :
- En fonction des personnes qui les émettent :
-
- exigences utilisateurs, exigences-métier, exigences techniques.
- En fonction de leur niveau de précision :
-
- objectifs, spécification générales, spécification détaillées (certifications, écocertification..), scénario d'utilisation.
- En fonction de la nature de l'exigence :
-
- fonctionnalité, ergonomie (utilisabilité), de robustesse, performance, sécurité.
On retrouve presque toujours des problématiques récurrentes auxquelles la gestion des exigences apporte des solutions :
- Collecte
- Validation
- Gestion des priorités
- Gestion du changement
- Gestion de la qualité
- Liens avec le reste du projet et/ou avec le contexte
Traçabilité des exigences
La traçabilité des exigences est un concept clé mis en avant dans la gestion des exigences.
Anecdote
Un jour un constructeur automobile décida de réduire les coûts sur l'un de ses modèles phares. Une équipe se pencha sur les spécifications du modèle et chercha des axes de réduction des coûts. Quelqu'un s'avisa que le modèle était conçu pour résister à un vent arrière, avec de la pluie, de 200km/h ce qui entraînait des coûts de fabrication importants. On décida donc de changer cela en allégeant la fermeture du coffre à bagage situé à l'arrière. Ce n'est qu'à l'automne, chez les concessionnaires, qui trouvaient de l'eau dans les coffres, que l'on prit en compte que les voitures étaient acheminées par train Express.
(Cette anecdote n'a pas de valeur historique mais seulement illustrative.)
Définition
La traçabilité est la possibilité de lire facilement ce qu'il est advenu et ce qu'il est censé advenir de quelque chose.
La traçabilité des exigences est le fait de pouvoir à tout instant connaître facilement l'origine et les liens entre les exigences, ainsi qu'entre les exigences et le reste du projet ou le contexte (notamment les besoins utilisateur, réalisation et tests).
Elle aide à répondre aux questions du type :
- D'où vient une exigence ? (Quel besoin cette exigence couvre-t-elle ? Pourquoi a-t-on conçu la solution de cette manière et quelles étaient les autres possibilités ?)
- Cette exigence est-elle nécessaire ?
- Où met-on en œuvre cette exigence ?
- Comment interpréter cette exigence ?
- Quelle décision de conception affecte la mise en œuvre de l'exigence ?
- Cet élément de conception est-il nécessaire ?
- La solution réalisée est-elle conforme aux exigences ?
- Comment testera-t-on cette exigence ?
- Toutes les exigences sont-elles prises en compte ? (peut se lire : est-ce que le projet est terminé ?)
- Et si non quel est le pourcentage d'exigences prises en compte ? Et quelles sont les exigences non (encore) prises en compte ?
- Quel est l'impact du changement d'une exigence ?
CMMI
Le Capability Maturity Model Integration décrit les activités liées à la gestion des exigences dans certains modèles de conception logicielle :
- Comprendre et intégrer les exigences au projet
- Valider les exigences
- Gérer le changement d'exigences
- Maintenir la traçabilité des exigences
- Gérer les incohérences entre le projet et les exigences.
Comprendre et intégrer les exigences au projet
Les parties prenantes du projet expriment des besoins, qui sont formulés sous forme d'exigences. Les responsables du projet, après avoir compris les exigences et en avoir vérifié la cohérence, les intègrent au projet.
Cela peut impliquer :
- De maintenir une liste des acteurs habilités à exprimer les exigences.
- De maintenir des critères pour accepter ou non les exigences.
- D'analyser des exigences vis-à-vis des critères.
- De formaliser l'acceptation d'une exigence.
Valider les exigences
Pour garantir l'engagement des parties prenantes du projet, en ce qui concerne les impacts sur le projet d'une nouvelle exigence ou d'un changement, on évalue les conséquences sur le projet et on demande validation de l'exigence par les parties.
Cette activité peut donner lieu à :
- Une analyse d'impact d'une exigence ou d'un changement d'exigence
- Un document formalisant l'engagement des parties sur les exigences et leurs impacts.
Gérer le changement
Au cours d'un projet les exigences évoluent pour diverses raisons. Il est important de gérer efficacement les changements et les ajouts. Pour pouvoir évaluer correctement les impacts il est important que l'origine et la justification de tous les changements soient documentées. On peut en outre vouloir mesurer la volatilité des changements.
Cela peut impliquer de produire :
- Un état des exigences
- Une base de données des exigences
- Une base de données des décisions concernant les exigences.
Maintenir la traçabilité des exigences
On parle de traçabilité bidirectionnelle. Notamment on doit pouvoir tracer une exigence depuis son plus haut niveau jusqu'au plus bas.
Wiki et exigences
Un outil de gestion d'exigences doit avoir des caractéristiques proches de celles d'un wiki. Notamment il doit permettre la modification d'un même item par de nombreuses personnes (en tenant compte des autorisations attribuées à chaque personne), doit gérer les versions et l'historique.
Outils
Il existe de nombreux outils de gestion des exigences :
- Envision Requirements
- Accept 360°
- CaliberRM
- Compuware Optimal Trace
- GenSpec (gratuit)
- IBM Rational RequisitePro
- Polarion ALM with Subversion
- PowerAMC intègre un outil de gestion d'exigences qui fonctionne avec Microsoft Office.
- Programming Research IRqA
- Reqtify
- Serena Dimensions RM
- IBM Rational DOORS
- TWiki
- UProm (gratuit)
Note : L'environnement Microsoft Visual Studio intègre des modules de gestion d'exigences. L'une des caractéristiques des exigences étant d'être vérifiable, l'outil Quality Center (précédemment Test Director) édité par HP et dont la principale activité est centrée autour de la définition de jeux de tests, possède lui aussi un module permettant de gérer les exigences.
Voir aussi
Articles connexes
Wikimedia Foundation. 2010.