Aller au contenu
hexora

User stories et critères d’acceptation : le guide pour les équipes métier

Rédiger une user story utile, la vérifier avec INVEST et écrire des critères d’acceptation testables en Gherkin : méthode, exemples et pièges à éviter.

Par la rédaction Hexora9 min de lecture
Maquettes d’écrans d’application épinglées sur un mur et reliées par des fils, qu’une main ajuste
Photo : Alvaro Reyes / Unsplash

L’essentiel en 30 secondes

  • Une user story décrit un besoin du point de vue d’un utilisateur, en une phrase : en tant que [rôle], je veux [action] afin de [bénéfice].
  • La phrase ne suffit pas : selon Ron Jeffries, une story combine une carte, une conversation et une confirmation, c’est-à-dire des tests d’acceptation.
  • La grille INVEST de Bill Wake vérifie qu’une story est Indépendante, Négociable, porteuse de Valeur, Estimable, de petite taille (Small) et Testable.
  • Les critères d’acceptation se rédigent idéalement sous forme d’exemples Étant donné / Quand / Alors, issus du Behavior-Driven Development et formalisés par le langage Gherkin.
  • C’est l’équipe métier qui détient la connaissance des règles et des cas particuliers : elle doit écrire ou valider les critères, pas seulement la story.

Une user story est une description courte d’un besoin, formulée du point de vue de la personne qui utilisera l’application : « En tant que [rôle], je veux [action] afin de [bénéfice] ». Elle ne se suffit jamais à elle-même : ce sont ses critères d’acceptation, des exemples concrets et vérifiables, qui disent quand la fonctionnalité est réellement terminée. Une bonne story passe la grille INVEST, et ses critères s’écrivent idéalement sous la forme « Étant donné / Quand / Alors ». C’est l’équipe métier qui détient les règles : c’est donc elle qui doit écrire ou valider ces critères.

Ce guide s’adresse aux directeurs métier, chefs de service et référents qui participent à un projet d’application sans être développeurs. Il explique comment écrire des stories utiles, comment les vérifier et comment éviter les malentendus qui coûtent des sprints entiers.

Qu’est-ce qu’une user story, et à quoi sert-elle vraiment ?

Une user story n’est pas une spécification. C’est un point de départ pour une conversation. Ron Jeffries, l’un des fondateurs de l’Extreme Programming, la résume en trois « C » dans un article de 2001, Card, Conversation, Confirmation :

  • La carte : une phrase qui identifie le besoin et sert de repère pour la planification.
  • La conversation : l’échange entre le métier et l’équipe de développement, qui précise les règles, les exceptions, les cas limites.
  • La confirmation : les tests d’acceptation, qui prouvent que ce qui a été livré correspond à ce qui était attendu.

Beaucoup de projets ne gardent que la carte. On se retrouve alors avec un backlog rempli de phrases du type « En tant qu’utilisateur, je veux exporter les données », que chacun interprète différemment. Le développeur livre un export CSV, le contrôleur de gestion attendait un fichier Excel avec ses sous-totaux, et l’écart n’apparaît qu’à la démonstration.

Les trois parties de la phrase

  • « En tant que » : un rôle précis, pas « un utilisateur ». Un chef d’atelier, une assistante ADV ou un technicien terrain n’ont ni les mêmes droits ni les mêmes contraintes.
  • « Je veux » : une action observable, décrite dans le vocabulaire du métier, sans solution technique imposée.
  • « Afin de » : le bénéfice. C’est la partie la plus souvent oubliée, et la plus utile : elle permet de proposer une meilleure solution que celle imaginée au départ, et de prioriser.

Exemple pour une entreprise de négoce : « En tant que commercial sédentaire, je veux voir l’encours et le retard de paiement d’un client depuis sa fiche afin de ne pas accepter une commande qui sera bloquée par la comptabilité. »

Comment savoir si une user story est bien écrite ? La grille INVEST

En 2003, Bill Wake a proposé un moyen mnémotechnique devenu la référence pour juger une story : INVEST. Chaque lettre correspond à une question simple que l’équipe métier peut se poser.

Critère Question à se poser Signal d’alerte
Indépendante Peut-on la développer sans attendre une autre story ? « Cette story n’a de sens qu’avec les trois suivantes »
Négociable Le besoin est-il décrit, plutôt qu’une solution figée ? La story impose un écran, un bouton, une technologie
Valeur Un utilisateur ou l’entreprise y gagne-t-il quelque chose ? Story purement technique sans bénéfice visible
Estimable L’équipe peut-elle en évaluer l’effort ? Trop d’inconnues, règles de gestion non connues
Small (petite) Tient-elle confortablement dans un sprint ? Plusieurs semaines de travail, des dizaines de règles
Testable Sait-on comment vérifier qu’elle est terminée ? « L’écran doit être simple et rapide »

Bill Wake précise qu’une story représente au plus quelques semaines-personne de travail, et que beaucoup d’équipes visent quelques jours. Plus une story est petite, plus son estimation est fiable et plus vite le métier peut la voir fonctionner.

