décembre 2008Monthly :

Quels sont les pré-requis d’une équipe Scrum ?

Une équipe Scrum est constitué d’un Product Owner, d’une Equipe de réalisation et d’un ScrumMaster (A distinguer de l’Equipe d’un Scrum). Chercher les pré-requis d’une équipe Scrum nous impose de bien comprendre ce qu’est Scrum. Considérant que la compréhension de Scrum est partagée, nous pouvons chercher des pré-requis dans ses règles de fonctionnement.

Continue Reading

À quel moment le PO doit-il arrêter de demander des modifications à ce qu’il voit en cours de sprint?

Quand un PO est très présent, ce que toutes les équipes n’ont pas le luxe d’avoir, il a tendance à bien aimer faire des modifications en cours de sprint. Quand on est Agile, on veut embrasser les demandes de changement : « La réponse au changement prime sur le suivi d’un plan ». Mais le PO a-t-il vraiment toute la liberté de demander ce qu’il veut, quand il veut?

Si les requis changent tout le temps, le PO souffrira d’un manque de prévisibilité relié à la difficulté pour les développeurs d’estimer le travail à faire. Alors il faut arriver à bien définir le périmètre de chacun des items au backlog, et la dernière limite pour faire ça, en principe, c’est le sprint planning.

Les règles disent ceci :

  • Les développeurs s’engagent sur des stories qui sont définies par le PO et dont les conditions de succès sont détaillées au sprint planning. Les critères d’acceptation doivent être connus au début du sprint.
  • Quand les critères d’acceptation (ou conditions de succès) ne sont pas rencontrées, la story n’était pas terminée (DONE), donc il faut continuer à travailler.
  • Le ScrumMaster (ou l’équipe) doit empêcher les dérangements pendant le sprint : ça inclut les demandes de modification au périmètre des stories formulées par la PO. L’équipe n’a pas à dire non, mais le PO doit les prioriser pour le prochain sprint (ou pour le sprint actuel SI, et seulement si, vous avez du temps à la fin). Le mécanisme est simple : les éléments du backlog sont attaqués dans l’ordre de priorité.
  • Si l’équipe ne sait pas quand dire non à votre PO, c’est que les conditions de succès sont mal définies.

La réalité apporte des nuances : certains critères ont pu être laissés flous, ou certaines demandes ont pu être formulées seulement en voyant l’application en cours de sprint. La beauté d’avoir des démos en milieu de sprint est d’améliorer les communications et de pouvoir avoir plus rapidement le logiciel dans l’état où il rend le PO heureux… et c’est ça l’objectif, non?

Alors voici les solutions qui pourraient être envisagées si le PO demande beaucoup de modifications:

  1. Accepter de répondre à quelques demandes dans la mesure du possible, en gardant en tête de ne jamais mettre en danger l’engagement : personne n’y gagnerait, surtout pas le PO. En cours de sprint, l’équipe doit communiquer ce qu’elle considère comme “terminé” si le PO jette un coup d’oeil au résultat; il faut que le PO attende pour faire « ses » tests d’acceptation sur ce qui n’est pas terminé. Rien n’empêche de lui montrer une fonctionnalité en cours de développement, et de recueillir ses commentaires. Beaucoup de temps peut être sauvé à tout le monde en tests et en développement.
  2. Accepter d’enlever des morceaux dans le sprint pour les remplacer par des modifications demandées. Hésitez à faire cela; ce n’est pas idéal, car il vaudrait mieux être clairs dès le départ sur les conditions de succès. Il est possible aussi de vous réserver à chaque sprint une banque d’heures consacrée aux “modifications demandées”.
  3. Accumuler toutes les demandes de modifications pendant le sprint et les adopter toutes au prochain sprint. Les réviser à la démo, pour être sûrs qu’elles sont toujours d’actualité.
  4. Une meilleure façon de découper les items du backlog (typiquement, des user stories) peut permettre de mieux gérer ces demandes de changement. Si les fonctionnalités sont découpées de façon à avoir toujours une façon simple de combler le besoin dans une première story, et qu’il y a une seconde story pour la version finale, vous pourrez changer le périmètre de cette deuxième story une fois la première terminée. Par exemple, si vous devez entrer un nom de ville dans un formulaire, la première version consistera à entrer la ville dans un champ texte. La seconde, en revanche, pourrait permettre de chercher dans une liste existante, à faire de la validation de code postal, à corriger l’orthographe, ou toutes ces réponses. Les idées fuseront une fois le logiciel installé et utilisé en production.

“Etre Agile” ou “Faire de l’Agile” ?

Cette question revient souvent sur le tapis. Elle peut paraître dénuée d’intérêt de prime abord, mais je trouve qu’elle résume à merveille le bouleversement silencieux que peut représenter l’Agilité. Pour illustrer mes propos, j’en veux pour preuve les fondements du manifeste Agile; vous n’y trouverez aucune solution toute faite, pas de processus, pas d’outils non plus… vous y trouverez tout simplement des VALEURS.

