Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 34

User Stories : Rédaction et Critères d'Acceptation

Recommended resources

Bonjour !

Dans la leçon précédente, nous avons découvert les trois artefacts Scrum qui assurent la transparence du travail : le Product Backlog, le Sprint Backlog et l'Incrément. Nous avons vu que le Product Backlog est une liste ordonnée de tout ce qui est nécessaire pour améliorer le produit. Mais comment rédiger les éléments de cette liste de manière efficace ?

C'est l'objet de notre leçon aujourd'hui. L'objectif est de vous apprendre à rédiger une User Story claire et concise, incluant des critères d'acceptation.

Pour vous, qui visez un rôle de Tech Lead ou de Product Owner, c'est une compétence fondamentale. La User Story est le principal outil pour traduire un besoin utilisateur en une spécification compréhensible et réalisable par l'équipe de développement. C'est le pont entre le "besoin métier" et le "code". Savoir les rédiger et les interpréter correctement est essentiel pour construire le bon produit.

1. Qu'est-ce qu'une User Story ?

Une User Story (ou "récit utilisateur") est une description simple et courte d'une fonctionnalité, racontée du point de vue de la personne qui désire cette nouvelle capacité, généralement un utilisateur ou un client du système.

Plutôt qu'un long document de spécifications techniques, une User Story est souvent considérée comme une "promesse de conversation". Elle n'est pas censée contenir tous les détails, mais juste assez d'informations pour que l'équipe puisse en discuter, estimer l'effort nécessaire et la planifier.

La structure d'une User Story

La structure la plus courante et la plus efficace est la suivante :

En tant que <type d'utilisateur>, je souhaite <réaliser une action> afin de <bénéfice / objectif>.

Pour découvrir cette structure et son utilité, je vous propose de regarder un court extrait vidéo.

user stories - comment les créer - La Minute Agile Scrum #41

La vidéo "user stories - comment les créer" de la chaîne La Minute Agile explique très bien le format de base d'une User Story et l'importance d'utiliser un langage simple.

Regardez le début de la vidéo, de 00:07 à 01:41. Concentrez-vous sur la structure 'En tant que / Je souhaite / Afin de' et la raison d'être de chaque partie : le Qui, le Quoi, et le Pourquoi.

Ce format est puissant car il force à réfléchir à trois questions essentielles :

  • Qui ? (En tant que...) : On identifie l'utilisateur final (le persona). Cela ancre la fonctionnalité dans une réalité d'usage.
  • Quoi ? (Je souhaite...) : On décrit l'action ou la fonctionnalité attendue de manière claire.
  • Pourquoi ? (Afin de...) : On exprime la valeur, le bénéfice pour l'utilisateur. C'est la partie la plus importante car elle justifie l'existence même de la story et aide à prendre des décisions de priorisation.
User Story Card Example with Acceptance Criteria
Cette image illustre le concept de "carte" de User Story. Le recto décrit le besoin de l'utilisateur ("En tant que...", "Je veux...", "Afin de..."), tandis que le verso détaille les conditions pour que la story soit considérée comme terminée : les critères d'acceptation.

2. User Stories, Epics et Tâches : Ne pas tout mélanger

En tant que développeur, vous êtes habitué à décomposer le travail en tâches techniques. Il est crucial de bien situer la User Story par rapport à d'autres concepts agiles comme l'Epic et la Tâche.

Pour clarifier ces niveaux de granularité, je vous invite à lire la section suivante.

User story Agile: Définition et 5 étapes (+Templates et vidéo)

L'article "User story Agile: Définition et 5 étapes" explique très clairement la hiérarchie entre une Epic, une User Story et une Tâche.

Lisez la section intitulée "Etape 1 : Identifier les User stories, Epics, et tâches". L'exemple de l'application bancaire est particulièrement parlant.

Pour résumer visuellement cette hiérarchie :

