Logo Martin FowlerJ'ai traduit un billet intéressant de Martin Fowler "ConversationalStories".

Je parle ici d'une idée fausse très répandue dans les méthodes agiles. Elle se base sur la façon dont les user stories sont créées et communiquées au développement. La fausse idée est que le product owner (ou analyste métier) crée des user stories puis les présente aux développeurs pour qu'ils les mettent en œuvre. Cela repose sur la notion d'un flux s'écoulant du product owner vers le développement, le product owner ayant la responsabilité de déterminer ce qui doit être fait et les développeurs la responsabilité de savoir comment le faire.

Décrété

Une justification de cette approche est qu'elle sépare les responsabilités selon la compétence. Le product owner connaît le métier, l'objectif du logiciel et donc sait ce qui doit être fait. Les développeurs connaissent la technologie et savent comment faire les choses donc comment satisfaire les exigences du product owner.

Cette idée du product owner arrivant avec des Stories auto-décrétées marque une profonde incompréhension de la manière dont le développement agile devrait fonctionner. Lorsque nous avons brainstormés à Snowbird pour trouver un terme, je me souviens que Kent avait suggéré "conversation". Cela souligne le fait que le cœur de notre réflexion était bien d'avoir une conversation entre les clients et les développeurs sur la façon dont un projet de développement devrait être mené.

Conversation

Et le fait d'arriver avec des stories signifiait qu'elles devaient dans tous les cas être affinées par la conversation et que les développeurs devaient y jouer un rôle actif :
- En repérant les incohérences et les lacunes dans les stories
- En utilisant leurs connaissances techniques pour proposer des nouvelles stories qui semblent correspondre à la vision du product owner
- En proposant d'autres stories potentiellement moins coûteuses à mettre en place compte tenu du contexte technologique
- En découpant les stories pour les rendre plus faciles à planifier ou à implémenter.

C'est le principe de Négociation énoncé par Bill Wake avec INVEST. Tout membre d'une équipe agile peut créer des stories et proposer des modifications. Il est possible que seulement quelques membres d'une équipe travaillent réellement à l'écriture de la majorité des stories. C'est à l'équipe de s'auto-organiser sur la manière dont elle veut que cela se passe. Même si c'est le cas, tout le monde devrait se sentir impliqué pour affiner les stories (cette implication vient s'ajouter à la responsabilité des développeurs d'estimer les stories).

Le product owner a une responsabilité particulière. Au final, le product owner est le décideur final pour les stories et notamment leur priorisation. Cela indique bien que le product owner doit être la meilleure personne pour apprécier cette caractéristique insaisissable qu'est la valeur métier. Mais disposer d'un décideur final ne devrait jamais empêcher les autres de participer, et ne devrait surtout pas les égarer dans un modèle où les stories sont auto-décrétées.