Guide Agile : Définir Terminé – Créer des critères d’acceptation clairs pour les histoires

Hand-drawn infographic comparing Acceptance Criteria vs Definition of Done in Agile development, showing writing techniques like Given-When-Then, DoD checklist components including code quality and testing, common pitfalls to avoid, and collaborative refinement steps for clear user story completion

Dans l’environnement rapide du développement Agile, l’ambiguïté est l’ennemi de la progression. Lorsqu’une équipe reçoit une histoire utilisateur sans limites claires, les attentes divergent, entraînant des reprises, des retards dans les livraisons et de la frustration.Critères d’acceptation et le Définition de Terminéne sont pas seulement des tâches administratives ; ce sont les contrats fondamentaux entre les parties prenantes et l’équipe de développement. Ils définissent ce que signifie le succès avant qu’une seule ligne de code ne soit écrite.

Ce guide explore les mécanismes de rédaction de critères d’acceptation précis et de mise en place d’une Définition de Terminé solide. Nous examinerons comment ces éléments améliorent la qualité, réduisent les pertes et garantissent que chaque sprint livre une valeur concrète. À la fin de ce document, vous comprendrez comment structurer votre backlog afin de minimiser l’ambiguïté et maximiser la confiance dans la livraison.

🧩 Comprendre les critères d’acceptation vs. la Définition de Terminé

Bien qu’ils soient souvent utilisés de manière interchangeable par ceux qui sont nouveaux dans la méthode, Critères d’acceptation (CA) et Définition de Terminé (DT)servent des objectifs distincts. Confondre les deux peut entraîner des histoires qui sont techniques terminées mais ne répondent pas aux besoins métiers, ou des histoires prêtes du point de vue métier mais qui échouent aux normes techniques.

Qu’est-ce que les critères d’acceptation ?

Les critères d’acceptation sont un ensemble spécifique de conditions qu’une histoire utilisateur doit satisfaire pour être considérée comme complète du point de vue métier. Ils sont uniques pour chaque histoire. Si une histoire concerne « la connexion », les critères d’acceptation définissent ce qui constitue une tentative de connexion réussie. Si une histoire concerne « l’affichage d’un tableau de bord », les critères d’acceptation définissent quelles données sont affichées et comment elles sont mises à jour.

  • Portée :Spécifique à chaque histoire utilisateur.

  • Objectif :Vérifier le comportement fonctionnel et la valeur métier.

  • Propriété :Typiquement définie par le Product Owner en collaboration avec l’équipe.

  • Exemple :« Le système doit permettre aux utilisateurs de réinitialiser leur mot de passe par e-mail en moins de 5 minutes. »

Qu’est-ce que la Définition de Terminé ?

La Définition de Terminé est une compréhension partagée de ce que signifie que le travail soit terminé sur l’ensemble du projet. C’est une liste de contrôle qui s’applique à chaquehistoire, quelle que soit sa teneur. Elle représente le niveau de qualité de base du produit.

  • Portée :Applicable à tous les éléments de travail du backlog.

  • Objectif : Assurer une qualité et une intégrité technique cohérentes.

  • Propriété : Propriété collective de l’équipe de développement.

  • Exemple : « Le code a été revu, les tests unitaires ont réussi, et la documentation a été mise à jour. »

Fonctionnalité

Critères d’acceptation

Définition du fait

Granularité

Spécifique à une seule histoire

Universel pour toutes les histoires

Focus

Fonctionnalité métier

Qualité technique et normes

Évolution

Modifications par histoire

Statique ou évolue lentement

Exemple

« Le bouton devient vert au clic »

« Aucune erreur de console présente »

📝 L’anatomie d’un critère d’acceptation de haute qualité

Rédiger des critères d’acceptation efficaces exige un changement de désir flou vers des conditions mesurables. Un critère n’est pas une tâche ; c’est une condition vérifiable. Lorsque les critères sont faibles, la phase de test devient un jeu de devinettes. Lorsqu’ils sont forts, la phase de test devient un processus de vérification.

Caractéristiques des critères efficaces

