Table of Contents

Contrairement à l'ingénierie des exigences traditionnelles, qui comprend généralement une documentation exhaustive et une planification initiale, l'ingénierie des exigences Agiles met l'accent sur la capacité d'adaptation et la rétroaction continue. Cette méthodologie est devenue de plus en plus critique à mesure que les organisations font face à des conditions commerciales en évolution rapide, à des préférences changeantes des intervenants et à des pressions de temps à temps sur le marché qui rendent les exigences traditionnelles inadéquates.

Le terme « génie des exigences agiles » sert à définir la « façon agile » de planifier, d'exécuter et de raisonner les activités d'ingénierie des exigences. Plutôt que de tenter de saisir toutes les exigences dès le départ dans une documentation exhaustive, l'ingénierie des exigences agiles englobe le changement comme une partie naturelle du processus de développement.

Les méthodes agiles sont devenues une activité dominante même dans les grandes entreprises d'ingénierie de systèmes qui doivent s'adapter à différents cycles de développement du matériel et des logiciels. Pour ces entreprises, l'ingénierie des exigences est une activité essentielle qui implique une analyse initiale et détaillée qui peut être en contradiction avec les méthodes agiles de développement.

Comprendre les principes fondamentaux de l'ingénierie des exigences agiles

L'ingénierie des exigences agiles repose sur la reconnaissance que les exigences ne sont pas des artefacts statiques à geler au début d'un projet, mais plutôt des documents vivants qui évoluent à mesure que la compréhension s'intensifie et que les circonstances changent. Dans le contexte de la méthodologie Agile, où la capacité d'adaptation et la réponse rapide au changement sont primordiales, l'ingénierie des exigences automatisées apparaît comme un atout crucial.

Contrairement aux méthodes traditionnelles de développement de logiciels, les méthodes agiles sont marquées par une collaboration étendue, c'est-à-dire par une communication en personne. Cette importance accordée à la communication directe permet de s'assurer que les exigences sont comprises dans le contexte et que les ambiguïtés peuvent être résolues rapidement par le dialogue plutôt que par de longs cycles d'examen de la documentation.

L'environnement commercial en évolution rapide dans lequel la plupart des organisations opèrent est difficile aux approches traditionnelles de l'ingénierie des exigences (RE). Les organisations de développement de logiciels doivent souvent répondre à des exigences qui tendent à évoluer rapidement et à devenir obsolètes même avant l'achèvement du projet.

Principes fondamentaux de l'ingénierie des exigences agiles

Les principes qui sous-tendent l'ingénierie des exigences agiles fournissent une base philosophique qui guide la façon dont les équipes adoptent les exigences. Ces principes représentent une différence importante par rapport aux approches traditionnelles de l'ingénierie des exigences et reflètent les valeurs énoncées dans le Manifeste Agile.

Collaboration avec les clients au sujet de la négociation de contrats

L'un des principes les plus fondamentaux de l'ingénierie des exigences agiles est l'accent mis sur la collaboration continue des clients. Plutôt que de tenter de définir toutes les exigences dès le départ par des contrats ou des spécifications officiels, les équipes agiles travaillent en étroite collaboration avec les clients et les intervenants tout au long du processus de développement.

Ce principe reconnaît que les clients ne savent souvent pas exactement ce qu'ils veulent jusqu'à ce qu'ils voient les logiciels de travail. En maintenant un dialogue continu et en démontrant régulièrement des incréments de travail, les équipes peuvent affiner leur compréhension des exigences en fonction de la rétroaction réelle plutôt que des hypothèses.

Répondre au changement en fonction d'un plan

L'ingénierie des exigences agiles englobe le changement comme un avantage concurrentiel plutôt que de le considérer comme un problème à contrôler. L'ingénierie des exigences agiles permet aux équipes de réagir rapidement aux changements des besoins des utilisateurs et des conditions du marché, en veillant à ce que le produit demeure pertinent et concurrentiel.

Le principe de la réponse au changement ne signifie pas que la planification est abandonnée ou que les exigences sont traitées avec négligence. Il signifie plutôt que les plans et les exigences sont traités comme des hypothèses de travail qui devraient être validées et affinées en fonction de la rétroaction et de l'évolution des circonstances.

Valeur ajoutée rapide et continue

Un autre principe fondamental consiste à établir des priorités en fonction de la valeur opérationnelle et à fournir les caractéristiques les plus importantes. Cette approche permet de garantir que même si un projet est mis fin tôt ou que la portée doit être réduite, la fonctionnalité la plus importante a déjà été fournie. En mettant l'accent sur la prestation progressive de caractéristiques précieuses, les équipes peuvent commencer à réaliser le rendement de l'investissement beaucoup plus tôt que les approches traditionnelles qui retardent la livraison jusqu'à ce que toutes les exigences soient mises en oeuvre.

Ce principe encourage également les équipes à réfléchir de façon critique aux exigences qui offrent réellement de la valeur par rapport à celles qui sont « bonnes à avoir » mais n'ont pas d'incidence significative sur les résultats opérationnels.

Validation et évolution des exigences

Six principes d'ER qui améliorent la gestion des exigences dans le développement agile à grande échelle comprennent l'architecture de systèmes (Contexte), la validation, l'évolution des exigences, la définition claire et l'amplificateur; les responsabilités de la DGR déléguée, la compréhension partagée des problèmes et des solutions et la documentation minimale viable.

Le principe de validation souligne que les exigences doivent être continuellement validées en fonction des besoins des intervenants et des objectifs opérationnels. Plutôt que de supposer que les exigences initiales sont correctes, les équipes agiles cherchent activement à obtenir des commentaires pour confirmer qu'elles construisent la bonne chose.

Compréhension partagée et documentation minimale viable

Bien que la documentation ait toujours sa place, l'accent est mis sur la compréhension commune de tous les participants au projet quant à ce qui doit être construit et à pourquoi. Cette compréhension partagée est souvent obtenue par des conversations, des séances de collaboration et le travail avec des artefacts tangibles comme des prototypes ou des logiciels de travail.