Découper une story trop grosse

Une story trop grosse s’appelle souvent une épopée (epic). Pour la découper sans perdre la valeur, plusieurs axes fonctionnent bien :

  1. Par étape du processus : saisir la demande, la valider, la transmettre.
  2. Par règle de gestion : d’abord le cas standard, ensuite les remises, ensuite les clients export.
  3. Par type de données : les clients actifs d’abord, les prospects ensuite.
  4. Par niveau de confort : une version simple qui fonctionne, puis les filtres, les raccourcis et les exports.
  5. Par rôle : ce que voit le commercial, puis ce que voit son responsable.

Le piège à éviter est le découpage par couche technique (« la base de données », puis « l’écran ») : aucune des deux moitiés n’apporte de valeur seule, et le métier ne peut rien vérifier avant la fin.

Une personne dispose des notes adhésives de couleur sur un mur sombre dans un bureau lumineux
Carte, conversation, confirmation : les trois temps d’une user story. Photo : Vitaly Gariev / Unsplash

Que sont les critères d’acceptation ?

Les critères d’acceptation sont les conditions qu’une fonctionnalité doit remplir pour être acceptée par le responsable produit. Ils transforment une intention en contrat vérifiable. Sans eux, la recette devient un débat d’opinions ; avec eux, elle devient une vérification.

Un bon critère d’acceptation est :

  • observable : on peut constater le résultat à l’écran, dans un fichier ou dans un e-mail ;
  • non ambigu : deux personnes qui le lisent arrivent au même verdict ;
  • centré sur le comportement, pas sur l’implémentation ;
  • concret : il contient de vraies valeurs, de vrais exemples.

Comparez « le calcul de la remise doit être correct » avec « un client de catégorie B qui commande 120 unités obtient 5 % de remise sur la ligne ». Le second peut être testé par n’importe qui, y compris par un nouvel arrivant.

Critères d’acceptation et définition de terminé

On confond souvent les deux. Les critères d’acceptation sont propres à chaque story. La définition de terminé, elle, est commune à toutes : le Scrum Guide la décrit comme la description formelle de l’état de l’incrément lorsqu’il atteint les exigences de qualité du produit. Elle couvre par exemple la relecture du code, les tests automatisés, le déploiement sur l’environnement de recette et la mise à jour de la documentation.

Comment écrire des critères avec Étant donné / Quand / Alors ?

Le format Étant donné / Quand / Alors (Given / When / Then) a été développé par Dan North et Chris Matts dans le cadre du Behavior-Driven Development, comme le rappelle Martin Fowler. Il découpe chaque exemple en trois temps :

  • Étant donné : la situation de départ (les données, le contexte, le rôle connecté) ;
  • Quand : l’action ou l’événement ;
  • Alors : le résultat attendu, observable.

Reprenons la story du commercial sédentaire :

# language: fr
Fonctionnalité: Encours client visible depuis la fiche

  Scénario: Client en retard de paiement
    Étant donné un client dont une facture est échue depuis 45 jours
    Quand le commercial ouvre la fiche du client
    Alors un bandeau signale le retard de paiement
    Et le montant échu est affiché

  Scénario: Client à jour
    Étant donné un client sans facture échue
    Quand le commercial ouvre la fiche du client
    Alors aucun bandeau d’alerte n’est affiché

Ce texte se lit sans formation. C’est le langage Gherkin, utilisé par l’outil Cucumber : sa documentation de référence indique qu’il est traduit dans plus de 70 langues, dont le français, grâce à l’en-tête # language: fr. L’équipe de développement peut ensuite automatiser ces scénarios, qui deviennent des tests exécutés à chaque livraison.

Les bonnes pratiques Gherkin

  • Un scénario, un comportement. Si le scénario contient deux « Quand », il en cache deux.
  • Trois à cinq étapes. C’est la recommandation de Cucumber pour que l’exemple reste une documentation lisible.
  • Le vocabulaire du métier. « Le commercial valide le devis », pas « l’utilisateur clique sur le bouton id=btn-submit ».
  • Des exemples aux limites. 119 et 120 unités pour un seuil à 120, une date d’échéance tombant un jour férié, un client sans SIREN.
  • Les tableaux d’exemples (Plan du scénario) quand la même règle s’applique à plusieurs valeurs : une ligne par catégorie de client, par exemple.

Quel rôle pour l’équipe métier, concrètement ?

Le développeur sait construire ; le métier sait ce qui se passe vraiment : la remise exceptionnelle accordée à un client historique, le bon de livraison ressaisi parce que le transporteur ne lit pas le format standard, le contrôle que fait la comptable à chaque fin de mois. Ces cas particuliers sont précisément ceux qui font échouer une application lorsqu’ils sont découverts en production.

Une pratique efficace consiste à réunir, pour chaque story importante, trois points de vue pendant vingt à trente minutes : un représentant du métier, un développeur et une personne qui pense aux tests. On liste les règles, puis pour chaque règle un ou deux exemples, puis les questions ouvertes. Les questions sans réponse sont confiées au métier avant le sprint, pas pendant.

