La gestion des exigences a pour but de garantir que les objectifs de développement logiciel et produit sont atteints. Lorsqu’elle est effectuée efficacement, elle favorise la communication avec les parties prenantes tout au long du cycle de vie de l’ingénierie et du projet, assurant ainsi que le produit final répond à leurs attentes et aux besoins des utilisateurs. Elle peut également aider les équipes projet à détecter les erreurs précocement, réduisant ainsi les coûts et les risques associés.
La gestion des exigences est incluse dans la gestion du cycle de vie des applications (ALM), le développement logiciel, l’ingénierie logicielle et les méthodes de développement agile. Dans ces scénarios, la gestion de projet permet de s’assurer que le projet est mené à bien selon le calendrier fixé, tandis que la gestion des exigences permet de garantir que le produit final est réalisé correctement.
Le développement et la gestion des exigences sont généralement sous la responsabilité du chef de produit. Cependant, un ensemble d’exigences peut être influencé par toute partie prenante, y compris les clients et partenaires, ainsi que les équipes commerciales, le support, la direction, l’ingénierie, les opérations et les membres de l’équipe projet.
Restez au fait des tendances les plus étonnantes du secteur dans le domaine de l’IA, de l’automatisation, des données et bien d’autres avec la newsletter Think. Consultez la Déclaration de confidentialité d’IBM.
Selon le Glossaire normalisé de la terminologie en génie logiciel de l’IEEE (Institute of Electrical and Electronics Engineers), une exigence est définie comme suit :
« (1) Une condition ou capacité dont un utilisateur a besoin pour résoudre un problème ou atteindre un objectif. (2) Une condition ou capacité devant être remplie ou possédée par un système ou un composant du système pour satisfaire à un contrat, une norme, une spécification ou tout autre document formellement imposé. (3) Une représentation documentée d’une condition ou capacité telle que décrite en (1) ou (2). »
En d’autres termes, les exigences regroupent toutes les informations relatives aux attentes des parties prenantes et aux besoins des utilisateurs pour un nouveau système, produit ou une application. Ces attentes et besoins peuvent inclure des exigences textuelles, des cas d’utilisation, des diagrammes et des descriptions fonctionnelles. Dans un contexte agile, les exigences comprennent également les récits utilisateurs (user stories) et les épopées (epics).
Les équipes projet utilisent aussi les exigences pour documenter des informations qui pourraient autrement manquer dans les backlogs produit. Par exemple, les exigences peuvent inclure des informations concernant les exigences non fonctionnelles, des descriptions de fonctionnalités, des comptes rendus de réunions avec les parties prenantes et des décisions architecturales.
On compte généralement trois types d’exigences :
Ces exigences concernent les attentes, les indicateurs et les besoins métier auxquels le système doit répondre pour atteindre les objectifs de l’entreprise.
Ces exigences définissent les fonctionnalités et caractéristiques d’un système nécessaires pour satisfaire les attentes et les besoins des utilisateurs finaux.
Aussi appelées exigences techniques, elles comprennent les détails technologiques sous-jacents cruciaux pour la réussite du livrable.
Les exigences peuvent également être classées en trois catégories : fonctionnelles, non fonctionnelles et liées au domaine.
Les exigences fonctionnelles concernent les fonctionnalités d’un nouveau système, produit ou application. Elles sont mesurables et essentielles pour répondre aux attentes et besoins des utilisateurs finaux.
Exemple : le logiciel doit permettre aux utilisateurs de se connecter à l’aide de leur compte IBM.
Les exigences non fonctionnelles se rapportent à la performance des exigences fonctionnelles du système, produit ou application. Par exemple, la sécurité, la fiabilité ou l’ergonomie d’un système sont des exigences non fonctionnelles.
Exemple : le portail bancaire en ligne doit être complètement chargé dans les trois secondes suivant la connexion.
Les exigences liées au domaine font référence aux réglementations, normes, règles et terminologies propres à un secteur ou domaine que le système, produit ou application doit respecter.
Exemple : l’application de santé doit être conforme aux exigences de la loi HIPAA (Health Insurance Portability and Accountability Act).
La qualité des produits dépend des exigences qui les sous-tendent. La gestion des exigences permet de garantir que les projets répondent efficacement aux besoins et attentes des utilisateurs et parties prenantes. Elle réduit le risque de défauts, diminue les coûts et favorise une livraison plus rapide, la réutilisabilité et la traçabilité.
La gestion des exigences est d’autant plus cruciale aujourd’hui que l’Internet des objets (IdO) a transformé non seulement le fonctionnement des produits, mais également leur conception et leur développement. Les produits deviennent continuellement plus « intelligents » et complexes, avec toujours plus de lignes de code et de composants logiciels. La gestion des exigences aide les entreprises à surmonter cette complexité et ces interdépendances dans les cycles de vie du développement logiciel et de l’ingénierie, afin de rationaliser le développement produit et accélérer les déploiements.
Les problèmes liés à la gestion des exigences sont souvent cités comme des causes majeures d’échec de projet. Une définition inadéquate des exigences peut entraîner une dérive du champ d’application, des retards dans les projets, des dépassements de coûts et une mauvaise qualité des produits qui ne répondent ni aux besoins des parties prenantes ni aux exigences en matière de sécurité.
Un plan de gestion des exigences (RMP, Requirements Management Plan) permet d’expliquer comment une équipe projet reçoit, analyse, documente et gère toutes les exigences d’un projet. Ce plan couvre généralement l’ensemble du processus, depuis la collecte initiale d’informations jusqu’aux exigences produit plus détaillées recueillies tout au long du cycle de vie du projet.
Les éléments clés à définir dans un plan de gestion des exigences sont : la vue d’ensemble du projet, le processus de collecte des exigences, les rôles et responsabilités, les outils et la traçabilité.
La mise en place d’un plan de gestion des exigences est essentielle à la réussite d’un projet, car elle permet aux équipes d’ingénieurs de contrôler le périmètre du projet et de diriger le cycle de développement du produit. Les logiciels de gestion des exigences fournissent les outils nécessaires pour exécuter ce plan, permettant ainsi de réduire les coûts, d’accélérer la mise sur le marché et d’améliorer le contrôle qualité.
Un processus type de gestion des exigences complète le modèle en V de l’ingénierie système, une approche qui accorde une importance égale à la vérification et à la validation. Un workflow de gestion des exigences pourrait suivre les étapes suivantes :
Ces étapes aident les équipes à gérer la complexité inhérente au développement de produits intelligents et connectés. Les solutions logicielles de gestion des exigences permettent également de rationaliser ce processus, en optimisant la vitesse de mise sur le marché, en multipliant les opportunités et en améliorant la qualité.
Traditionnellement, les ingénieurs système et les équipes de conception produit utilisaient des tableurs Excel, des e-mails, des wikis et d’autres outils pour gérer les exigences. Mais à l’ère de l’IdO, avec l’augmentation de la complexité des exigences, ces équipes ont besoin d’une meilleure visibilité sur les changements, d’une compréhension plus fine des données et d’outils partagés favorisant la collaboration mondiale.
Les outils numériques de gestion des exigences permettent de suivre les changements dans un emplacement centralisé, sécurisé et accessible, ce qui renforce la collaboration entre les membres de l’équipe. Une transparence accrue réduit le travail inutile, améliore l’agilité et garantit la conformité des exigences aux normes industrielles ou réglementaires.
L’intelligence artificielle (IA) renforce encore la gestion numérique des exigences. Cette technologie, qui permet aux machines de simuler l’apprentissage, la prise de décision et l’autonomie humains, contribue à gérer la complexité croissante des données et des exigences, améliorant ainsi la qualité et réduisant les délais.
Les avantages de l’IA et de la gestion numérique des exigences incluent :
Des solutions automatisées, basées sur le cloud, permettant aux membres d’une équipe de travailler ensemble en temps réel, en partageant les informations dans et entre les documents, peu importe leur localisation. Une gestion numérique complète des versions et des variantes grâce à des tableaux de bord partagés et des notifications par e-mail. Ainsi, les équipes disposent toujours des dernières informations les plus précises, au moment où elles en ont besoin.
Les outils traditionnels de gestion des exigences ne permettent pas d’annoter les spécifications sans en altérer la structure et le contexte d’origine. Dans les outils de traitement de texte, les utilisateurs doivent souvent copier les exigences dans des feuilles de calcul, puis synchroniser manuellement les changements entre les différentes versions. La gestion numérique des exigences permet de créer des modèles pour structurer les informations, favoriser la collaboration mondiale et disposer d’une source unique de vérité.
Ces outils peuvent automatiser la création et la maintenance des relations tout au long du cycle de développement, y compris les relations entre les exigences du projet, les éléments de travail, l’architecture, la conception et les plans de test. Par exemple, ils peuvent relier des artefacts individuels aux cas de test pour offrir une visibilité complète sur les changements dès qu’ils surviennent. Une meilleure traçabilité aide également les équipes à répondre plus efficacement aux demandes d’audit. Elle leur permet aussi de mieux comprendre les impacts des modifications et de réagir de manière plus appropriée en matière de gestion des changements.
Grâce aux solutions numériques de gestion des exigences, les équipes peuvent utiliser une même exigence à plusieurs endroits sans avoir à la redéfinir. Cette fonctionnalité permet aux entreprises de créer plus efficacement des versions, variantes et prototypes de produits et de systèmes. Une copie « maître » garantit que les modifications apportées à une version sont répercutées sur toutes les occurrences. Les équipes peuvent créer des référentiels de base pour identifier l’état d’une exigence en temps réel, réduisant ainsi le risque d’erreurs humaines.
Certains outils intègrent des capacités de traitement automatique du langage naturel (NLP) pour améliorer l’exhaustivité, la cohérence et la précision des exigences dès leur rédaction. Cette technologie vient compléter le travail humain afin d’éliminer les ambiguïtés et d’éviter les erreurs coûteuses. Le machine learning (ML) permet à l’outil d’apprendre les nuances et le contexte. Ainsi, plus les équipes l’utilisent, plus il devient performant.
Exploitez le pouvoir de l’IA et de l’automatisation pour résoudre de manière proactive les problèmes de la pile d’applications.
Une plateforme cloud résiliente, sécurisée et conforme, adaptée même aux secteurs les plus réglementés.
Accélérez vos résultats opérationnels et renforcez votre avantage concurrentiel grâce à des produits et des plateformes sur mesure.