Le principe de la documentation minimale viable suggère que les équipes devraient créer juste assez de documentation pour soutenir leur travail sans créer de gaspillage. Contrairement à un document plus formel sur les exigences, l'arriéré est compris comme un ensemble dynamique d'informations. Cette approche reconnaît que la documentation excessive peut devenir obsolète rapidement et que l'effort consacré à la tenue de la documentation pourrait être mieux investi dans la construction de logiciels de travail et la conversation.

Pratiques clés en génie des exigences agiles

Bien que les principes fournissent des conseils philosophiques, les pratiques offrent des techniques concrètes que les équipes peuvent utiliser pour mettre en oeuvre l'ingénierie des exigences agiles. L'examen a permis de relever 17 pratiques d'ingénierie des exigences agiles, cinq défis qui ont été tracés vers l'ingénierie des exigences traditionnelles et qui ont été surmontés par l'ingénierie des exigences agiles, et huit défis posés par la pratique de l'ingénierie des exigences agiles.

Histoires de l'utilisateur comme exigences Artefacts

Les histoires d'utilisateurs sont devenues le format prédominant pour exprimer les exigences dans le développement agile. Identifier et engager avec tous les intervenants pertinents au début du projet pour comprendre leurs besoins et attentes.Créer des histoires d'utilisateurs : Traduire les exigences d'intervenants en histoires d'utilisateurs, en faisant l'élément central du processus d'ingénierie des exigences.

Les histoires des utilisateurs sont intentionnellement brèves et servent de porte-parole pour les conversations plutôt que de spécifications complètes. Elles sont généralement écrites sur des cartes index ou saisies dans des outils numériques, et elles comprennent des critères d'acceptation qui définissent ce que signifie «fait» pour cette histoire particulière.

La puissance des histoires d'utilisateurs ne réside pas dans l'artefact écrit lui-même, mais dans les conversations qu'elles facilitent. Lorsqu'une équipe de développement prend connaissance d'une histoire d'utilisateur, elle en discute avec le propriétaire du produit et les intervenants pour comprendre le contexte, clarifier les ambiguïtés et explorer les options de mise en oeuvre.

Gestion du carnet de produits

L'arriéré de produits sert également de base à la planification de l'itération. Tous les éléments de travail doivent être inclus dans l'arriéré : histoires d'utilisateurs, bugs, changements de conception, dettes techniques, demandes des clients, actions de la rétrospective, etc. L'arriéré de produits sert de source unique de vérité pour tous les travaux qui pourraient être effectués sur un produit, fournissant une transparence et permettant des décisions éclairées de prioriser.

Dans l'ensemble, un arriéré de produits bien géré est essentiel au développement de produits agiles. Il garantit que les équipes travaillent sur les tâches les plus précieuses et que tout le monde est aligné et qu'il travaille sur les mêmes objectifs. Une gestion efficace de l'arriéré exige une attention constante et ne peut être traitée comme une activité ponctuelle.

La création d'un arriéré de produits efficace comporte plusieurs étapes clés. La création d'un arriéré de produits est une étape cruciale dans le développement agile de produits. Elle consiste à établir une feuille de route pour les produits, à dresser une liste des articles en retard de produits et à communiquer avec l'équipe.

Backlog Grooming et raffinement

Le toilettage en backlog, aussi connu sous le nom de perfectionnement de l'arriéré, représente l'une des pratiques les plus importantes en ingénierie des exigences agiles. Le perfectionnement en backlog (ou arriéré de toilettage) garantit que l'arriéré contient des éléments appropriés et prioritaires, et que les éléments en haut de l'arriéré sont prêts à être livrés. Le perfectionnement en backlog (anciennement appelé arriéré de toilettage) est le moment où le propriétaire du produit et certains, ou la totalité, du reste de l'équipe examinent les éléments en retard afin de s'assurer que l'arriéré contient les éléments appropriés, qu'ils sont prioritaires et que les éléments en haut de l'arriéré sont prêts à être livrés.

Les principaux objectifs de la préparation du sprint sont de revoir les histoires d'utilisateurs en souffrance dans l'arriéré, de vérifier qu'elles sont correctement classées par ordre de priorité et de s'assurer qu'elles sont prêtes à être préparées au sprint. À la fin de la session, vous devriez avoir une liste organisée et hiérarchisée des histoires d'utilisateurs.

Parmi les activités qui se déroulent durant ce perfectionnement de l'arriéré, mentionnons : la suppression des histoires d'utilisateurs qui ne semblent plus pertinentes; la création de nouvelles histoires d'utilisateurs en réponse aux besoins nouvellement découverts; la division des histoires d'utilisateurs qui sont hautement prioritaires mais trop grossières pour pouvoir être intégrées à une itération à venir; Ces activités aident à maintenir un arriéré sain qui reflète fidèlement les priorités actuelles et qui est dimensionné de façon appropriée pour la planification du sprint.

De nombreux praticiens agiles affirment qu'un arriéré de produits du DEEP est le résultat clé d'une séance de perfectionnement de l'arriéré.L'acronyme DEEP met en évidence certains traits critiques associés à l'arriéré de produits : Détaillé de façon appropriée : Les histoires et autres éléments de l'arriéré devraient contenir suffisamment d'information contextuelle pour être compris et discutés par l'équipe interfonctionnelle.

La fréquence et la durée des séances de toilettage en attente varient selon la taille de l'équipe, la longueur du sprint et la complexité du projet. Une bonne règle semble être qu'environ 10 % des efforts de chaque sprint devraient être consacrés à raffiner le retard en vue de préparer les futurs sprints.

Planification et estimation itératives

Au niveau de la publication, les équipes créent des plans de haut niveau qui décrivent les principales caractéristiques et les étapes importantes. Au niveau du sprint, les équipes sélectionnent les histoires d'utilisateurs spécifiques dans l'arriéré et s'engagent à les livrer dans les délais prévus. Cette approche de planification à plusieurs niveaux offre à la fois une orientation stratégique et une souplesse tactique.