Pour assurer la clarté, les critères d’acceptation doivent respecter des principes précis. Ces principes aident l’équipe à éviter les malentendus et garantissent que chacun partage le même modèle mental de la fonctionnalité.

  • Sans ambiguïté : Évitez des mots comme « rapide », « facile » ou « convivial ». Utilisez des métriques précises à la place, telles que « se charge en moins de 2 secondes » ou « nécessite 3 clics pour être terminé ».

  • Vérifiable : Si vous ne pouvez pas écrire un cas de test pour cela, ce n’est pas un critère valide. Chaque critère doit aboutir à un résultat « succès » ou « échec ».

  • Complet : Couvrir les parcours normaux, les cas limites et les scénarios négatifs. Que se passe-t-il si l’entrée est vide ? Que se passe-t-il si le réseau échoue ?

  • Indépendant : Bien que les histoires puissent dépendre les unes des autres, les critères d’une histoire ne doivent pas dépendre des critères d’une autre pour être valides.

  • Valable : Concentrez-vous sur l’expérience utilisateur. Les détails d’implémentation technique sont généralement mieux adaptés à la Définition de Fait ou aux notes techniques.

Techniques d’écriture

Il existe des approches structurées pour rédiger les critères, ce qui améliore la cohérence au sein de l’équipe. Utiliser ces formats réduit la charge cognitive lors de la revue des éléments du backlog.

1. Le format Étant donné-Quand-Alors

Également connu sous le nom de syntaxe Gherkin, ce format structure les critères dans une scène. Il sépare le contexte, l’action et le résultat attendu.

  • Étant donné : L’état initial ou le contexte.

  • Quand : L’événement ou l’action effectuée par l’utilisateur.

  • Alors : Le résultat observable qui confirme que la fonctionnalité fonctionne.

Exemple :

  • Étant donné l’utilisateur est connecté avec un abonnement actif

  • Quand ils accèdent à la page de facturation

  • Alors le plan actuel et la date de prochaine rénovation sont affichés

2. Le format Liste de contrôle

Pour des histoires plus simples, une liste directe de conditions est souvent suffisante. Ce format convient particulièrement aux ajustements d’interface ou aux mises à jour de données simples.

  • Vérifiez que le bouton « Envoyer » est désactivé lorsque le formulaire est vide.

  • Assurez-vous que le message d’erreur s’affiche en texte rouge sous le champ de saisie.

  • Confirmez que la réponse de l’API renvoie un code d’état 200.

3. Le format basé sur des règles

Certaines fonctionnalités dépendent fortement de la logique métier. Énumérer ces règles explicitement empêche les erreurs de logique pendant le développement.

  • Les remises s’appliquent uniquement aux articles dont le prix est supérieur à 10 $.

  • Les utilisateurs âgés de moins de 18 ans ne peuvent pas accéder au niveau premium.

  • La taille maximale de téléchargement de fichier est de 10 Mo.

🤝 Affinement collaboratif

Les critères d’acceptation ne sont pas rédigés en isolation. Ils sont le fruit d’une collaboration. Le Product Owner apporte le contexte métier, tandis que l’équipe de développement apporte la perspective de faisabilité technique. Cette collaboration a lieu pendant Affinement du backlog des sessions.

Qui doit être impliqué ?

Bien que le Product Owner soit l’auteur principal des critères, leur valeur augmente considérablement lorsque d’autres contribuent.

  • Product Owner : Définit le « Quoi » et le « Pourquoi ». S’assure que les critères reflètent les besoins des utilisateurs.

  • Développeurs : Identifient les contraintes techniques. Ils précisent ce qui est possible dans l’architecture actuelle.

  • QA / Testeurs : Se concentrent sur les cas limites. Ils demandent : « Qu’est-ce qui casse cela ? » et « Comment mesurons-nous le succès ? »

  • Concepteurs : S’assurent que les critères visuels et d’interaction correspondent aux spécifications de conception.

Quand affiner ?