Il est vrai toutefois que ces valeurs peuvent se décliner dans les différentes activités de l’entreprise qui développe du soft: pratiques d’ingénierie, gestion des tests, gestion de projets, analyse du besoin, etc.. il en résulte bien évidemment des outils, des méthodes (comme Scrum), des pratiques (comme celles d’eXtreme Programming) et bien d’autres choses, mais n’attendez pas de pouvoir simplement réutiliser clef en main ce qui marche ici pour l’implémenter là-bas. L’histoire des constructeurs automobiles américains copiant en vain les procédés de Toyota (approche Lean) montre que les richesses d’une entreprise sont parfois invisibles, trop subtiles pour être photographiées. Une culture, un état d’esprit, ça prend un certain temps pour se construire. Aussi, n’attendez pas des résultats immédiats, mais préparez vous à investir aujourd’hui pour demain.

L’Agilité est donc à mon sens plus un savoir-être qu’un savoir-faire. Ce savoir-être peut nécessiter une révolution des mÅ“urs dans l’entreprise! Il faut s’attendre à pas mal de résistance dans les situations suivantes:

  • les chefs de projets n’affectent plus les tâches quotidiennes des équipes
  • les décisions d’architecture sont prises par les équipes
  • les managers communiquent sur les comportements attendus et les valeurs au lieu du règlement et des procédures
  • les équipes décident par elles-mêmes si une personne devrait être “sortie” du projet
  • les évaluations individuelles s’appuient sur une évaluation par ses propres collaborateurs
  • l’entreprise développe les motivations et les talents des collaborateurs
  • les relations d’autorité sont remplacées par de la collaboration gagnant/gagnant
  • toute l’information disponible de l’entreprise est accessible par tous

Cela vous parait-il ubuesque, démagogique, inapplicable? Ben, j’aime les débats qui pourraient survenir! Attention, je ne cherche pas à dire que l’Agilité est la panacée à tous les maux; je ne dis pas non plus que l’Agilité est meilleure qu’une autre démarche. Je veux juste mettre en garde sur ses conséquences sur l’entreprise, en terme de management, c’est à dire au niveau de la gestion des hommes. Ce management conscient des valeurs (qu’elles soient ou non celles de l’agile) offre – quand il existe l’avantage de pouvoir aligner les forces de l’entreprise dans un même effort.

Beaucoup de courants de pensée (en dehors du développement logiciel) alliant performance, humanisme et écologie m’incite à croire que la complexité grandissante de notre monde nous condamne à nous remettre en question un peu plus chaque jour ;-)

Agilité chez Orange


Hier, j’ai été invité à intervenir à un Webinaire interne à Orange Labs (ex France Telecom). L’objet du séminaire était d’introduire et d’expliquer l’agilité avec retours d’expérience à la clef. Il y avait 17 présents dans la salle et 60 en conférence web.

Je remercie Hervé Lourdin de m’avoir proposé d’animer avec lui sa présentation “Agile Démystifiée”. Le principe de cette présentation est de faire participer le public en leur demandant de prioriser les questions qu’ils veulent poser, sachant que les animateurs auront une période de temps fixe pour y répondre. Le public devient ainsi le “product owner” (ou directeur de produit dans Scrum) et doit faire des choix pour rentabiliser au mieux le temps d’animation qu’il a à sa disposition. Marrant le vote à main levée dans la salle, complété par les votes par “chat” pour ceux qui étaient sur le net. Nous avions abordé les sujets suivants

  • L’intégration continue
  • Contrat au forfait ou en régie?
  • Les outils pour faire de l’agile
  • Spécification agile

Ensuite Thomas DONY a présenté son retour d’expérience sur un projet d’Orange Labs géré en Scrum depuis 1 an. Le bilan du projet est positif et il est question d’étendre l’expérience. Enfin, j’ai présenté mon retour d’expérience chez Varian après 3 ans de Scrum/XP, discours relativement proche de celui tenu par mon collègue Bruno Orsier à l’Agile Tour 2008 à Grenoble.

Le timing global de l’après-midi était assez serré, ne laissant pas beaucoup de place aux questions/réponses. Parmi les questions soulevées durant les retours d’expériences, j’ai pu relever :

  • Comment puis-je faire de l’agilité sachant que j’ai des points de recontres très précis (contenu et date) avec mes fournisseurs?
  • Puis-je introduire de l’agilité sur la partie “amont” seule (travail sur le backlog, avec des échelles de temps de l’ordre d’une release) ?
  • Comment être agile dans un environnement où le top-management est plus “directif” que “participatif”?

Dommage que nous n’ayons pas pu faire un ROTI (return on time investment) afin de mesurer le degré de satisfaction du public, bien que j’ai su par la suite directement et indirectement que l’après-midi fut très appréciée!

Merci à Rémy et Pierre qui m’ont invité, ce fut un plaisir de contribuer à leur démarche pour faire connaître l’agilité au sein de leur grande société.

Le Product Owner doit il être obligatoirement une seule personne ?

Scrum propose de confier la responsabilité des priorités et du retour sur investissement à une seule et même personne. Cette personne doit avoir l’autorité d’exercer cette responsabilité dans son organisation. L’unicité de cette personne est là pour empêcher les indécisions pour raison de conflit entre plusieurs intérêts contradictoires.

Cela ne veut pas dire que cette personne soit seule au monde. Un Product Owner peut s’entourer d’une équipe qui l’aide dans ses prises de décisions. De fait de nombreux Product Owner le font dans le cas de produits complexes, difficiles à appréhender par un seul individu.