Travailler avec les intervenants pour établir la priorité des histoires d'utilisateurs dans l'arriéré de produits en fonction de la valeur, du risque et des dépendances. Planification et développement itératifs : Planifier des sprints autour des histoires d'utilisateurs prioritaires et ajuster les plans en fonction de la rétroaction et des changements des exigences.

Les techniques comme la planification du poker aident les équipes à estimer en collaboration l'effort nécessaire pour les histoires d'utilisateurs, en favorisant la compréhension partagée et en faisant face à différentes perspectives. Ces estimations aident à établir les priorités et la planification des capacités tout en reconnaissant l'incertitude inhérente au développement logiciel.

Engagement continu des parties prenantes

En faisant participer les intervenants tout au long du projet, cette approche permet de faire en sorte que leurs attentes soient bien comprises et satisfaites. La participation continue des intervenants constitue un écart important par rapport aux approches traditionnelles où les intervenants sont principalement impliqués au début et à la fin des projets.

Cette engagement continu aide à prévenir le problème commun de la construction de logiciels qui satisfait techniquement la spécification originale mais ne résout pas réellement le problème d'affaires. En démontrant régulièrement le logiciel de travail et en recueillant des commentaires, les équipes peuvent s'orienter rapidement lorsqu'elles découvrent que leur compréhension des exigences était incomplète ou incorrecte.

Les propriétaires de produits jouent un rôle crucial dans la gestion des relations avec les intervenants et s'assurent que les diverses perspectives sont prises en compte dans les décisions relatives aux exigences. Les examens réguliers de sprint constituent un mécanisme officiel de rétroaction des intervenants, tandis que les conversations informelles aident à maintenir l'harmonisation entre les examens.

Définition des critères de réalisation et d'acceptation

Les critères d'acceptation précis et une « définition du fait » bien définie sont des pratiques essentielles dans l'ingénierie des exigences agiles. Les critères d'acceptation précisent les conditions à remplir pour qu'un récit d'utilisateur soit considéré comme complet, fournissant des mesures objectives qui aident à prévenir les malentendus au sujet des exigences.

La définition de « résultats » représente une entente plus large sur les normes de qualité qui s'appliquent à tous les travaux, y compris les exigences relatives à l'examen des codes, aux essais, à la documentation et à la préparation au déploiement.

Ces pratiques aident à combler le fossé entre les exigences et la mise en oeuvre, en veillant à ce que chacun partage une compréhension commune de ce qui doit être construit et des normes de qualité à respecter. Elles fournissent également une base pour le développement axé sur les tests et les approches de développement axées sur le comportement qui intègrent davantage les exigences et les activités de test.

Revues et rétrospectives de sprint

Examens et rétrospectives réguliers : Effectuer des examens sprint avec les intervenants et des rétrospectives avec l'équipe de développement pour évaluer les progrès et adapter les processus en conséquence. Les examens sprint offrent des occasions de démontrer aux intervenants des logiciels de travail et de recueillir des commentaires sur la question de savoir si la mise en oeuvre répond à leurs besoins.

Les équipes réfléchissent à ce qui a bien fonctionné et à ce qui pourrait être amélioré dans leur approche pour obtenir, documenter et mettre en oeuvre des exigences. Cette démarche d'amélioration continue aide les équipes à perfectionner leurs pratiques d'ingénierie des exigences au fil du temps.

Ensemble, les examens sprint et les rétrospectives créent un puissant mécanisme de rétroaction qui fonctionne à la fois au niveau du produit (est-ce que nous construisons la bonne chose?) et au niveau du processus (est-ce que nous construisons la bonne façon?). Ce double accent sur l'amélioration du produit et du processus distingue l'ingénierie des exigences agiles des approches qui se concentrent uniquement sur l'obtention des exigences « juste » au départ.

Défis en génie des exigences agiles

Bien que l'ingénierie des exigences agiles offre de nombreux avantages, elle présente également des défis uniques que les équipes doivent surmonter. Comprendre ces défis aide les équipes à se préparer à les relever et à élaborer des stratégies pour les relever efficacement.

Gestion des exigences non fonctionnelles

L'un des défis persistants dans l'ingénierie des exigences agiles consiste à gérer des exigences non fonctionnelles telles que la performance, la sécurité, l'évolutivité et la maintenance. Certains des problèmes classés en tête peuvent être discutés en fonction de l'état actuel résultant des modèles de processus agiles utilisés, comme des exigences non fonctionnelles non mesurables ou non mesurables ou des exigences sous-définies.

Les équipes s'attaquent à ce défi par diverses approches, notamment en intégrant des exigences non fonctionnelles dans la définition du produit, en créant des histoires d'utilisateurs spécifiques axées sur les attributs de qualité ou en tenant à jour une liste distincte des exigences architecturales et de qualité qui doivent être prises en compte pour tous les travaux.

Ingénierie de l'échelle des exigences agiles

Dans le développement de systèmes agiles à grande échelle, l'absence d'un processus unifié d'ingénierie des besoins (RE) est un défi majeur, exacerbé par l'absence de principes directeurs de haut niveau pour une gestion efficace des besoins.

Les défis ne sont pas suffisamment couverts par des cadres à échelles variables ou des RE traditionnels. Cette lacune signifie que les organisations doivent souvent élaborer leurs propres approches en matière d'ingénierie des exigences d'échelle, en s'appuyant à la fois sur des principes agiles et sur des pratiques traditionnelles appropriées à leur contexte.

Équilibrer la documentation et la conversation

Bien que la valeur agile des logiciels de travail soit supérieure à la valeur documentaire complète, certaines documents sont nécessaires pour le transfert des connaissances, la conformité et la maintenance à long terme. Les équipes doivent déterminer quelle documentation fournit une valeur réelle par rapport à ce qui représente le gaspillage.

Ce défi est particulièrement aigu dans les industries réglementées ou lorsqu'elles travaillent avec des équipes distribuées où la communication en personne est limitée. Les équipes doivent adapter les pratiques d'ingénierie des exigences agiles à leur contexte particulier, créant potentiellement plus de documentation qu'une équipe co-implantée pourrait avoir besoin tout en maintenant des principes agiles d'adaptabilité et de rétroaction continue.

