Upload
quenechdu-yannick
View
15.337
Download
1
Embed Size (px)
DESCRIPTION
Présentation sur les user story pour les méthodes Agile. La version PDF est accessible depuis mon blog :
Citation preview
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
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
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
Qu’est ce qu’une
story
vendredi 24 juin 2011
RON JEFFRIES LES TROIS C
Carte
•Les story sont traditionnellement écrits sur des cartes•Les cartes peuvent être annotées avec des estimations, commentaires, etc.
Conversation
Confirmation
Les détails derrières les cartes peuvent être étudiés durant les conversations avec le product owner
La validation des tests confirme que les story ont été développés correctement
vendredi 24 juin 2011
EXEMPLE DEPUIS UN SITE DE VOYAGES
je suis un
utilisateur, je veux
réserver un hôtel
je suis un utilisateur, je veux annuler une réservation
SP : 8BV : 1
je suis un voyageur, je veux voir les photos de l'hôtelComme je suis un voyageur fréquent, je veux faire une nouvelle réservation d’un voyage déjà effectué, pour
gagner du temps
SP : 5BV : 2
vendredi 24 juin 2011
UNE RECOMMANDATION
Je suis « Rôle de l’utilisateur », je veux « But »,
les « conditions » pour ...
Utiliser ce masque
vendredi 24 juin 2011
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
LES DÉTAILS SONT AJOUTÉS EN PETITES USER STORIES
je suis un utilisateur, je veux
annuler une réservation
Je suis un utilisateur premium, je peux
annuler une réservation à la dernière minute
Je ne suis pas un utilisateur premium, je
peux annuler ma réservation 24 hrs à
l’avance
Je suis un partenaire, j’adresse un courriel pour annuler toutes
mes réservations
vendredi 24 juin 2011
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
une réservation Vérifier qu’un premium peut annuler
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
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
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
Modéliser le rôle de
l’utilisateur
vendredi 24 juin 2011
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
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
UNE CARTE PERSONA
vendredi 24 juin 2011
• Les rôles utilisateurs
• Chef de famille
• Indépendant
• VIP
• Innovateur
• Phobique
EXEMPLE DE PERSONA : DE LA BANQUE ILIKEYOURMONEY
vendredi 24 juin 2011
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
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
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
ORGANISER, CONSOLIDER, AFFINER
Chercheur
chômeur Admin sys
Enseignant
RecruteurChasseur de
têtes
Développeursans emploi
étudiant
vendredi 24 juin 2011
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 site2. Organiser, consolider, affiner plusieurs modèles de rôle pour ce site
vendredi 24 juin 2011
AVANTAGES D’UTILISER LES RÔLES
Au lieu de faire parler l’utilisateur
Nous faisons parler « un passager fréquent » ou « un voyageur
sporadique »
L’utilisateur devient tangible
Intégrer le rôle dans une user story
Penser le logiciel en pensant à ce dont l’utilisateur a besoin
Je suis «Role utilisateur», je veux «But» avec comme bénéfice...
vendredi 24 juin 2011
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
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
Rédiger une user
story
vendredi 24 juin 2011
L’ICEBERG DU PRODUIT BACKLOG
Sprint
Release
FutureRelease
Priorité
vendredi 24 juin 2011
Thèmes
User Story
Epic
Une collection de user stories sur le
même thème
Une description des user stories souhaitées
en se positionnant dans une perspective
utilisateur
Des user stories macro
L’ICEBERG DU PRODUIT BACKLOG
vendredi 24 juin 2011
Un exemple
Je suis un musicien, je veux gérer mes morceaux de
musique
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 sélectionner une catégorie de musique selon un type de format (audio, vidéo, etc.) sur une période de
temps précise.
Clairement une Epic
Epic ?
vendredi 24 juin 2011
Un exemple
Je suis un musicien, je veux obtenir la liste des
musiques au format audiopour une période de
temps précise
...
Je suis un musicien, je veux obtenir la liste des
musiques au format vidéopour une période de
temps précise
vendredi 24 juin 2011
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
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 joueurs
Clairement une epic
Epic ?
En tant que joueur, je veux avoir accès à un espace central pour
consulter les parties qui me sont disponibles et pouvoir rejoindre celle
que je veux
vendredi 24 juin 2011
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
ATELIER D’ÉCRITURE DES USER STORIESSPRINT 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
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 suis un étudiant, je veux
remplir un dossier d’inscription
Je suis un responsable, je veux
consulter les inscriptions en attentes
Je suis un responsable, je veux valider/rejeter les
inscriptions
Je suis un étudiant, je veux connaître le
statut de mon dossier
Je traduis en user stories
vendredi 24 juin 2011
COMMENCER MACRO (EPIC) ET ITÉRER
Voyageur fréquent
je suis un Voyageur fréquent, je veux
pouvoir contrôler mon compte
Je suis un voyageur fréquent, je veux réserver un vol
Je suis un voyageur fréquent, je veux ...
Je suis un voyageur fréquent, je veux réserver un vol en
utilisant mes miles
je suis un voyageur fréquent, je veux faire une nouvelle
réservation d’un voyage déjà effectué
Je suis un voyageur fréquent, je veux faire une mise à jour
Je suis un voyageur fréquent, je veux voir si ma mise à jour à bien été prise en compte
vendredi 24 juin 2011
UTILISER LE CHEMIN DE PENSÉE (MINDMAP)
Retrouver le profil des gens que je connais
Trouver une date
Trouver une relation Décider qui
rejoins le site
Un groupe de femmes
Lorgner les hommes
vendredi 24 juin 2011
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
INVEST(IR)
dans une bonne
histoire
vendredi 24 juin 2011
COMMENT FAIRE UNE BONNE STORY
• I - Indépendant
• N - Négociable
• V - Valeur
• E - Estimable
• S - Size (Taille)
• T - Testable
INVEST
vendredi 24 juin 2011
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
carte VISAJe suis un client, je peux payer mes articles de mon panier avec ma
carte MastercardJe suis un client, je peux payer mes articles de mon panier avec ma
carte American Express
- La première histoire prendra 3 jours pour être développée - ça n’a pas d’importance qui est la première - Les autres prendront 1 jour pour chaque
vendredi 24 juin 2011
RENDRE LES USER STORIES INDÉPENDANTES
Combiner les histoires Je suis un client, je veux payer avec ma carte de crédit
Les découper au travers de différentes dimensions
Écrire deux estimations et passer à autre chose
• Je suis un client, je veux payer avec un premier type de carte de crédit
• Je suis un client, je veux payer avec un deuxième type de carte de crédit
3 jours c’est bon pour commencer
vendredi 24 juin 2011
QUAND EST-IL DE CETTE APPROCHE
•Je suis un développeur, j’ai besoin de coder l’architecture pour le processus de carte de crédit•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 ?
extraire les éléments techniques communs
vendredi 24 juin 2011
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
QU'EST-CE QUI EST LE PLUS NÉGOCIABLE
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
1
vendredi 24 juin 2011
Je suis un utilisateur, je peux ajouter une imprimante à ma liste d’imprimante
2
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
VALEUR
Utilisateurs
Clients
Je suis un utilisateur, je veux rechercher 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 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
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
Toutes les connexions à la base de données
doivent passer par un pool de connexions
Je suis un acheteur de ce système, je veux que ce
système soit utilisable pour 50 utilisateurs avec 5 licences
utilisateurs
vendredi 24 juin 2011
La réécrire en tant que user stories
Refactorer le système de paiement
Je suisje veux
et ...
Pour modifier la structure, mais pas le comportement du code
Refactoring
vendredi 24 juin 2011
ESTIMABLE
• Parce que les user stories sont utilisées dans le planning • Une user stories peut ne pas être estimable si :
Le développeur connaît peu le domaine
fonctionnel
Le développeur connaît peu le domaine technique
La user stories est trop grosse
Je suis un nouvel utilisateur, j’ai besoin d’un écran pour les
diabétiques
Je représente tous les utilisateurs, je veux faire un
zoom sur la carte sans aucun délai
Je suis un chômeur, je recherche un emploi
vendredi 24 juin 2011
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
USER STORIES COMBINÉES
• Un Epic comprend de multiples petites histoires
• Qui cachent souvent un grand nombre d’hypothèses
Je suis un vendeur, je peux déposer des objets à vendre
•Pour déposer un objet à vendre, vous devez fournir plusieurs informations concernant cet objet (description, nom, date de fin de la vente, etc.)• 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
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
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
TESTABLE
• Un test démontre que la user stories correspond aux besoins du client
• Automatiser, automatiser, automatiser
Un utilisateur veut trouver un logiciel
facile à utiliser
Un utilisateur ne doit jamais attendre longtemps que
l’écran apparaisse
Je suis un novice, je dois être capable de créer un workflow
simple sans formation
Je suis un utilisateur, je dois voir un nouvel écran en moins de 2 secondes
95% du temps
vendredi 24 juin 2011
Les users stories ne
sont pas
vendredi 24 juin 2011
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
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
Spécification Logiciel
Feedback
vendredi 24 juin 2011
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
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ées3. Le système débite la carte de crédit du montant d’une nuit d’hôtel4. L’acheteur reçoit un numéro de confirmation
vendredi 24 juin 2011
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 client2b. La carte est expirée | Le système le notifie au client et propose d’utiliser une autre carte3a. 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
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
Pourquoi des user
stories
vendredi 24 juin 2011
POURQUOI DES USER STORIES
• Mettre l’accent de l'écriture vers la communication orale
SI les spécifications sont écrites
L’utilisateur aura ce qu’il veut
Au mieux, il aura ce qui est écrit
Nous développons ce qu’il a demandé, mais ce n’est pas cequ’il veut
Alors
vendredi 24 juin 2011
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
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
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
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
QUESTIONS ?
vendredi 24 juin 2011
Usa
ge c
omm
erci
al n
on a
utor
isé
Usa
ge c
omm
erci
al n
on a
utor
isé
vendredi 24 juin 2011