Scrum - Méthodes agiles

lundi 4 août 2008

Un scénario enchaîne des petites histoires

De l'intérêt d'une big picture

Lire la suite -->

flèche Haut de page

mardi 22 avril 2008

Exigences et tests, tests et exigences : un ruban de Möbius

Trouvé via le blog de Karl, un article publié dans le très sérieux magazine IEEE Software qui fait l'hypothèse d'une équivalence entre les tests et les exigences. L'article Tests and Requirements, Requirements and Tests: A Möbius strip, est signé de Grigori Melnik et de Robert C. Martin, le célèbre Uncle Bob.

La référence au ruban de Möbius illustre comment les 2 disciplines (exigences et tests) en deviennent une seule lorsque le formalisme augmente.

Dans l'article, les exemples sont en FIT qui propose une représentation tabulaire des tests exigences. FIT est bien adapté aux tests sur les données [1].

Je suis convaincu de cette hypothèse d'équivalence. L'écriture de tests d'acceptation est une technique de spécification, d'autant plus pertinente que les tests sont associés à des histoires d'utilisateur. Je l'applique maintenant sur tous les projets auxquels je participe, mais en utilisant le formalisme BDD plutôt que FIT. J'en ai déjà parlé ici et .

Notes

[1] je vois dans le dernier exemple que FIT permet aussi de spécifier des scénarios d'accès concurrents à une ressource, il va falloir que j'approfondisse l'utilisation du temps dans FIT

flèche Haut de page

samedi 15 mars 2008

Des spikes dans les sprints

Mercredi, lors de la réunion de planification du sprint que j'animais, nous avons inclus dans le sprint plusieurs spikes. On utilise un spike pour mener des travaux d'étude, d'exploration technique d'un élément (user story) du backlog.

Cela revient à décomposer cet élément en 2 parties[1] :

  • le spike proprement dit, qui est fait au sprint n
  • le développement de l'élément qui sera inclus dans le sprint n+1 (ou pas selon les résultats du spike)

Quand l'utiliser ?

  • Le spike est utilisé quand on ne sait pas estimer une user story. En général, si on ne sait pas l'estimer, c'est qu'on ne connaît pas de solution technique pour cette story.
  • Le spike peut aussi être utilisé pour étudier plusieurs solutions différentes. Dans notre produit, nous avons à intégrer des données d'un décisionnel et il y a plusieurs possibilités pour le faire, le spike va permettre de les étudier.
  • Enfin le spike peut aussi être utilisé quand la story est très grosse et qu'elle ne peut pas être finie en un seul sprint. Dans notre cas, c'était le cas pour la story portant sur la migration des données de l'ancienne application dans la nouvelle. A noter que si la story n'a pas été décomposée avant, c'est probablement parce que la solution technique n'est pas connue ou mal maîtrisée.

Le spike sert à approfondir le comment (la conception), pas le quoi, qui est du ressort du product owner. Donc si on ne sait pas estimer, il faut savoir si c'est par manque de précisons sur le quoi ou par méconnaissance du comment avant de décider de faire un spike.

Quel est le résultat d'un spike ?

On fait un spike pour comprendre comment développer une story. A la fin du sprint incluant un spike, on devrait :

  • avoir défini une solution
  • être capable d'estimer le coût de développement, pour aider le product owner à décider quoi faire de cette story.

Il arrive aussi que le spike amène à décomposer la story initiale en plusieurs autres, plus petites.

Quel est le temps consacré à un spike ?

Un spike est normalement limité à une durée fixée (principe du timeboxing) au début du sprint. La pratique recommandée veut qu'on ne passe pas plus d'une journée de travail (8 heures) sur un spike.

Un nom en français pour spike ?

En anglais un spike est une pointe. En français on pourrait dire une pique, qu'en pensez-vous ?

Notes

[1] c'est donc un autre cas où une exigence/story n'est pas finie en une seule itération après le cas de l'utilisabilité dont j'ai parlé récemment

flèche Haut de page

lundi 10 mars 2008

Tests d'acceptation orientés comportement

Voire même Behaviour Driven Development...

Lire la suite -->

flèche Haut de page

Deux entrées dans le backlog pour une exigence d'utilisabilité

Dans les applications Web, il existe souvent un rôle secondaire qui a accès à des informations seulement en lecture et qui a besoin d'une ergonomie particulière, soit parce que les personnes qui jouent le rôle ne sont pas expertes dans l'utilisation de l'outil informatique, soit parce que les informations doivent constituer un tableau de bord facilement lisible et permettre d'avoir une vue synthétique. L'ergonomie est essentielle et fait que ces exigences ne sont pas des histoires comme les autres.

Je retrouve ce genre d'exigences dans les 3 projets que je suis actuellement. Dans une première approche, elles sont insérées dans le backlog. Pour les identifier, elles sont classées dans la catégorie (thème) Utilisabilité. Leur traitement nécessite une approche spéciale.