Relationship between User Stories and Acceptance Criteria
Ce schéma montre comment une fonctionnalité de haut niveau (Epic) est décomposée en plusieurs User Stories plus petites et gérables. Chaque User Story est ensuite précisée par des Critères d'Acceptation qui définissent ses conditions de succès.
  • Epic : Une grande fonctionnalité qui ne peut pas être réalisée en un seul Sprint. Ex: "Gestion du profil utilisateur".
  • User Story : Un morceau de l'Epic, assez petit pour être réalisé en un Sprint. Ex: "En tant qu'utilisateur, je veux changer mon mot de passe...".
  • Tâche : Une action technique concrète nécessaire pour réaliser une User Story. Ex: "Créer le endpoint de l'API pour la réinitialisation du mot de passe", "Intégrer la page de changement de mot de passe". Les tâches sont définies par les développeurs, souvent lors du Sprint Planning.

3. Les qualités d'une bonne User Story : L'acronyme INVEST

Le format seul ne suffit pas. Une User Story de qualité doit respecter certains principes, résumés par l'acronyme INVEST.

Ecrire une User Story Exemple - Mon Backlog Agile Scrum 8

La vidéo "Ecrire une User Story Exemple" détaille très bien chaque lettre de l'acronyme INVEST, un critère essentiel pour évaluer la qualité de vos stories.

Regardez la section de 11:01 à 13:57. Prenez note de la signification de chaque lettre.

Voici un résumé de ces qualités :

  • Independent (Indépendante) : La story doit pouvoir être développée et livrée sans dépendre d'une autre story.
  • Negotiable (Négociable) : Elle n'est pas un contrat rigide. C'est un point de départ pour une discussion entre le PO et l'équipe.
  • Valuable (Qui a de la valeur) : Elle doit apporter une valeur claire à l'utilisateur final ou au client.
  • Estimable (Estimable) : L'équipe doit avoir assez d'informations pour pouvoir en estimer l'effort.
  • Small (Petite / "Sized appropriately") : Elle doit être assez petite pour être terminée en un seul Sprint.
  • Testable (Testable) : On doit pouvoir vérifier qu'elle est terminée et qu'elle fonctionne comme attendu. C'est là qu'interviennent les critères d'acceptation.

4. Rendre la User Story testable : Les Critères d'Acceptation

Si la User Story décrit le "pourquoi" et le "quoi", les Critères d'Acceptation (AC) décrivent le "comment ça doit marcher". Ils transforment une description narrative en une liste de conditions vérifiables. Pour l'équipe de développement, ils définissent les limites de la story et servent de base pour les tests.

Il est important de ne pas confondre Critères d'Acceptation et Definition of Done (DoD) que nous avons vue dans la leçon précédente :

  • La DoD est une checklist de qualité générale, qui s'applique à toutes les User Stories (ex: "le code est revu", "les tests unitaires passent").
  • Les Critères d'Acceptation sont des règles fonctionnelles spécifiques à une seule User Story.

Comment rédiger des Critères d'Acceptation ?

La méthode la plus utilisée dans les équipes agiles est le format Gherkin, qui s'appuie sur une structure Given/When/Then (ou en français Étant donné que / Lorsque / Alors).

Comment rédiger de bons critères d'acceptation ?

L'article "Comment rédiger de bons critères d'acceptation ?" se concentre spécifiquement sur ce sujet. Il explique très bien le format Gherkin et son utilité.

Lisez les sections "Que sont les critères d’acceptation ?" et "Comment rédiger les critères d’acceptation ?". Portez une attention particulière au format "Étant donné que / Lorsque / Alors" et aux exemples fournis.

  • Étant donné que (Given) : Décrit le contexte initial, la situation de départ avant l'action.
  • Lorsque (When) : Décrit l'action effectuée par l'utilisateur.
  • Alors (Then) : Décrit le résultat attendu, la conséquence observable de l'action.

Ce format est très apprécié des développeurs car il correspond parfaitement à la structure d'un cas de test : Arrange / Act / Assert.

Voyons un exemple concret en vidéo.

