Pourquoi ce sujet. Une User Story tient en trois lignes. Vue depuis l'habitude du cahier des charges, elle ressemble à une spécification bâclée, et la première réaction est de vouloir la compléter. Ce chapitre sert à montrer ce que ces trois lignes déclenchent, et ce qu'il faut mettre en face pour que ça marche. Tant que la card est lue comme un document incomplet, le reste ne tient pas : ni l'estimation relative, ni l'adaptation en cours de route.
Le nœud. Trois minutes, puis on passe.
Une spécification décrit une solution à construire. Une User Story nomme un besoin dont il faut parler.
| Spécification | User Story | |
|---|---|---|
| Ce qu'elle contient | la solution, décrite | un besoin, nommé |
| Qui l'écrit | une personne, seule | une personne, puis plusieurs |
| Longueur | autant qu'il faut | ce qui tient sur une fiche |
| Ce qu'elle attend du lecteur | qu'il exécute | qu'il vienne en parler |
La ligne « longueur » est celle qui surprend : la brièveté de la card est un choix d'écriture. Une fiche qui contient déjà toutes les réponses n'appelle personne.
Ce réflexe est fondé : quand un besoin est mal transmis, le travail part de travers et l'écrit sert de recours. Il produit des documents de plus en plus longs, relus de moins en moins.
L'agilité fait le pari d'écrire moins et de parler plus. Le pari ne tient que si la conversation a réellement lieu, et c'est là que ça casse en pratique.
Ron Jeffries, 2001. Card, Conversation, Confirmation.
Jeffries écrit ces trois mots contre une confusion qu'il voyait déjà : traiter la card comme le livrable et s'arrêter là.
| Le C | Ce que c'est | Qui est là | Ce qui reste après |
|---|---|---|---|
| Card | la fiche, trois lignes | celui qui l'écrit | un titre et un rappel |
| Conversation | on en parle | demandeur et réalisateurs | une compréhension partagée |
| Confirmation | les critères d'acceptation | les mêmes, au même moment | une liste écrite |
Le contenu est produit au deuxième C. La card sert à provoquer le rendez-vous. Le troisième C écrit ce qui vient d'être dit.
Le point qui se perd le plus souvent : la Confirmation s'écrit pendant la Conversation, dans la même pièce, avec les mêmes personnes. Des critères rédigés après coup, seul, à partir de ses notes, redeviennent une spécification courte : la forme d'une US, le fonctionnement d'un cahier des charges.
Un critère d'acceptation se dit : « on saura que c'est bon quand… »
Il se vérifie. Il se répond par oui ou par non. « L'interface doit être ergonomique » ne se répond ni par oui ni par non, donc ce n'est pas un critère.
Bill Wake, 2003. La liste de contrôle qui dit si une story est prête à être embarquée.
Independent, elle se livre seule · Negotiable, elle reste discutable · Valuable, elle sert à quelqu'un · Estimable, l'équipe peut lui donner une taille · Small, elle tient dans un sprint · Testable, on sait dire quand c'est fini.
Deux lettres concernent ce temps. Le N dit que la card reste ouverte quand la conversation commence. Le T dit qu'une story sans critères d'acceptation est incomplète.
Un exemple commenté montre ce que la conversation ajoute à une card.
Une card peut demander « gérer un panier ». La conversation fait apparaître les comportements attendus : ajouter un produit, voir le total, retirer un produit, changer une quantité et valider la commande.
La conversation a un coût réel, payé à chaque story.
Les personnes concernées doivent être disponibles au même moment. C'est le prix des 3 C.
Le document exhaustif a un avantage réel sur ce point : il s'écrit seul, il s'envoie, il n'immobilise personne. D'où la tentation d'y revenir dès que les agendas se remplissent.
| Ce qu'on voit | Ce qui manque | Ce que ça redevient |
|---|---|---|
| une card écrite par une personne, transmise sans réunion | la Conversation | une spécification courte |
| des critères rédigés après coup par le demandeur | la Confirmation partagée | un cahier des charges tardif |
| une conversation sans personne qui puisse trancher | la décision | une réunion à refaire |
Ces trois situations sont ordinaires. Elles arrivent quand la conversation est comptée comme du temps perdu, alors que c'est le moment où le travail est spécifié.
Une équipe qui ne peut pas se réunir a besoin d'écrire davantage : sans la Conversation, la card seule est un document plus faible qu'une spécification. L'agilité déplace du temps, elle n'en fait pas gagner. Le temps de rédaction et de relecture passe dans la conversation, et une organisation qui coupe les deux perd les deux.