Gestion des besoins Volatilité

Bien que l'ingénierie des exigences agiles englobe le changement, la volatilité excessive des exigences peut être perturbatrice et coûteuse. Les équipes doivent faire la distinction entre des adaptations précieuses basées sur l'apprentissage et des manœuvres inutiles causées par une mauvaise planification ou une vision peu claire.

La gestion de la volatilité des besoins exige également des pratiques efficaces de gestion du changement. Les équipes ont besoin de mécanismes pour évaluer les changements proposés, en comprendre l'impact et prendre des décisions éclairées quant à leur incorporation, notamment en tenant compte du coût du changement, de la valeur qu'il fournit et de l'incidence sur les engagements et les plans existants.

Assurer la qualité des exigences

Les équipes doivent élaborer des pratiques pour assurer la qualité des exigences sans revenir à des approches de documentation lourde, notamment des listes de contrôle pour la qualité des histoires d'utilisateurs, l'examen par les pairs des exigences ou des séances de perfectionnement collaboratif qui font surface et résolvent les ambiguïtés.

La qualité des exigences dans des contextes agiles va au-delà de l'artefact écrit pour inclure la qualité de la compréhension partagée entre les membres de l'équipe. Les équipes doivent travailler activement pour s'assurer que tous les participants à la mise en oeuvre d'une exigence ont une compréhension commune de ce qui doit être construit et pourquoi.

Ingénierie des exigences agiles dans différents contextes

L'ingénierie des exigences agiles doit être adaptée à différents contextes organisationnels, types de projets et domaines industriels. Il est essentiel de comprendre comment adapter les pratiques à des situations spécifiques pour réussir la mise en oeuvre.

Industries réglementées et exigences de conformité

Les organisations des secteurs réglementés comme les soins de santé, les finances ou l'aérospatiale doivent relever des défis particuliers lorsqu'elles adoptent des exigences agiles en matière d'ingénierie. Ces industries ont souvent des exigences strictes en matière de documentation, des processus d'approbation officiels et des besoins en matière de traçabilité qui semblent en contradiction avec les principes agiles.

Les équipes des industries réglementées conservent souvent plus de documents officiels que les équipes agiles typiques, mais elles créent cette documentation de façon progressive, car les travaux sont terminés plutôt que tous les premiers. Elles peuvent aussi mettre en oeuvre des processus d'examen et d'approbation plus rigoureux pour les changements d'exigences tout en maintenant la souplesse nécessaire pour s'adapter en fonction de la rétroaction.

Équipes distribuées et à distance

Les équipes réparties doivent faire face à des défis particuliers dans la mise en oeuvre de l'ingénierie des exigences agiles, car de nombreuses pratiques mettent l'accent sur la communication et la collaboration en personne. Cependant, des outils de collaboration modernes et des pratiques adaptées peuvent aider les équipes réparties à atteindre des résultats similaires.

Les équipes distribuées doivent souvent être plus explicites dans leur documentation et leur communication, car elles ne peuvent pas compter sur des conversations informelles dans le couloir pour résoudre des ambiguïtés. Elles doivent aussi être plus disciplinées dans l'organisation de séances de collaboration dans les fuseaux horaires et s'assurer que tous les membres de l'équipe ont la possibilité de contribuer aux discussions sur les exigences.

Intégration avec le développement de matériel

Les organisations qui développent des produits combinant matériel et logiciel sont confrontées à des défis d'ingénierie uniques. Le développement matériel nécessite généralement une planification plus précoce et a des délais de réalisation plus longs que le développement logiciel, ce qui rend difficile de maintenir la flexibilité que les approches agiles mettent l'accent.

Les équipes peuvent également utiliser des techniques comme la simulation ou l'émulation du matériel pour permettre le développement de logiciels en parallèle avec le développement du matériel, la réduction des dépendances et des approches itératives.

Outils et technologies pour l'ingénierie des exigences agiles

Bien que l'ingénierie des exigences agiles mette l'accent sur les personnes et les interactions au détriment des outils, les outils appropriés peuvent améliorer considérablement l'efficacité de l'équipe.

Outils de gestion de backlog

Les outils numériques de gestion des arriérés comme Jira, Azure DevOps ou Trello fournissent des dépôts centralisés pour les histoires d'utilisateurs et d'autres objets requis. Ces outils permettent aux équipes d'organiser les arriérés, de suivre les progrès et de maintenir la visibilité entre les équipes distribuées.

L'utilisation efficace des outils de gestion de l'arriéré nécessite une discipline pour maintenir l'information à jour et éviter les frais généraux liés à l'outil. Les équipes devraient configurer des outils pour soutenir leurs processus plutôt que d'adapter leurs processus aux contraintes liées aux outils.

Plates-formes de collaboration et de communication

Des plateformes de collaboration comme Slack, Microsoft Teams ou Confluence facilitent les conversations qui sont centrales pour l'ingénierie des exigences agiles. Ces outils permettent une communication asynchrone, le partage de documents et la gestion des connaissances qui complètent la collaboration synchrone dans les réunions et les ateliers.

L'intégration des plateformes de collaboration et des outils de gestion des retards contribue au maintien du contexte et de la traçabilité. Par exemple, lier les conversations de Slack à des histoires d'utilisateurs spécifiques contribue à préserver le raisonnement derrière les décisions relatives aux exigences et facilite la compréhension du contexte par les membres de l'équipe lors de la mise en oeuvre des fonctionnalités.

Technologies émergentes: l'IA et l'apprentissage automatique

Plus récemment, des approches d'apprentissage automatique et d'apprentissage profond ont été utilisées pour l'ingénierie des exigences, y compris l'utilisation de modèles de grande langue (LLM) Ces nouvelles technologies offrent un potentiel d'automatisation des aspects de l'ingénierie des exigences tels que la classification des exigences, l'analyse de la qualité, et même la production de cas d'essai à partir des exigences.

