1. USER STORY
Yannick Quenec’hdu
yquenechdu@gmail.com
vendredi 24 juin 2011
2. AGENDAS
• Qu'est-ce qu’une user story
• Modéliser le rôle de l’utilisateur
• Écrire des user stories
• INVEST(IR) dans une bonne user story
• Les story ne sont pas ...
• Pourquoi des user story
vendredi 24 juin 2011
3. Des spécifications de mauvaises qualités
Les spécifications de mauvaises qualités sont souvent mentionnées comme l’une
des principales causes de l'échec d’un projet
1. Qu’elle est le processus qui engendre des spécifications de mauvaises
qualités .
2. Quels sont les problèmes qui résultent d’une spécification de
mauvaise qualité ?
vendredi 24 juin 2011
4. AGILE ET LES USERS STORIES
Agile est associé à l'expérience utilisateur
On raconte une histoire : User stories
On montre notre histoire : Prototype
vendredi 24 juin 2011
5. u’est ce q u’une
Q
s tor y
vendredi 24 juin 2011
6. RON JEFFRIES LES TROIS C
•Les story sont traditionnellement écrits sur des
cartes
Carte
•Les cartes peuvent être annotées avec des
estimations, commentaires, etc.
Les détails derrières les cartes peuvent être étudiés
Conversation
durant les conversations avec le product owner
La validation des tests confirme que les story
Confirmation
ont été développés correctement
vendredi 24 juin 2011
7. EXEMPLE DEPUIS UN SITE DE VOYAGES
je suis
je suis un un voy
ageur,
, je veux
utilisateur hôtel
je veux
voir les
photos
rés er ver un de l'hô
tel
je suis un ut
ilisateur, je Comme je suis un vo
veux annule yageur
r une fréquent, je veux faire
réser vation une
nouvelle réser vation
d’un
voyage déjà effectué,
SP : 8 pour
gagner du temps
BV : 1
SP : 5
BV : 2
vendredi 24 juin 2011
8. UNE RECOMMANDATION
Utiliser ce masque
Je suis « Rôle de l’utilisateur »,
je veux « But »,
les « conditions » pour ...
vendredi 24 juin 2011
9. QUELS SONT LES DÉTAILS ?
• Je suis un utilisateur, je veux annuler une réservation
• Le client reçoit un remboursement complet ou partiel
- Je rembourse directement sur son compte ou à l’intermédiaire
• Comment doit fonctionner l’annulation d’une réservation ?
- C’est le même principe pour tous les hôtels ?
- Un voyageur fréquent peut-il annuler après sa réservation
• Une confirmation est adressée à l’utilisateur ?
- Comment ?
vendredi 24 juin 2011
10. LES DÉTAILS SONT AJOUTÉS EN PETITES USER STORIES
Je suis un utilisateur
premium, je peux
annuler une
réservation à la
dernière minute
je suis un Je ne suis pas un
utilisateur, je veux utilisateur premium, je
annuler une peux annuler ma
réservation réservation 24 hrs à
l’avance
Je suis un partenaire,
j’adresse un courriel
pour annuler toutes
mes réservations
vendredi 24 juin 2011
11. LES DÉTAILS SONT AUSSI UNE CONDITION DE
SATISFACTION
• Le product owner peut ajouter aux users stories des
conditions de satisfaction
• Ce sont essentiellement des vérifications
je suis un
utilisateur, je
veux annuler Vérifier qu’un premium peut annuler
une réservation le jour même sans charge supplémentaire
Vérifier qu’un non-premium paye 10%
du montant en cas d’annulation le jour de
sa réservation
Vérifier qu’il y a bien un courriel qui
est adressé en cas d’annulation
Vérifier que l'hôtel est bien notifié de
l’ensemble des annulations
vendredi 24 juin 2011
12. UN EXEMPLE DE JEUX DE DÉVELOPPEMENT
Je suis un joueur, je veux
que les ennemis aient une
réaction physique quand je
les touche
Un ennemi bascule sur la gauche
quand je le touche sur la gauche et sur la
droite quand je le touche sur la droite
Un ennemi bascule vers l’avant quand
je le touche au centre
Un ennemi tombe en arrière quand je
le touche à la tête
vendredi 24 juin 2011
13. LES TECHNIQUES PEUVENT ÊTRE COMBINÉES
• Ces approches ne s’excluent pas mutuellement
• Il faut essayer d’écrire les user stories à un niveau de détails
approprié et de favoriser les conditions de satisfaction
• Au moment où elles seront mises en oeuvre, chaque user
stories devra avoir une condition de satisfaction qui lui sera
associée
• Permet de vérifier la user story
vendredi 24 juin 2011
14. le rô le de
Modéliser
l ’utilisateur
vendredi 24 juin 2011
15. LE RÔLE UTILISATEUR
• Élargir le périmètre de recherche à plus d’un utilisateur
• Étudier les variations des utilisateurs :
- Comment il utilise le logiciel
- Pourquoi il utilise le logiciel
- Est-il familiarisé avec les ordinateurs
- Connaît-il le contexte métier de l’application
• Utiliser intensivement la conception centrée sur l’utilisateur
vendredi 24 juin 2011
16. LE PERSONA
Pour améliorer la satisfaction des utilisateurs, nous favorisons la
conception centrée sur l’utilisateur
Le Persona est un élément important de la conception centrée
sur l’utilisateur
Le persona est représente un personnage imaginaire, il permet
de représenter un groupe d’utilisateur
vendredi 24 juin 2011
18. EXEMPLE DE PERSONA :
DE LA BANQUE ILIKEYOURMONEY
• Les rôles utilisateurs
• Chef de famille
• Indépendant
• VIP
• Innovateur
• Phobique
vendredi 24 juin 2011
19. RÔLE À HAUTE VALEUR
• Chef de famille
- Fait attention aux revenus de la famille. Aime ses enfants, se préoccupe de
leur éducation et de leur santé. Typiquement conservatrice
• Phobique
- N’aime pas les investissements et ne les comprends pas
• Indépendant
- Veux sa liberté et son indépendance financière
• Anonyme
- Extrêmement privé, ne veux donner aucune information. Très loyale une fois
la confiance acquise
vendredi 24 juin 2011
20. RÔLE À TRÈS HAUTE VALEUR
• Le nabab
- Recherche le pouvoir, l’influence et le contrôle. Investi d’une autre manière pour
montrer sa différence et son importance
• VIP
- il veut du prestige, il veut investir pour acheter des biens
• Accumulateur
- Vie au dessous de ses moyens et ne montre pas de signe extérieur de richesse
• Parieur
- Investi pour l’excitation, le drame et les performances des résultats
• innovateurs
- Aime les nouveaux produits, stratégies et services. Possède une culture technique
vendredi 24 juin 2011
21. BRAINSTORMING DU RÔLE UTILISATEUR
Exemple de déroulement d’une réunion de brainstorming
• Participants : clients, développeurs, toutes les personnes à valeurs
ajoutées qui comprennent le produit attendu par l’utilisateur
✓ Tout le monde prend un jeu de cartes
✓ Écrire le nom des rôles sur les cartes
- Le plus rapidement possible et sans jugement
- Pas de tour
- Placer les cartes sur la table
- Donner des noms aux rôles
vendredi 24 juin 2011
22. ORGANISER, CONSOLIDER, AFFINER
étudiant
Recruteur
Chercheur Chasseur de
Enseignant têtes
chômeur Admin sys
sans emploi
Développeur
vendredi 24 juin 2011
23. BRAINSTORMING DU RÔLE UTILISATEUR
Vous êtes un célibataire, vous abonnez à un site de
rencontre :
- Vous chercher des femmes célibataires
- Dans la même, tranche d'âge que vous
- avec ou sans enfants
- Avec un objectif de se rencontrer rapidement
1. Étudier le rôle utilisateur qui interagit avec le site
2. Organiser, consolider, affiner plusieurs modèles de
rôle pour ce site
vendredi 24 juin 2011
24. AVANTAGES D’UTILISER LES RÔLES
Nous faisons parler « un passager
Au lieu de faire parler
fréquent » ou « un voyageur
l’utilisateur
sporadique »
L’utilisateur devient Penser le logiciel en pensant à ce dont
tangible l’utilisateur a besoin
Intégrer le rôle dans Je suis «Role utilisateur», je veux «But»
une user story avec comme bénéfice...
vendredi 24 juin 2011
25. BÉNÉFICES
Les Personnages servent de fil rouge au projet
• Le format est plus engageant et apporte le
STORYTELLING
• L’information est spécifique: ce n’est plus «80% de
femme», «entre 25 et 35 ans», …. c’est Sophie, 32ans,
Assistante Marketing
• L’accent est mis sur les BUTS & Comportements
utilisateurs
• Les bénéfices sont réels et bien plus étendus que sur les
autres formats: VISION partagée, PRIORISATION,
DESIGN D’INTERFACE, mais aussi potentiellement
communication, formation, commerce et activités
marketing.
vendredi 24 juin 2011
26. UTILISATEUR SYSTÈME OU DÉVELOPPEUR
Dans le système de
vérification de paiement, je
veux que toutes les
transactions soient
formatées en XML
En tant que programmeur,
je veux une API pour
supprimer les widget en
base de données
vendredi 24 juin 2011
27. r une user
R édige
s tor y
vendredi 24 juin 2011
28. L’ICEBERG DU PRODUIT BACKLOG
Sprint
Release Priorité
Future
Release
vendredi 24 juin 2011
29. L’ICEBERG DU PRODUIT BACKLOG
User Story
Thèmes
Une description des
user stories souhaitées
Une collection de en se positionnant
user stories sur le dans une perspective
même thème utilisateur
Epic
Des user stories macro
vendredi 24 juin 2011
30. Un exemple
Je suis un musicien, je veux
afficher les musiques par
catégorie qui ont le mieux
marché dans une période
de temps précise
Je suis un musicien, je veux
gérer mes morceaux de
musique Epic ?
Je suis un musicien, je veux
Clairement une Epic sélectionner une catégorie
de musique selon un type
de format (audio, vidéo,
etc.) sur une période de
temps précise.
vendredi 24 juin 2011
31. Un exemple
Je suis un musicien, je veux
obtenir la liste des
musiques au format audio
pour une période de
temps précise
Je suis un musicien, je
veux obtenir la liste des
musiques au format vidéo
pour une période de
temps précise
...
vendredi 24 juin 2011
32. TERMINER, EN AJOUTANT LES CONDITIONS DE
SATISFACTION
Je suis un musicien, je veux
afficher les musiques les plus
populaires par catégorie dans
une période de temps précise
• Afficher le nombre d’albums
vendus par musique
• Afficher le nombre d’écoutes
par musique
vendredi 24 juin 2011
33. Un autre
exemple
Je suis un joueur, je veux
jouer en ligne en mode
multiplayer, je me
connecte à internet et je
peux jouer contre d’autres En tant que joueur, je
joueurs veux avoir accès à un
espace central pour
Clairement une epic consulter les parties qui
me sont disponibles et
pouvoir rejoindre celle
que je veux
Epic ?
vendredi 24 juin 2011
34. Un exemple
Je suis un joueur et je veux
savoir le nombre de
joueurs qui sont dans la
partie en cours
Je suis un joueur, je veux
rejoindre la partie en
cours
Je suis un joueur, je veux
démarrer une nouvelle
partie
vendredi 24 juin 2011
35. ATELIER D’ÉCRITURE DES USER STORIES
SPRINT 0
• Participants : product owner, utilisateurs, client, équipe, etc.
• Réflexion pour générer les users stories
• Le but est d’écrire le plus grand nombre de user stories
- Commencer avec les fonctions macro (EPIC)
- travailler sur les détails pour les users stories qui seront
développées prochainement
• Pas de gestion des priorités pour le moment
Se référer à la présentation Sprint 0 pour plus de détails
vendredi 24 juin 2011
36. CRÉER DES HISTOIRES
Je me nomme Jacques, je voudrais étudier le droit à la faculté. Mon ami
Marie m’a conseillé d’utiliser le formulaire d’inscription que la faculté
propose sur son site Internet. Elle me dit qu’une fois que j’aurais déposé
mon formulaire, un responsable de la faculté ira l’étudier et
éventuellement le valider, ainsi j’aurais rapidement une réponse à mon
inscription
Je traduis en user stories
Je suis un étudiant, je Je suis un responsable,
veux je veux
remplir un dossier consulter les
d’inscription inscriptions en attentes
Je suis un
Je suis un étudiant, je responsable, je veux
veux connaître le valider/rejeter les
statut de mon dossier inscriptions
vendredi 24 juin 2011
37. COMMENCER MACRO (EPIC) ET ITÉRER
Je suis un voyageur fréquent,
je veux réserver un vol en
je suis un Voyageur utilisant mes miles
fréquent, je veux
pouvoir contrôler mon
compte je suis un voyageur fréquent,
je veux faire une nouvelle
réservation d’un voyage déjà
Voyageur Je suis un voyageur effectué
fréquent, je veux
fréquent réserver un vol
Je suis un voyageur fréquent,
je veux faire une mise à jour
Je suis un voyageur
fréquent, je veux ...
Je suis un voyageur fréquent,
je veux voir si ma mise à jour
à bien été prise en compte
vendredi 24 juin 2011
38. UTILISER LE CHEMIN DE PENSÉE (MINDMAP)
Lorgner les
Retrouver le hommes
profil des gens
que je connais
Un groupe Trouver une date
de femmes
Trouver une
relation Décider qui
rejoins le site
vendredi 24 juin 2011
39. UNE AUTRE APPROCHE
• Utiliser un autre type d’interface utilisateur (le papier)
• Question ouverte ou fermée, des questions hors contextes :
- Quelles informations complémentaires l’utilisateur a besoin ?
- Quelles erreurs l’utilisateur pourrait faire ?
- Qu'est-ce qui pourrait engendrer la confusion chez l’utilisateur ?
- Qu’est ce que va faire généralement l’utilisateur à la prochaine étape ?
• Considérer ces questions pour chaque rôle utilisateur
vendredi 24 juin 2011
40. IN VES T(IR)
ans u ne b onne
d
h istoire
vendredi 24 juin 2011
41. COMMENT FAIRE UNE BONNE STORY
•I - Indépendant
•N - Négociable
•V - Valeur
INVEST
•E - Estimable
•S - Size (Taille)
•T - Testable
vendredi 24 juin 2011
42. INDÉPENDANT
• Éviter d’introduire des dépendances
• Conduit à une difficulté de la définition des priorités et de
planification
Je suis un client, je peux
payer mes articles de
mon panier avec ma - La première histoire prendra 3 jours
carte VISA pour être développée
Je suis un client, je peux - ça n’a pas d’importance qui est la
payer mes articles de
mon panier avec ma
première
carte Mastercard - Les autres prendront 1 jour
Je suis un client, je peux
payer mes articles de
pour chaque
mon panier avec ma
carte American Express
vendredi 24 juin 2011
43. RENDRE LES USER STORIES INDÉPENDANTES
Je suis un client, je veux payer avec ma
Combiner les histoires
carte de crédit
• Je suis un client, je veux payer avec un
Les découper au travers premier type de carte de crédit
de différentes dimensions • Je suis un client, je veux payer avec un
deuxième type de carte de crédit
Écrire deux estimations et
3 jours c’est bon pour commencer
passer à autre chose
vendredi 24 juin 2011
44. QUAND EST-IL DE CETTE APPROCHE
•Je suis un développeur, j’ai besoin de coder
l’architecture pour le processus de carte de
extraire les éléments crédit
techniques communs •Je suis un client, je peux payer avec une carte
visa
•Je suis un client, je peux payer avec une carte
Mastercard
•Je suis un client, je peux payer avec une carte
Amercian express
- Parfois nécessaire, mais
ce n’est pas l'idéal
- Pourquoi ?
vendredi 24 juin 2011
45. NÉGOCIABLE
Une user story n’est pas un contrat
• Il n’est pas nécessaire d’inclure tous les détails
• Laisser une flexibilité sur certaines user stories qui seront
étudiées durant les itérations
vendredi 24 juin 2011
46. QU'EST-CE QUI EST LE PLUS NÉGOCIABLE
1
Une boîte de dialogue permet aux utilisateurs d’éditer la
liste des imprimantes. La boîte de dialogue permet aux
utilisateurs d’ajouter ou de supprimer des imprimantes. Un
utilisateur peut ajouter une imprimante par une recherche
automatique ou manuelle par le biais d’une adresse DNS ou
d’une adresse IP. Une recherche avancée optionnelle
permet de filtrer les imprimantes par adresse IP ou par le
masque de réseau
vendredi 24 juin 2011
47. 2
Je suis un utilisateur, je
peux ajouter une
imprimante à ma liste
d’imprimante
Recherche automatique
Recherche manuelle par adresse IP
Recherche manuelle par adresse DNS
Remarque : J’ai plusieurs autres approches pour
ajouter une imprimante. Venez me voir si vous
avez le temps
vendredi 24 juin 2011
48. VALEUR
Je suis un utilisateur, je veux rechercher
Utilisateurs un emploi par fonction et par liste
décroissante de salaire
•Je suis un sponsor de ce projet, je veux qu’il
passe un audit ISO9001
•Je suis un sponsor de ce projet, je veux une
Clients documentation conforme CMMI niveau 3
•Je suis un admin. système, je veux que
toutes les informations de configuration
soient centralisées dans un lieu précis
vendredi 24 juin 2011
49. UNE USER STORY ÉVALUÉE PAR UN DÉVELOPPEUR
• Elle doit être réécrite pour montrer le bénéfice pour les
utilisateurs et les clients
Je suis un acheteur de ce
Toutes les connexions à
système, je veux que ce
la base de données
système soit utilisable pour 50
doivent passer par un
utilisateurs avec 5 licences
pool de connexions
utilisateurs
vendredi 24 juin 2011
50. La réécrire en tant que user stories
Je suis
Refactorer le système
je veux
de paiement
et ...
Refactoring
Pour modifier la structure, mais
pas le comportement du code
vendredi 24 juin 2011
51. ESTIMABLE
• Parceque les user stories sont utilisées dans le planning
• Une user stories peut ne pas être estimable si :
Je suis un nouvel
Le développeur connaît utilisateur, j’ai besoin
peu le domaine d’un écran pour les
fonctionnel diabétiques
Je représente tous les
Le développeur connaît utilisateurs, je veux faire un
peu le domaine technique zoom sur la carte sans
aucun délai
La user stories est trop Je suis un chômeur, je
grosse recherche un emploi
vendredi 24 juin 2011
52. TAILLE APPROXIMATIVE
• Des petites user stories pour un futur proche
• Macro (Epic) pour les prochaines
• Les user stories sont progressivement affinées dans le temps,
plus elles s’approchent de la fin,
• Deux types de grandes user stories
- Les user stories complexes : intrinsèquement grande et sans
possibilités de les réduire
- Les user stories combinées : Plusieurs user stories combinées
en une seule
vendredi 24 juin 2011
53. USER STORIES COMBINÉES
• Un Epic comprend de multiples petites histoires
• Qui cachent souvent un grand nombre d’hypothèses
•Pour déposer un objet à vendre, vous
devez fournir plusieurs informations
concernant cet objet (description, nom, date
Je suis un vendeur, je de fin de la vente, etc.)
peux déposer des
objets à vendre
• Certains éléments sont obligatoires,
d’autres sont optionnelles
•Les éléments peuvent être mis à jour une
fois qu’ils ont été déposés
• Une vente peut être annulée
vendredi 24 juin 2011
54. DÉCOUPER EN HISTOIRE COMBINÉE
Découper en groupe opérationnel (CRUD)
• Je suis un vendeur, je peux créer une nouvelle vente
• Je suis un vendeur, je peux mettre à jour une vente
• Je suis un vendeur, je peux supprimer mes ventes
vendredi 24 juin 2011
55. DÉCOUPER EN HISTOIRE COMBINÉE
Découper en données opérationnelles
• Je suis un vendeur, je peux créer et mettre à jour une
vente
• Je suis un vendeur, je peux ajouter, supprimer, mettre
à jour une photo dans une vente
vendredi 24 juin 2011
56. TESTABLE
• Un test démontre que la user stories correspond aux besoins
du client
• Automatiser, automatiser, automatiser
Un utilisateur veut Je suis un novice, je
trouver un logiciel dois être capable de
facile à utiliser créer un workflow
simple sans formation
Un utilisateur ne doit Je suis un utilisateur, je
jamais attendre dois voir un nouvel écran
longtemps que en moins de 2 secondes
l’écran apparaisse 95% du temps
vendredi 24 juin 2011
57. stori es ne
Les user s
son t pas
vendredi 24 juin 2011
58. UNE USER STORY N’EST PAS ....
• IEEE 830 Spécifications des exigences logiciel
- « Le système doit... »
• Les cas d’utilisation
vendredi 24 juin 2011
59. PROBLÈME AVEC IEEE 830
• Le temps consommé pour écrire et lire
• Fastidieux à lire
- Le lecteur parcourt ou saute des sections
• Considère que tout est connu d’avance
Feedback
Spécification Logiciel
vendredi 24 juin 2011
60. IEEE 830 SPÉCIFICATION DES EXIGENCES LOGICIEL
• Le produit doit avoir un moteur à essence
• Le produit doit avoir quatre roues
• Le produit doit être construit en fer
• Le produit doit avoir un siège pour s’asseoir
Ce n’est pas une voiture, mais une
tondeuse à gazon !!
vendredi 24 juin 2011
61. LES USER STORIES NE SONT PAS DES CAS
Titre : Accepter une réservation pour une chambre
Premier acteur : Acheteur
...
Scénario nominal :
1. L’acheteur soumet son numéro de carte de crédit, la date de
péremption et les informations associées à son identité
2. Le système valide les données
3. Le système débite la carte de crédit du montant d’une nuit d’hôtel
4. L’acheteur reçoit un numéro de confirmation
vendredi 24 juin 2011
62. LES USERS STORY NE SONT PAS DES CAS
Scénario alternatif :
2a. La carte n’est pas acceptée par le système | Le système le notifie au
client
2b. La carte est expirée | Le système le notifie au client et propose
d’utiliser une autre carte
3a. Le paiement par carte est refusé
a. Le système refait un nouvel essai
b. Le système propose à l’utilisateur d’utiliser une autre carte
vendredi 24 juin 2011
63. DIFFÉRENCE ENTRE USER STORIES ET CAS
• Le périmètre
• Exhaustivité
• Longévité
• Objectif
• Cas d’utilisation
- Document d’acception entre le client et les développeurs
• Story
- Écrit pour faciliter le planning de release et des itérations
- Des espaces réservés pour de futures conversations
vendredi 24 juin 2011
64. i des user
Pou rquo
stories
vendredi 24 juin 2011
65. POURQUOI DES USER STORIES
• Mettre l’accent de l'écriture vers la communication orale
SI les spécifications sont Alors L’utilisateur aura ce qu’il
écrites veut
Nous développons ce qu’il a Au mieux, il aura ce qui
demandé, mais ce n’est pas ce est écrit
qu’il veut
vendredi 24 juin 2011
66. LES MOTS SONT IMPRÉCIS
L’entrée est constituée d'une
soupe ou d’une salade avec
du pain
• (Soupe ou salade) avec du pain
• (Soupe) ou salade avec du pain
vendredi 24 juin 2011
67. UN AUTRE EXEMPLE
« J’ai écrit ce scénario, il y a un an et le
studio n’a pas changé un mot »
« Le mot qu’ils n’ont pas
changé est en page 87 »
Steve Martin
vendredi 24 juin 2011
68. DES RAISONS SUPPLÉMENTAIRES
• Les user stories sont compréhensibles
- Les développeurs et les clients les comprennent
- Les gens ont de meilleures capacités à les retenir s’ils sont
organisés sous forme de user stories
• Support et encourage le développement itératif
- Il est plus facile de partir avec un Epic et de les décomposer
quand le temps du développement approche
vendredi 24 juin 2011
69. ENCORE D’AUTRES RAISONS
• Les user stories ont les bonnes tailles pour les plannings
• Les user stories supportent un développement opportuniste
- Nous concevons une solution de manière opportuniste en
allant vers une approche «du haut vers le bas» et «du bas
vers le haut»
• Les user stories supportent la conception participative
vendredi 24 juin 2011