L’affinement est une activité continue, et non un événement ponctuel. L’objectif est de s’assurer que les histoires sont prêtes pour la planification du prochain Sprint. Une règle générale courante est d’avoir 50 % à 75 % du backlog du prochain Sprint affiné et prêt à être utilisé.

  • Phase initiale : Tracés généraux. Concentration sur la proposition de valeur principale et les flux de haut niveau.

  • Phase intermédiaire : Détaillage des cas limites et des exigences spécifiques en matière de données.

  • Avant le Sprint : Revue finale. S’assurer qu’aucune ambiguïté ne subsiste avant l’engagement.

⚠️ Pièges courants et comment les éviter

Même les équipes expérimentées ont des difficultés avec les critères d’acceptation. Reconnaître les erreurs courantes vous permet de corriger le cap avant qu’elles n’affectent la livraison.

1. Rédiger des tâches au lieu de critères

Une erreur courante consiste à lister les étapes d’implémentation. « Créer une table de base de données » est une tâche. « Les données persistent entre les sessions » est un critère. Les tâches appartiennent au plan de développement, et non aux critères d’acceptation.

2. Sur-spécification

Fournir trop de détails peut étouffer l’innovation. Si vous indiquez aux développeurs exactement comment résoudre un problème, vous limitez leur capacité à trouver de meilleures solutions. Concentrez-vous sur le comportement, et non sur le mécanisme.

3. Oublier les exigences non fonctionnelles

Les performances, la sécurité et l’accessibilité sont souvent négligées. Une fonctionnalité qui fonctionne mais qui est insecure ou inaccessible n’est pas terminée. Inclure des critères pour :

  • Performances : « La page se charge en moins de 2 secondes. »

  • Accessibilité : « Les lecteurs d’écran peuvent naviguer dans le formulaire. »

  • Sécurité : « Les mots de passe sont hachés avant stockage. »

4. Langage flou

Des mots comme « optimisé », « robuste » ou « moderne » sont subjectifs. Remplacez-les par des critères mesurables. « Optimisé » devient « Réduit de 20 % les appels à l’API ». « Robuste » devient « Gère 1 000 utilisateurs simultanés sans erreur. »

🔄 La définition de terminé : assurer la cohérence

Alors que les critères d’acceptation garantissent que la fonctionnalité fonctionne pour l’utilisateur, la définition de terminé garantit que le code est sûr à publier. Une DoD agit comme un gardien. Si une tâche ne remplit pas la DoD, elle ne peut pas être passée à « Terminé », quelle que soit la satisfaction des critères d’acceptation.

Composantes d’une bonne définition de terminé

Une DoD complète couvre l’intégralité du cycle de vie d’un changement de code. Elle doit être visible de tous, souvent affichée sur un tableau physique ou un tableau de bord numérique.

  • Qualité du code : Aucune odeur de code, vérifications de linting passées, seuils de complexité atteints.

  • Tests : Tests unitaires rédigés et passants, tests d’intégration passés, tests manuels vérifiés.

  • Documentation : Documentation utilisateur mise à jour, documentation API actualisée, base de connaissances interne liée.

  • Sécurité : Analyse des dépendances passée, pas de secrets codés en dur, analyse des vulnérabilités validée.

  • Déploiement : Code fusionné dans la branche principale, déployé en environnement de préproduction, vérifié dans l’environnement de production.

Affiner la définition de terminé

La DoD n’est pas statique. Au fur et à mesure que l’équipe mûrit et que la technologie évolue, la DoD doit évoluer elle aussi. Si un nouvel outil de test est adopté, la DoD doit refléter l’obligation de l’utiliser. Si une norme de sécurité est mise à jour, la DoD doit s’aligner.

  • Revue régulière : Discuter de la DoD lors des rétrospectives. Est-elle trop lourde ? Trop légère ?

  • Croissance progressive : Ajouter les éléments progressivement. Ne pas doubler la DoD en une nuit. Cela évite les goulets d’étranglement.

  • Consensus de l’équipe : L’équipe doit s’accorder sur le critère de fin. Si les développeurs estiment qu’il est impossible, ils le contourneront, ce qui annule son objectif.