Bien que ces technologies soient encore en voie de maturation, elles représentent des orientations prometteuses pour améliorer l'ingénierie des exigences agiles. Les outils à moteur d'IA pourraient aider à identifier les incohérences dans les exigences, suggérer des exigences semblables existantes pour promouvoir la réutilisation ou générer automatiquement des critères d'acceptation basés sur des descriptions d'histoires d'utilisateurs.

Études de cas et applications du monde réel

L'examen des applications réelles de l'ingénierie des exigences agiles fournit des renseignements précieux sur la façon dont les principes et les pratiques se traduisent dans les contextes organisationnels réels.

Ingénierie des systèmes à grande échelle : le cas Grundfos

Pour relever ce défi, nous avons réalisé une étude de cas longitudinale de cinq ans avec Grundfos AB, en collaboration avec le Software Centre en Suède. Cette étude approfondie a examiné comment une grande société d'ingénierie de systèmes a mis en œuvre des principes d'ingénierie des exigences agiles dans plusieurs équipes et produits.

Ce rapport d'étude longitudinale de l'industrie identifie six principes d'ER qui améliorent la gestion des besoins dans le développement agile à grande échelle à Grundfos AB, en se fondant sur des idées triangulées tirées d'entrevues, d'ateliers et de documents. Les principes identifiés par cette recherche – y compris le contexte de l'architecture des systèmes, la validation, l'évolution des besoins, des responsabilités clairement définies, une compréhension partagée et une documentation minimale viable – fournissent un cadre que d'autres organisations peuvent adapter à leur propre contexte.

L'affaire Grundfos démontre que l'ingénierie des exigences agiles peut être étendue avec succès à des contextes complexes et de grande envergure. Cependant, elle souligne également la nécessité de principes clairs et de structures de gouvernance pour coordonner le travail des exigences entre plusieurs équipes et assurer la cohérence architecturale.

Étude sur les organisations multiples : pratiques et avantages de RE agile

Une analyse des données de 16 organismes de développement de logiciels révèle sept pratiques de RE agiles, ainsi que leurs avantages et défis.Cette étude multi-organisations offre une perspective plus large sur la façon dont les différentes entreprises mettent en oeuvre l'ingénierie agile des exigences et quels résultats elles obtiennent.

L'étude a révélé que les organisations qui appliquent des pratiques d'ingénierie des exigences agiles ont signalé des améliorations dans leur capacité de répondre à des exigences changeantes, une meilleure alignement entre les équipes de développement et les intervenants commerciaux et une prestation plus rapide de caractéristiques précieuses.

Cette recherche démontre que, même si les détails de mise en oeuvre varient d'une organisation à l'autre, certaines pratiques de base offrent toujours de la valeur.

Entreprise de produits logiciels: Engagement continu des parties prenantes

Une entreprise de produits logiciels a réussi à transformer son approche d'ingénierie des exigences en mettant en œuvre des pratiques d'engagement continu des intervenants. Auparavant, l'entreprise avait du mal à construire des caractéristiques qui ne répondaient pas aux besoins des clients, ce qui a entraîné des efforts gaspillés et une insatisfaction des clients.

La transformation a consisté à former les propriétaires de produits pour faciliter des conversations efficaces avec les intervenants, à établir des cadences régulières pour les séances de rétroaction des clients et à créer des mécanismes pour intégrer rapidement la rétroaction dans l'arriéré de produits.

Les résultats ont été une réduction de 40 % du temps entre le concept et la livraison pour les nouvelles caractéristiques, une diminution importante du travail de retravail causé par des exigences mal comprises et une amélioration des scores de satisfaction des clients.

Enterprise IT: ingénierie de l'augmentation des besoins agiles

Une grande entreprise de TI a dû faire face à des difficultés pour mettre à niveau l'ingénierie des exigences agiles dans des dizaines d'équipes travaillant sur des systèmes interconnectés. Les premières tentatives de mettre en œuvre des pratiques agiles ont entraîné des problèmes de coordination, des incohérences architecturales et des difficultés pour gérer les dépendances entre les équipes.

La solution consistait à mettre en place une structure d'arriérés à plusieurs niveaux comportant des épopées au niveau de l'entreprise qui se décomposaient en histoires d'utilisateurs au niveau de l'équipe. L'organisation a établi des communautés de pratique pour l'ingénierie des besoins, créé des lignes directrices communes pour la qualité des histoires d'utilisateurs et mis en place des séances de synchronisation régulières entre les équipes pour gérer les dépendances.

Au fil du temps, l'organisation a amélioré la coordination entre les équipes tout en conservant les avantages des approches agiles. Les équipes ont signalé une meilleure clarté des exigences, une meilleure compréhension de l'intégration de leur travail dans le contexte plus général de l'entreprise et une collaboration plus efficace avec les intervenants commerciaux.

Meilleures pratiques pour la mise en œuvre des exigences agiles

La mise en oeuvre réussie de l'ingénierie des exigences agiles exige une attention particulière aux pratiques techniques et à la gestion du changement organisationnel.

Commencez par la formation et l'éducation

Les propriétaires de produits doivent apprendre à écrire des histoires d'utilisateurs efficaces, faciliter les séances de toilettage en retard et engager les intervenants de façon productive. Les développeurs doivent comprendre comment travailler avec des exigences légères et quand chercher à obtenir des éclaircissements. Les intervenants doivent comprendre leur rôle dans la fourniture de rétroaction continue plutôt que simplement approuver les spécifications initiales.

Les organisations devraient investir dans une formation complète qui couvre les principes et les pratiques de l'ingénierie des exigences agiles. Cette formation devrait être adaptée à différents rôles et devrait inclure la pratique pratique pratique avec des techniques comme la rédaction d'histoires d'utilisateurs, l'établissement des priorités en souffrance et la définition de critères d'acceptation.

Établir des rôles et des responsabilités clairs

De même, les responsabilités peu claires sont rarement rencontrées comme un problème. Les rôles clairs dans les processus agiles semblent fournir une bonne compréhension ici. La définition claire des rôles aide à éviter la confusion au sujet de la personne responsable des diverses activités d'ingénierie des exigences.

