USER STORIES de A à US
ou Comment comprendre et s’améliorer dans la rédaction des User Stories ?
Sommaire :
> Les origines des User Stories
> Définition d’une User Story
> Méthode INVEST
> Erreurs à éviter
Présentation en libre téléchargement , créée par Martial SEGURA
A l’origine de l’Histoire, il y avait les dinosaures…
Ce n’est pas à proprement parler un élément du framework Scrum, cette pratique nous vient de l’Extreme Programming, mais elle est largement utilisée dans le cadre de projets menés en Scrum au point de devenir la référence de nombreuses formations certifiantes.
3C : CARD + CONVERSATION + CONFIRMATION (ce qui fait que la user story sera done)
Les pratiques Agile sont orientées autour de l’utilisateur final. Il est au centre de la démarche.
On raconte notre histoire avec les User Stories.
On présente notre histoire avec le résultat : le produit.
Ron Jeffries est un informaticien américain né en 1939 et un des trois fondateurs de l'Extreme programming (XP) créé en 1996, avec Kent Beck et Ward Cunningham. Il est l'un des 17 signataires du Manifeste Agile.
Ce n’est donc ni un besoin, ni une solution, la User Story est une conversation.
La user-story est un formalisme pour décrire une fonctionnalité du point de vue de l’utilisateur.
Ca semble très simple, mais le but est justement de réduire la forme à l’essentiel pour se concentrer sur la valeur.
La phrase :
En tant que = l’utilisateur qui reçoit la valeur (pas nécessairement celui qui fait l’action) « QUI »
Je veux = l’action qui doit être menée (~ la solution utilisateur / verbe infinif) « QUOI »
Afin de = le but de l’action (~ le besoin utilisateur) « POURQUOI »
ID / Titre (verbe infinitif) / Valeur métier / Epic ou Thème / Règles gestion / Wireframe / Pré-requis / Contexte / Complexité tech
Méthode Gherkins :
Give <some initial context>
When <something happens>
Then <some expectation>
Le BDD (Behavior Driven Development) est une méthodologie agile proposée par Dan North pour aller au delà du TDD (Test Driven Development). Cette méthodologie a pour objectif d’améliorer la compréhension et la collaboration du métier, du Product Owner, des développeurs, des testeurs et de toute autre partie prenante pertinente en les rassemblant autour d’un langage commun : le Gherkin.
Vous voulez être aussi fort que Hulk ?
I – Indépendante : elle doit se suffire à elle-même, car les dépendances avec d’autres user stories induisent des problématiques de testabilité et de planification.
N – Négociable : elle doit amener à la discussion et peut-être modifiée jusqu’à son inclusion dans une itération.
V – Valeur : elle doit apporter de la valeur à l’utilisateur final. La notion de valeur étant toujours difficile à évaluer, la user story doit être exprimée avec une vision de l’objectif recherché pour l’utilisateur.
E – Estimable : elle doit être suffisamment claire et comprise par l’équipe pour que celle-ci soit en capacité de l’estimer.
S – Small : elle doit être de taille assez petite pour prioriser de façon sûre et éviter les effets tunnels. Essayez donc au maximum de découper finement vos user stories.
T – Testable : la user story doit raconter une histoire, dont les tests découlent de façon évidente.
INFO : The INVEST mnemonic was created by Bill Wake[1] as a reminder of the characteristics of a good quality user story
Une "erreur" classique consiste à partir d'un cahier des charges rédigé en amont et le découper en User Stories en s'appuyant sur sa structure textuelle.
Cela peut être une bonne approche pour une équipe débutante mais ne constitue pas une pratique recommandée.
Reco : organiser des ateliers Vision, Personas, User Story Mapping et Roadmap avec les parties prenantes
Ne doit pas être un découpage technique: un écran, une boîte de dialogue, un bouton ne sont pas des User Stories.
Une User Story ne correspond pas à un quelconque découpage technique.
Reco : Changez la formulation pour raconter une histoire !
Le niveau de détail évolue au fil du temps, en fonction de l'horizon de planification :
une User Story dont la réalisation est prévue dans plusieurs sprints ne sera décrite que d'une brève phrase, alors qu'une User Story dont la réalisation est imminente doit être enrichie par des tests fonctionnels, des critères d’acceptations, des exemples, des maquettes, etc.
Les User Stories sont beaucoup trop précises, jusqu’aux moindre détails
Exemple : un champs par user story pour chaque élément le constituant.
Reco : Echanger avec les développeurs pour connaitre le niveau de détail attendu dans les users stories.
Les User Stories sont beaucoup trop précises, jusqu’aux moindre détails
Exemple : un champs par user story pour chaque élément le constituant.
Reco : Echanger avec les développeurs pour connaitre le niveau de détail attendu dans les users stories.
La User Story est beaucoup trop grosse pour entrer dans un sprint
Une story trop grosse pour entrer dans un sprint est une Epic.
N’hésitez pas à redécouper vos grosses stories même si elles tiennent dans un sprint.
Cela facilitera le suivi, les tests, et le niveau de confiance sur l’atteinte des objectifs du sprint.
Reco : Pour manger l’éléphant, il faut donc le couper en tranche
Pas dans la doc Scrum classique. C’est une règle de routards de l’agilité, issue de l’expérience.
Cette règle va encore plus loin que la précédente dans la mesure où elle nous demande de découper les stories à un grain suffisamment fin pour en prendre plus de 4 dans un sprint.
Il faut qu’un développeur puisse travailler sur plus qu’une story pendant le sprint.
Si une story occupe un développeur sur la totalité du sprint, il se crée un effet tunnel qui risque de mettre le sprint en péril.
Les estimations c’est un peu le jeu des devinettes. Nous savons qu’elles sont globalement vraies mais précisément fausses. Cette marge d’erreur peut conduire à ne pas pouvoir terminer une story dans le sprint où nous la planifions.
Si vous ne prenez que 4 stories dans un sprint et que vous n’en terminez pas une, c’est 1/4 de l’objectif qui n’est pas réalisé. Ce qui est relativement important, à plus forte raison si la story est de taille importante.
« done », ou « not done »
Pas enseignée dans de nombreuses formations agiles.
Passage en force mettent à mal la Définition du Done (DoD), qui est pourtant un élément essentiel de confiance entre le PO et l’équipe. C’est également un élément de mesure dans Scrum car elle contribue au calcul de la vélocité.
Mettre à mal sa DoD est une promesse de complications à court terme.
Que faire alors avec ces stories « not done » ?
OUI, reporter l’intégralité des points totalement les points, quel que soit l’état d’avancement des stories concernées. Bien souvent, celles-ci avaient de toute façon été sous-estimées. Si l’on ne reporte pas les points, on risque de sous-estimer le contenu du sprint suivant, et donc de se retrouver à nouveau avec des stories non terminées. Et progressivement, sprint après sprint, on se construit un matelas de stories « not done » qui prend du volume. Très vite, la vélocité ne signifie plus rien, donc les projections ne signifient plus rien, donc le PO ne comprend plus l’avancement, et tout ça risque de se terminer en un vaste règlement de comptes.
Pour résumer : je ne compte pas une story « not done » dans la vélocité constatée d’un sprint, et je la compte entièrement dans les points prévus pour le sprint suivant, sachant que ce total de points doit être toujours cohérent avec la vélocité constatée des derniers sprints. Cette méthode peut paraître un peu radicale (ou inutile pour les détracteurs de la vélocité), mais l’impact ne sera jamais vraiment significatif car toutes vos stories prises dans le sprint sont suffisamment petites pour éviter les grosses variations de vélocité.
Bien que la comparaison entre les deux notions soit souvent utile, il n'est pas possible d'établir un lien simple et direct.
User Story = brève description d’une fonctionnalité telle que vue par l’utilisateur
Use Case = représente une séquence d’actions qu’un système ou tout autre entité peut accomplir en interagissant avec les acteurs
Une User Story est une promesse de conversation et le Use Case est un enregistrement de la conversation
« a story is a promise to have a conversation and a use case is the record of the conversation”.
Ne soyez pas dogmatique !
L’équipe sait ce dont elle a besoin pour commencer à travailler.
C’est donc elle qui va pouvoir dire si une user story est prête ou non, et ce quelque soit son formalisme !
Dans certaines équipes, la user story réduite à son stricte minimum suffira, dans d’autres, la user story ressemblera à une mini spécification.
La longueur d’une user story peut refléter la distance qui sépare l’équipe de son Product Owner.