En effet, dans les méthodes agiles, un élément du backlog (une histoire d’utilisateur) est censé être fini à la fin d’une itération et donc ses tests passés. Pour ces exigences concernées par l’utilisabilité, la notion de fini ne repose pas sur des tests qu'on peut décrire à l'avance. Les conditions de satisfaction sont la facilité de compréhension, la facilité d’apprentissage et l'attractivité qui s'évaluent en utilisant. Fini signifie obligatoirement passer par du feedback des utilisateurs et cela ne peut généralement pas être fait à l’intérieur d’une itération. Les utilisateurs potentiels, qui apporteront le feedback, doivent obtenir une première version, l’utiliser pour éventuellement demander de changer le contenu et proposer des évolutions d'IHM.

La solution pour anticiper le feedback du point de vue de la gestion de projet est de scinder une exigence d’utilisabilité en 2 histoires d’utilisateur incluses dans le backlog :

  1. une première qui définit ce qui sera fait pour la première version
  2. une deuxième comme réceptacle du feedback des utilisateurs à la vue de la première version

Evidemment la quantité de feedback n’est pas connue à l’avance. Cependant pour prendre en compte cette histoire dans les plannings, il est possible d’utiliser un coefficient pour l’estimer. Par exemple 30%, ce qui donnerait avec une estimation à 3 de la première version, une estimation de 1 pour la seconde.

Avec ce principe, une exigence d'utilisabilité est représentée dans le backlog par 2 histoires d’utilisateur, avec le même nom suffixé par version 1 et version 2.

Cela implique qu’elle ne sera pas finie en une itération, mais en au moins 2 et probablement 3 :

  • une pour réaliser la première version
  • une pour utiliser et remonter du feedback
  • une troisième pour réaliser la deuxième version

Il conviendra d’organiser les livraisons aux utilisateurs pouvant apporter du feedback et de faire en sorte de l’inscrire dans le créneau ad hoc.

Alistair Cockburn, dans son article Three cards for user rights, suggère de systématiser cette pratique à toutes les stories et de faire trois entrées pour chacune. Intéressant pour favoriser le feedback au delà du Product Owner, mais cela demande de bien maîtriser le processus et la gestion du backlog. Il faut pour cela un bon Product Owner qui maintienne scrupuleusement le backlog, ce qui n'est pas fréquent si on en croit David.

flèche Haut de page

lundi 11 février 2008

Mesures agiles

La mesure la plus connue dans les méthodes agiles est probablement la vélocité. Mais il y a d'autres mesures simples à faire lors d'un développement agile permettant d'obtenir des indicateurs et des courbes (burndown charts, courbes diverses).

Au cours de chaque sprint, on peut mesurer :

  • tous les jours, le nombre d'heures restant à faire, ce qui permet de produire le burndown chart de sprint qu'on peut analyser selon sa forme

A la fin d'un sprint :

  • le nombre de builds produits pendant le sprint, ce qui permet de savoir si des versions ont été produites, notamment pour les tests
  • le nombre de problèmes restant à résoudre, ce qui permet de se faire une idée de leur variation au cours du projet
  • la vélocité donc, ce qui permet de calculer la vélocité moyenne qui sert à planifier
  • le nombre de points restant à faire d'ici la fin de la release, ce qui permet d'obtenir le burndown chart de release
  • le nombre de user stories faites pendant le sprint, le nombre de stories restant dans le backlog et le nombre de stories à estimer ce qui permet d'obtenir des indications même s'il n'y a pas d'estimation en points
  • le nombre de points des stories dans les différents états, pour produire les burnups et les courbes de croissance
  • le nombre de cas de tests écrits, le nombre de cas de tests passés ce qui permet d'obtenir un Big visible chart

Bientôt tout ça disponible dans IceScrum ?

flèche Haut de page

dimanche 3 février 2008

Le backlog de produit est un outil de communication

On peut essayer la télépathie pour le communiquer efficacement...

Lire la suite -->

flèche Haut de page

vendredi 25 janvier 2008

Sharepoint pour le backlog

Avec l'utilisation des listes

Lire la suite -->

flèche Haut de page

dimanche 16 décembre 2007

Démo IceScrum2 au SigmaT4

Le manifeste agile rappelle que les personnes et leurs interactions sont plus importantes que les processus et les outils. Faire un outil qui reste dans cet esprit tout en assistant utilement lors de l'application d'une méthode agile, ce n'est pas facile. Le pari a l'air réussi pour la nouvelle version d'IceScrum.

Lire la suite -->

flèche Haut de page

dimanche 25 novembre 2007

La revue de sprint

Une revue qui permet un feedback concret sur le produit (c'est mieux que sur de la documentation).

Lire la suite -->

flèche Haut de page

jeudi 4 octobre 2007

Features, themes, epics et stories

Comment s'y retrouver ? Que met-on dans le backlog ?

Lire la suite -->

flèche Haut de page

mardi 2 octobre 2007

Les rôles impliqués dans les histoires d'utilisateur

Il n'y a pas que l'utilisateur et l'administrateur ...

Lire la suite -->

flèche Haut de page


Fatal error: Undefined class name 'bbclone' in /home/.sites/22/site13/web/dotclear/themes/ZenTheme_pour_package/template.php on line 214