Les organisations devraient clairement définir les attentes des propriétaires de produits, des maîtres de brouillons, des membres de l'équipe de développement et des intervenants, notamment clarifier les pouvoirs décisionnels, les responsabilités en matière de communication et la responsabilité en ce qui concerne la qualité des exigences.

Mettre en oeuvre des pratiques efficaces de grooming en backlog

Un arriéré bien entretenu présente de nombreux avantages pour les équipes Agiles qui cherchent à améliorer leurs processus. Parmi les nombreux avantages de l'arriéré de toilettage, mentionnons : Améliorer la planification du sprint : Un arriéré organisé et prioritaire fait que la planification du prochain sprint est un moment fort.

Pour que le processus de préparation des dossiers soit efficace, il faut une participation appropriée, des objectifs clairs et une exécution rigoureuse. Au minimum, les personnes suivantes doivent participer aux séances de préparation des dossiers : Animateur : Il devrait s'agir d'une personne qui facilite la séance. Il pourrait s'agir d'un propriétaire de produit, d'un gestionnaire de produit, d'un chef de projet, d'un entraîneur ou d'un consultant agile.

Les équipes devraient établir des cadences régulières pour le toilettage des arriérés, en consacrant habituellement environ 10 % de chaque sprint à des activités de perfectionnement. Les séances devraient avoir des ordres du jour et des résultats clairs, et les équipes devraient suivre des mesures comme le pourcentage des points en retard qui sont « prêts » pour la planification du sprint afin de s'assurer que les efforts de toilettage sont efficaces.

La valeur et les résultats

L'ingénierie des exigences agiles devrait continuer à se concentrer sans relâche sur la valeur opérationnelle plutôt que de simplement remplir les exigences. Les sprints de votre équipe se concentreront davantage sur les tâches nécessaires lorsque vous examinerez continuellement votre arriéré et prioriserez des éléments importants.

Les équipes devraient revoir régulièrement leur compréhension de ce qui constitue une valeur et s'assurer que les décisions de priorisation reflètent les priorités opérationnelles actuelles, ce qui pourrait comprendre l'utilisation de techniques comme l'analyse des coûts des retards, la cartographie des flux de valeur ou la cartographie des impacts pour rendre la priorisation plus objective et alignée sur les objectifs stratégiques.

Embrassez-vous pour l'amélioration continue

Les équipes devraient régulièrement réfléchir à leurs processus d'ingénierie des exigences, identifier les points de douleur et expérimenter des améliorations. Les rétrospectives constituent un forum naturel pour cette réflexion, mais les équipes pourraient aussi mener des examens spécifiques axés sur l'efficacité de l'ingénierie des exigences.

Les mesures peuvent aider les équipes à comprendre si leurs pratiques d'ingénierie des exigences s'améliorent.Les mesures utiles peuvent inclure le pourcentage d'engagements de sprint réalisés avec succès, la quantité de retravail causée par les défauts des exigences, la satisfaction des intervenants à l'égard des caractéristiques fournies ou le temps nécessaire à la planification du sprint.

Adapter les pratiques au contexte

Les équipes doivent adapter leurs pratiques à leur contexte particulier, en tenant compte de facteurs comme la taille de l'équipe, la distribution, la complexité du domaine, les exigences réglementaires et la culture organisationnelle. Ce qui fonctionne bien pour une petite équipe co-implantée, une application Web peut ne pas fonctionner pour une grande équipe distribuée, les systèmes intégrés critiques pour la sécurité.

Pour réussir l'adaptation, il faut comprendre les principes qui sous-tendent les pratiques d'ingénierie des exigences agiles et prendre des décisions réfléchies sur la façon d'appliquer ces principes dans des contextes précis.

L'avenir de l'ingénierie des exigences agiles

L'ingénierie des exigences agiles continue d'évoluer à mesure que de nouvelles technologies émergent, que les contextes organisationnels changent et que les praticiens acquièrent plus d'expérience avec différentes approches.

Automatisation accrue et soutien AI

L'ingénierie automatisée des exigences accélère non seulement la phase initiale de la collecte des exigences, mais assure également un alignement continu avec l'évolution de la dynamique du projet. À mesure que les technologies de l'intelligence artificielle et de l'apprentissage automatique mûrissent, elles vont de plus en plus soutenir les activités d'ingénierie des exigences.

Cependant, l'automatisation complétera plutôt que remplacera le jugement humain dans l'ingénierie des exigences. Les aspects créatifs, contextuels et fondés sur la valeur des exigences continueront de nécessiter des connaissances humaines et la prise de décisions. Les approches les plus efficaces combineront probablement les outils à moteur d'IA avec l'expertise humaine pour obtenir de meilleurs résultats que les deux seuls.

Une meilleure intégration avec DevOps et une livraison continue

Les exigences sont de plus en plus exprimées en formes exécutables comme des scénarios de développement axés sur le comportement qui peuvent être testés automatiquement. Cette intégration permet des boucles de rétroaction plus rapides et permet de s'assurer que les exigences restent alignées sur le comportement réel du système.

La tendance à la prestation continue met également l'accent sur l'importance des drapeaux de caractéristiques, des essais A/B et d'autres techniques qui permettent de valider les exigences dans les environnements de production. Ce passage des exigences comme spécifications aux exigences comme hypothèses à tester représente une évolution importante dans la façon dont les organisations pensent à l'ingénierie des exigences.

Renforcement du soutien aux équipes réparties

La prévalence croissante du travail à distance et distribué est à l'origine de l'innovation dans les outils et les pratiques pour l'ingénierie des exigences collaboratives. La réalité virtuelle et les technologies de réalité augmentées peuvent éventuellement permettre des expériences de collaboration à distance plus immersive.

Ces améliorations technologiques sont complétées par des pratiques en évolution qui aident les équipes réparties à maintenir l'esprit de collaboration de l'ingénierie des exigences agiles malgré la séparation physique.Les organisations apprennent à structurer le travail, à organiser les réunions et à utiliser des outils qui permettent une collaboration efficace répartie.

Priorité à la durabilité et à l'éthique