user stories - comment les créer - La Minute Agile Scrum #41

Retournons sur la vidéo "user stories - comment les créer". Elle montre un exemple très clair de critères d'acceptation pour une story d'ajout au panier, en utilisant à la fois une liste simple et le format Gherkin.

Regardez l'extrait de 03:27 à 05:59. Observez comment les critères d'acceptation précisent les règles métier (ex: stock > 0) et comment le format Gherkin permet de décrire des scénarios positifs et négatifs.


5. À vous de jouer !

Mettons maintenant tout cela en pratique. Votre expérience de développeur web full-stack va être un atout pour imaginer les différents cas.

Scénario : Vous travaillez sur une plateforme de blog.

Votre mission : Rédigez une User Story complète (format "En tant que...") et ses critères d'acceptation (format "Étant donné que...") pour la fonctionnalité suivante : "un auteur veut pouvoir sauvegarder son article en cours de rédaction sans le publier, pour y revenir plus tard".

Testez votre compréhension !

Essayez de rédiger la User Story et au moins 3 critères d'acceptation (un cas nominal, un cas limite ou d'erreur).

Show answer

Voici une solution possible. Votre formulation peut être différente, l'important est de respecter la structure et la logique.

User Story :

En tant qu' auteur,
Je souhaite sauvegarder mon article comme brouillon,
Afin de pouvoir le reprendre et le modifier plus tard avant de le publier.

Critères d'Acceptation :

  1. Scénario : Sauvegarde réussie d'un nouvel article

    • Étant donné que je suis sur la page de création d'un nouvel article et que j'ai rempli le titre et une partie du contenu,
    • Lorsque je clique sur le bouton "Enregistrer le brouillon",
    • Alors l'article est sauvegardé avec le statut "Brouillon", un message de confirmation "Article sauvegardé" s'affiche, et je suis redirigé vers mon tableau de bord où je vois l'article listé dans mes brouillons.
  2. Scénario : Erreur de sauvegarde (champ obligatoire manquant)

    • Étant donné que je suis sur la page de création d'un nouvel article et que je n'ai pas rempli le champ "Titre",
    • Lorsque je clique sur le bouton "Enregistrer le brouillon",
    • Alors l'article n'est pas sauvegardé, et un message d'erreur s'affiche près du champ "Titre" indiquant "Le titre est obligatoire".
  3. Scénario : Mise à jour d'un brouillon existant

    • Étant donné que j'ai ouvert un article existant qui a le statut "Brouillon",
    • Lorsque je modifie le contenu et que je clique sur le bouton "Enregistrer le brouillon",
    • Alors mes modifications sont sauvegardées dans le même article, et un message de confirmation s'affiche.

Conclusion

Aujourd'hui, nous avons appris à formuler des exigences de manière agile en utilisant les User Stories. C'est une compétence au carrefour de la technique, du produit et de l'humain.

Voici les points clés à retenir :

  • La User Story capture le besoin d'un utilisateur avec le format "En tant que..., je souhaite..., afin de...", en se concentrant sur le Qui, le Quoi et le Pourquoi.
  • Une bonne User Story respecte les critères INVEST : elle est notamment indépendante, petite et testable.
  • Les Critères d'Acceptation rendent la story testable en décrivant les conditions de succès.
  • Le format "Étant donné que..., Lorsque..., Alors..." (Gherkin) est une manière structurée et efficace de rédiger des critères d'acceptation qui parlent à la fois au métier et aux développeurs.

Maîtriser la rédaction de User Stories vous permettra de mieux comprendre les besoins, de faciliter les discussions au sein de l'équipe et de vous assurer que le développement est aligné sur la valeur attendue par l'utilisateur.

Dans notre prochaine leçon, nous verrons ce qu'il advient de toutes ces User Stories une fois qu'elles sont dans le Product Backlog. Nous aborderons un aspect essentiel du rôle de Product Owner : comment les classer ? Nous apprendrons à appliquer une technique de priorisation du Product Backlog. À bientôt