Ce travail se prépare dès la phase de cadrage, qui identifie les processus, les rôles et les règles de gestion. Il nourrit ensuite chaque sprint, comme nous l’expliquons dans notre méthode : chaque story terminée est montrée en démonstration et validée au regard de ses critères.

Les erreurs fréquentes, et comment les corriger

Erreur Exemple Correction
Rôle générique « En tant qu’utilisateur… » Nommer le rôle réel : responsable logistique, technicien, client B2B
Solution imposée « Je veux un menu déroulant » Décrire le besoin : « Je veux choisir un transporteur parmi ceux autorisés pour cette zone »
Bénéfice absent Pas de « afin de » Se demander ce qui serait perdu si la story n’existait pas
Critère vague « L’export doit être complet » Lister les colonnes, le format, le tri, le nom du fichier
Cas d’erreur oubliés Seul le cas nominal est décrit Ajouter les scénarios : donnée manquante, droit insuffisant, doublon
Story fourre-tout Saisie, validation, export et relance dans la même story Découper par étape du processus

Un dernier piège, plus organisationnel : écrire toutes les stories détaillées au début du projet. Le besoin évolue dès que les utilisateurs voient les premiers écrans. Mieux vaut un backlog dont seules les stories des deux prochains sprints sont détaillées, et le reste esquissé.

La checklist avant d’envoyer une story en développement

Avant qu’une story entre dans un sprint, vérifiez les points suivants :

  1. Le rôle est précis et existe vraiment dans l’entreprise.
  2. Le bénéfice (« afin de ») est explicite et compris par l’équipe.
  3. La story passe la grille INVEST, en particulier Small et Testable.
  4. Chaque règle de gestion a au moins un exemple chiffré.
  5. Les cas d’erreur et les droits d’accès sont couverts.
  6. Les données de test nécessaires existent ou sont décrites.
  7. Le métier a relu et validé les critères d’acceptation.
  8. Les questions ouvertes ont une réponse, ou la story attend.

Ces stories deviennent ensuite la base de la recette de l’application : chaque critère d’acceptation est un cas de test tout trouvé. Si votre projet n’en est qu’au stade de l’expression de besoin, notre modèle de cahier des charges vous aide à poser le contexte et le périmètre avant de découper en stories, et notre page sur les applications web sur mesure détaille comment nous les livrons sprint après sprint.

Vous préparez un projet et souhaitez savoir comment le découper en lots livrables ? Décrivez-le dans notre diagnostic de projet : deux minutes suffisent pour obtenir une première analyse.

Applications web

Des outils métier que vos équipes ont envie d’utiliser.

Des applications métier rapides, accessibles et pensées pour vos équipes.

Sources et références

  1. INVEST in Good Stories, and SMART Tasks · Bill Wake, XP123
  2. Essential XP: Card, Conversation, Confirmation · Ron Jeffries
  3. Given When Then · Martin Fowler
  4. Gherkin Reference · Cucumber
  5. The Scrum Guide (2020) · Ken Schwaber et Jeff Sutherland
  • user story
  • critères d’acceptation
  • INVEST
  • Gherkin
  • expression de besoin
FAQ

Vos questions, nos réponses

Qui doit rédiger les user stories dans un projet d’application métier ?

Le responsable produit côté client (souvent appelé Product Owner) porte les stories et leurs priorités, mais il ne les écrit pas seul. Les meilleures stories naissent d’ateliers réunissant un utilisateur métier, un développeur et une personne chargée des tests. Le prestataire peut tenir la plume, à condition que le métier valide chaque critère d’acceptation.

Quelle différence entre critères d’acceptation et définition de terminé ?

Les critères d’acceptation sont propres à une story : ils décrivent ce que cette fonctionnalité doit faire pour être acceptée. La définition de terminé (Definition of Done) s’applique à toutes les stories : code relu, tests automatisés passés, documentation à jour, déploiement en recette. Une story n’est livrée que si les deux sont respectés.

Faut-il écrire toutes les user stories avant de commencer le développement ?

Non. On écrit au départ les grandes lignes (épopées et stories principales) pour estimer et prioriser, puis on détaille les stories du ou des prochains sprints, juste avant leur développement. Détailler trop tôt fait travailler sur des besoins qui auront changé entre-temps.

Combien de critères d’acceptation faut-il par user story ?

Il n’existe pas de nombre officiel, mais une story qui accumule une dizaine de critères est généralement trop grosse et gagne à être découpée. La documentation de Cucumber recommande par ailleurs de limiter chaque scénario Gherkin à trois à cinq étapes pour qu’il reste lisible.

Une user story remplace-t-elle le cahier des charges ?

Elle le complète plutôt qu’elle ne le remplace. Le cahier des charges fixe le contexte, les objectifs, le périmètre et les contraintes ; les user stories découpent ensuite ce périmètre en unités livrables et testables. Pour un appel d’offres, un cahier des charges reste le meilleur point de départ.

À lire ensuite

Tous les articles →

Un projet ? Parlons-en.

Démarrer un projet