Les processus d'ingénierie des exigences commencent à prendre explicitement en considération les incidences environnementales, la responsabilité sociale et les implications éthiques des systèmes logiciels, ce qui pourrait comprendre l'intégration de critères de durabilité dans les décisions de priorisation, la réalisation d'examens éthiques des exigences ou l'utilisation de techniques comme la conception sensible à la valeur pour s'assurer que les valeurs des intervenants sont prises en compte.

Ces considérations reflètent la reconnaissance croissante que les systèmes logiciels ont des répercussions sociales générales et que l'ingénierie des exigences joue un rôle crucial dans la façon dont ces incidences se font sentir.

Mesurer le succès en génie des exigences agiles

Pour comprendre si les pratiques d'ingénierie relatives aux exigences agiles sont efficaces, il faut des mesures et des méthodes de mesure appropriées.

Mesures fondées sur les résultats

Les mesures les plus importantes de l'efficacité de l'ingénierie des besoins sont-elles axées sur les résultats plutôt que sur les extrants? Les équipes qui fournissent des éléments que les clients utilisent réellement et qui sont utiles? Les objectifs opérationnels sont-ils atteints? Le temps de mise en marché s'améliore-t-il? Ces mesures axées sur les résultats aident à s'assurer que les efforts d'ingénierie des besoins contribuent à la valeur opérationnelle réelle plutôt qu'à la production d'artefacts.

Les mesures des résultats utiles peuvent inclure les notes de satisfaction de la clientèle, les taux d'adoption des caractéristiques, la valeur opérationnelle fournie par sprint ou le rendement des investissements pour les efforts de développement.

Mesure de l'efficacité du processus

Les mesures de l'efficacité des processus peuvent aider à identifier les possibilités d'amélioration. Combien de temps faut-il pour planifier le sprint? Quel pourcentage des engagements de sprint sont réalisés avec succès? Combien de retravail est causé par les défauts des exigences? Ces mesures aident les équipes à comprendre si leurs processus d'ingénierie des exigences sont efficaces et efficients.

Les mesures du processus devraient servir à orienter les conversations sur l'amélioration plutôt que de juger du rendement de l'équipe. L'objectif est de cerner les goulets d'étranglement, les inefficacités ou les problèmes de qualité qui peuvent être réglés par des améliorations du processus.

Indicateurs de qualité

La qualité des exigences peut être évaluée au moyen de divers indicateurs. Les histoires des utilisateurs sont-elles bien formées et assorties de critères d'acceptation clairs? L'arriéré est-il adéquatement détaillé et priorisé? Les membres de l'équipe ont-ils une compréhension commune des exigences? Ces indicateurs de qualité permettent de s'assurer que les pratiques d'ingénierie des exigences produisent la clarté et la compréhension partagée nécessaires pour un développement efficace.

Les évaluations de la qualité pourraient être effectuées par des pairs, des discussions rétrospectives ou des vérifications de la qualité structurées. La clé est de cerner les problèmes de qualité dès le début afin qu'ils puissent être réglés avant qu'ils n'aient une incidence sur le travail de développement.

Pièges courants et comment les éviter

Les organisations qui mettent en oeuvre des techniques d'ingénierie agiles rencontrent souvent des pièges communs qui peuvent compromettre leurs efforts. Comprendre ces pièges et comment les éviter peut aider les équipes à naviguer plus efficacement dans la transformation.

Capacité insuffisante du propriétaire du produit

L'un des écueils les plus courants est le fait que les propriétaires de produits manquent de temps ou de capacité pour s'acquitter efficacement de leurs responsabilités en matière d'ingénierie. Les propriétaires de produits ont besoin de temps pour s'engager avec les intervenants, régler l'arriéré, répondre aux questions de l'équipe et participer aux cérémonies de sprint.

Les organisations devraient s'assurer que les propriétaires de produits disposent des capacités et du soutien appropriés, ce qui pourrait consister à limiter le nombre d'équipes qui soutiennent un seul propriétaire de produit, à fournir un soutien aux analystes d'affaires pour l'élaboration des exigences ou à investir dans la formation et le coaching des propriétaires de produits.

Négliger les exigences non fonctionnelles

Les équipes se concentrent parfois tellement sur les histoires d'utilisateurs fonctionnels qu'elles négligent les exigences non fonctionnelles en matière de performance, de sécurité, d'évolutivité et d'autres attributs de qualité. Cette négligence peut entraîner des dettes techniques, des problèmes de qualité et des travaux coûteux.

Les stratégies pour remédier à cet écueil comprennent l'intégration d'exigences non fonctionnelles dans la définition du fait, la création d'histoires d'utilisateurs spécifiques axées sur les attributs de qualité, la réalisation d'examens périodiques de l'architecture ou la tenue d'une liste distincte d'exigences architecturales et de qualité qui doivent être prises en compte pour tous les travaux.

Inadéquation de l'engagement des parties prenantes

L'ingénierie des exigences agiles dépend de la participation continue des intervenants, mais les organisations ont parfois du mal à obtenir une participation adéquate des intervenants.Les intervenants peuvent être trop occupés, ne pas comprendre leur rôle ou être réticents à consacrer du temps à la collaboration continue.

Pour faire face à cet écueil, il faut communiquer clairement sur les rôles et les responsabilités des intervenants, démontrer la valeur de la participation des intervenants grâce à des résultats fructueux et rendre la participation aussi pratique que possible.

Processus de sur-ingénierie

Certaines organisations répondent aux défis d'ingénierie des exigences agiles en ajoutant plus de processus, plus de documentation ou plus de gouvernance. Bien qu'une certaine structure soit nécessaire, les processus d'exigences suringénierie peuvent saper les principes agiles et réduire l'efficacité de l'équipe. L'objectif devrait être de trouver le processus viable minimum qui fournit la structure nécessaire sans créer de gaspillage.

Les équipes devraient régulièrement revoir leurs processus d'ingénierie des exigences et éliminer les activités qui n'apportent aucune valeur ajoutée, ce qui pourrait consister à simplifier les modèles, à réduire les étapes d'approbation ou à éliminer les rapports que personne n'utilise.