📈 Mesurer l’impact et la qualité

Investir du temps à définir le « fait » et les critères d’acceptation rapporte des résultats mesurables. Les équipes qui privilégient la clarté voient leurs performances, leur prévisibilité et leur qualité s’améliorer.

Indicateurs clés à suivre

  • Taux d’échappement des défauts : Le nombre de bogues trouvés en production. Des critères clairs réduisent la probabilité que des erreurs logiques parviennent aux utilisateurs.

  • Pourcentage de rework : La quantité de travail qui est annulée ou modifiée après sa première réalisation. Des critères ambigus entraînent souvent du rework.

  • Conformité au critère de fin : Le nombre d’histoires marquées « Terminé » qui ont réellement rempli la liste complète du critère de fin.

  • Temps de révision : Le temps passé à discuter des critères. Bien que cela prenne du temps au départ, cela réduit le temps passé à clarifier durant le développement.

Boucles de retour

La qualité de vos critères peut être évaluée grâce aux boucles de retour. Si un ingénieur QA trouve fréquemment des problèmes qui auraient dû être couverts par les critères, ceux-ci doivent être affinés. Si les développeurs posent fréquemment des questions de clarification pendant le développement, les critères doivent être plus détaillés.

Utilisez le point d’appréciation pour discuter de ces problèmes. Posez à l’équipe :

  • Avons-nous mal compris certaines histoires ?

  • Y avait-il des cas limites que nous avons manqués ?

  • Le critère de fin était-il réalisable dans le cadre du sprint ?

🛠️ Étapes concrètes de mise en œuvre

Mettre en place un système solide pour les critères d’acceptation et le critère de fin exige une approche structurée. Suivez ces étapes pour intégrer ces pratiques dans votre flux de travail.

Étape 1 : Établir la base

Commencez par définir le critère de fin minimum. Quel est le strict minimum requis pour considérer le code comme sûr ? Cela pourrait inclure « Compile », « Fonctionne en local » et « Tests de base ». Obtenez l’accord de l’équipe sur cette base immédiatement.

Étape 2 : Former à l’écriture des critères

Organisez des ateliers pour enseigner à l’équipe comment rédiger des scénarios Given-When-Then. Utilisez des histoires réelles de la liste de tâches comme matière de pratique. Cela garantit que chacun comprend le format et le niveau de détail attendus.

Étape 3 : Intégrer dans le flux de travail

Rendez les critères un champ obligatoire dans votre système de suivi. Les histoires sans critères ne peuvent pas être déplacées vers « Prêtes pour la planification du sprint ». Cela impose la discipline sans nécessiter de microgestion.

Étape 4 : Revue pendant la planification

Allouez du temps pendant la planification du sprint pour revue les critères des histoires sélectionnées. Si une histoire est floue, ne vous engagez pas à la réaliser. Reportez-la à la révision. Cela protège l’équipe contre l’engagement excessif sur des travaux ambigus.

Étape 5 : Amélioration continue

Revoyez les critères après le sprint. Ont-ils tenu ? Ont-ils permis de détecter les problèmes qu’ils étaient censés repérer ? Mettez à jour les modèles et les normes en fonction de ces constatations.

🌟 Avancer

Des critères d’acceptation clairs et une Définition du Fait solide ne sont pas des raccourcis ; ils constituent le fondement d’une livraison Agile fiable. Ils transforment le développement d’un jeu de devinettes en un processus prévisible. En investissant du temps en amont pour définir ce que signifie le succès, les équipes réduisent les pertes, améliorent leur moral et livrent un logiciel de meilleure qualité.

Le chemin vers la clarté est continu. Il exige de la discipline pour rester fidèle aux normes et du courage pour repousser les exigences floues. Au fur et à mesure que vous affinez vos processus, vous découvrirez que le temps passé à définir le « Fait » est du temps gagné sur le débogage, les reprises et la gestion des parties prenantes. Concentrez-vous sur la précision, favorisez la collaboration, et laissez la qualité de vos critères guider la qualité de votre produit.