Intégration de l'ingénierie des exigences agiles avec d'autres pratiques

L'ingénierie des exigences agiles n'existe pas isolément, mais doit être intégrée à d'autres pratiques d'ingénierie logicielle pour être pleinement efficace.

Intégration avec Architecture et Design

Les approches agiles mettent l'accent sur l'architecture émergente qui évolue selon les exigences, mais une réflexion architecturale initiale est nécessaire pour éviter des retravails coûteux. Les équipes ont besoin de pratiques pour s'assurer que les considérations architecturales éclairent les décisions relatives aux exigences et que les exigences conduisent à une évolution architecturale appropriée.

L'intégration efficace pourrait comprendre des examens architecturaux pendant le toilettage en retard, une prise en compte explicite des implications architecturales lors de l'estimation des histoires d'utilisateurs ou le maintien d'une piste architecturale qui permet de mettre en oeuvre efficacement les exigences futures.

Intégration avec les tests

L'ingénierie des exigences agiles s'intègre étroitement aux tests par des pratiques telles que le développement axé sur les tests d'acceptation et le développement axé sur le comportement.Ces approches expriment les exigences dans des formes exécutables qui peuvent être testées automatiquement, créant des boucles de rétroaction serrées entre les exigences et la mise en œuvre.

Cette intégration permet de vérifier les exigences et de vérifier si les activités d'essai répondent réellement aux exigences. Elle encourage également les équipes à réfléchir à la vérification au début du processus d'exigences, ce qui permet d'obtenir des exigences plus claires et plus précises.

Intégration avec DevOps et déploiement

La mise en oeuvre moderne des logiciels intègre de plus en plus l'ingénierie des exigences avec le déploiement et les opérations par des pratiques telles que les drapeaux de caractéristiques, les essais A/B et les déploiements progressifs. Ces pratiques permettent de valider les exigences dans les environnements de production avec les utilisateurs réels, en fournissant des commentaires qui éclairent les décisions relatives aux exigences futures.

Cette intégration exige de réfléchir aux exigences en termes d'hypothèses à tester plutôt qu'à des spécifications à mettre en oeuvre.Les équipes formulent les exigences comme des hypothèses sur ce qui fournira de la valeur, les mettent en œuvre de manière à permettre la mesure et utilisent les données de production pour valider ou affiner ces hypothèses.

Ressources pour apprendre davantage

Les organisations et les particuliers qui cherchent à approfondir leur compréhension de l'ingénierie des exigences agiles ont accès à de nombreuses ressources, notamment des livres, des programmes de formation, des communautés professionnelles et des ressources en ligne.

Des organisations professionnelles comme Agile Alliance et International Requirements Engineering Board (IREB)[ fournissent des ressources précieuses, de la formation et des programmes de certification.Ces organisations tiennent de vastes bibliothèques d'articles, d'études de cas et de pratiques exemplaires qui peuvent aider les équipes à améliorer leurs capacités en ingénierie des exigences.

La recherche universitaire continue de faire progresser la compréhension de l'ingénierie des exigences agiles par des études empiriques et des cadres théoriques. Les publications dans les revues et les conférences fournissent des renseignements sur les pratiques, les défis et les solutions émergents.

Des plateformes comme Stack Overflow[, des canaux spécialisés Slack et des groupes LinkedIn permettent aux praticiens de se connecter à d'autres défis similaires et d'apprendre de leurs expériences.

Les conférences et rencontres offrent des occasions d'apprentissage en personne et de réseautage. Les événements axés sur le développement agile, l'ingénierie des exigences ou des cadres spécifiques comme Scrum offrent des lieux d'apprentissage sur les nouvelles pratiques, les études de cas auditives et les liens avec des experts et des pairs.

Conclusion

L'ingénierie des exigences agiles représente un changement fondamental dans la façon dont les organisations abordent la tâche critique de comprendre et de gérer ce que les systèmes logiciels devraient faire. En mettant l'accent sur la collaboration, l'adaptabilité et la rétroaction continue sur une documentation initiale complète, l'ingénierie des exigences agiles permet aux équipes de répondre efficacement à l'évolution des besoins et de fournir plus rapidement de la valeur.

Les principes de l'ingénierie des exigences agiles – collaboration avec les clients, réponse au changement, mise en valeur précoce, validation, évolution des exigences, compréhension partagée et documentation minimale viable – constituent une base philosophique qui guide la pratique.Ces principes doivent être traduits en pratiques concrètes comme les histoires d'utilisateurs, la gestion de l'arriéré, la préparation de l'arriéré, la planification itérative, la participation continue des intervenants et les examens réguliers qui permettent aux équipes de mettre en oeuvre efficacement l'ingénierie des exigences agiles.

Bien que l'ingénierie des exigences agiles offre des avantages importants, elle présente aussi des défis liés à la gestion des exigences non fonctionnelles, à l'élargissement aux grandes organisations, à l'équilibre entre la documentation et les conversations, à la gestion de la volatilité des exigences et à la qualité des exigences.

Des études de cas d'organisations comme Grundfos et des recherches impliquant de nombreuses entreprises démontrent que l'ingénierie des exigences agiles peut être appliquée avec succès dans divers contextes, des petites entreprises de produits logiciels aux grandes entreprises d'ingénierie des systèmes.

L'avenir de l'ingénierie des exigences agiles sera façonné par des technologies émergentes comme l'intelligence artificielle, une plus grande intégration avec DevOps et des pratiques de prestation continue, un soutien accru pour les équipes distribuées et une attention accrue à la durabilité et aux considérations éthiques.

En fin de compte, la réussite de l'ingénierie des exigences agiles exige plus que l'adoption de pratiques précises, ce qui exige l'adoption d'un état d'esprit qui valorise la collaboration, l'apprentissage et l'adaptation.Les organisations doivent investir dans la formation, établir des rôles et des responsabilités clairs, mettre en oeuvre des pratiques efficaces, se concentrer sur la valeur et les résultats, adopter une amélioration continue et adapter des approches à leurs contextes particuliers.