Article tagué SCRUM
L’agilité en Chine, retour d’expérience SCRUM
12/05/08
L’introduction des méthodes agiles dans une organisation cause souvent des problèmes d’adaptation à cause de la différence culturelle qu’elles amènent. La manière de fonctionner la plus répandu est que les séniors prennent les décisions et que les moins expérimenté les exécutent. Pour que les méthodes agiles fonctionnent il faut donner plus d’autonomie aux exécutants.
Ce problème peut être encore amplifié en Asie, du fait que la culture asiatique renforce le respect du supérieur.
InfoQ qui possède une structure en Chine a récemment réalisé une étude sur l’adoption de SCRUM en chine.
Une traduction libre de cette étude est présentée ci-dessous.
Les personnes interrogées et leurs entreprises sont présentées ci-dessous. Pour le respect des sociétés leurs vrais noms n’ont pas été utilisés.
- Julie – Une célèbre entreprise de l’internet – Réussit
- Kaverjody – Un célèbre éditeur de logiciel – Réussit
- David – Une célèbre entreprise de l’internet – Echec
- Alex – Nibirutech, une start-up – Réussit
- Fiona – Une start-up – Echec
Les cinq questions suivantes ont été posées à ces cinq entreprises installées en Chine utilisant SCRUM.
Pourquoi avez-vous utilisé SCRUM sur votre projet ?
Julie :
Les exigences changeaient trop rapidement, la feuille de route n’était pas claire, nous devions améliorer l’efficacité et la communication, et le service commercial devait pouvoir obtenir des résultats le plus tôt possible.
Kaverjody :
En raison des défauts dans le modèle de développement en cascade nous ne pouvions pas apporter des améliorations sans modifier la méthode de développement. Les top-managers ont pris la décision d’utiliser SCRUM pour résoudre les problèmes, par exemple le coût de maintenance très élevé, la livraison de nouvelle version nous prenais beaucoup de temps, etc
Alex :
La première fois que j’ai entendu parler de la notion d’agilité c’est lorsque j’ai rejoint NibiruTech en octobre 2007. À cette époque, la pratique agile que nous utilisions le plus était la réunion quotidienne. Je n’avais aucune idée quant à l’effet d’une telle réunion. J’ai essayé de comprendre et j’ai ainsi découvert SCRUM.
Comme beaucoup de start-up, nous n’avions pas beaucoup d’expérience dans les méthodes de gestion. Nous avons écrit notre propre méthode de gestion et l’avons utilisé conjointement avec TRAC. SCRUM m’a vraiment impressionné, j’ai donc décidé de populariser SCRUM au sein de notre entreprise.
Comment avez-vous adopter SCRUM, et pourquoi ?
Julie :
Nous n’utilisons pas du pur SCRUM. Au lieu de cela nous l’avons mélanger avec de nombreuses pratiques agiles, comme des pratiques d’XP et en partant de la rétrospectives SCRUM que nous avons adapté à nos exigences, pour finalement trouver notre propre modèle. Par exemple, si dans une rétrospective, nous constatons que nous devons améliorer la revue de code, alors lors du sprint suivant de nouveaux mécanismes de revue sont introduits.
Nous somme partie du bas pour aller vers le haut. Tout d’abord, nous n’avons fait des expériences locales, avec une petite portée, et ensuite nous l’avons étendu de plus en plus largement.
Nous avons également fait des améliorations au processus lors de l’adoption:
- Mars à Juin 2006 – utilisé dans une équipe d’environ 8 personnes.
- Juin 2006 à Décembre 2007 – utilisé dans trois équipes, environ de 25 personnes.
- Décembre 2007 à Janvier 2008 – Utilisé dans un département, 6 équipes, environ 50 personnes.
- Janvier 2008 à maintenant – Utilisé dans toutes les équipes.
Kaverjody :
Les top-managers ont pris la décision d’utiliser SCRUM dans l’entreprise.
Alex :
Je n’ai pas réfléchir à la manière d’adopter SCRUM à ce moment-là, je partageait uniquement les informations entre le CEO et mes coéquipiers.
A la question : « Comment avez-vous décider des mesures à prendre au cours de l’expérience ? Est-ce que vous vous êtes concentré sur les problèmes existants et choisis des pratiques agiles appropriées pour les résoudre ? Ou une autre manière de procéder ?
Julie :
En fait, nous n’utilisions pas le mot « SCRUM » au début. Nous avons discuté avec les commerciaux sur la date de livraison, nous sommes tombés d’accord sur une livraison tous les mois. La gestion du projet se faisait pendant la réunion quotidienne du matin et les améliorations étaient décidées pendant la réunion de conclusion du d’une itération. La rétrospective de la production et celle de l’équipe étaient incluses dans cette réunion de conclusion. Le chef de produit expliquait la situation actuelle, et tous les membres de l’équipe discutaient de nos réalisations, des défis et de nos lacunes. Pour la réunion de planification, nous avons suivi SCRUM depuis le début. MS Project n’étant pas approprié pour un petit projet, nous avons d’abord utilisé une feuille de calcul Excel SCRUM, puis ensuite nous somme passé à Xplanner.
Après quelques mois, nous avons réunis tout le monde pour une réunion de partage de connaissances sur les méthodes agiles. Il y a été présenté toutes les pratiques que nous avions utilisées, et expliqué la philosophie de l’agilité, d’XP et de SCRUM. Puis tout le monde s’est regardé et nous nous sommes aperçu que nous avions utilisé SCRUM pendant ces derniers mois.
Notre succès a été également confirmé par les managers, et nous avons été autorisés à partager notre expérience avec d’autres équipes. Nous avons alors choisi certaines équipes comme « pilotes ». Du fait que les développeurs pouvaient passé d’une équipe à une autre, cela augmentait les coûts de gestion si une équipe utilisait MS Project et un autre XPlanner. Nous avons donc utilisé SCRUM dans toute l’entreprise.
Quel est le plus gros problème rencontré lors de l’adoption, et comment l’avez-vous résolu ?
Julie :
Tout d’abord, nous avions besoin du soutien des dirigeants. Et puis, de dire la vérité, l’adoption de SCRUM est assez facile, beaucoup plus facile que CMMI.
Le plus difficile, c’est que vous devez résoudre les problèmes révélés dans votre processus, tels que:
- « Nous n’avions pas d’exigences claires, ce qui à un coût élevé en communication sur les dernières étapes. Nous passons trop de temps à discuter avec le chef de produit encore et encore. »
- « Cycle de livraison est trop long : notre Sprint est de 3 ou 4 semaines, mais le chef de produit souhaite que nous livrions deux versions par semaine. »
- « Nous ne pouvions pas maîtriser les besoins et le produit en nous basant sur les caractéristiques de SCRUM« .
- « La date de livraison était fixé par les commerciaux, nous n’avons pas le temps de faire des tests unitaires, ni code de la revue de code. »
- « Nous ne pouvions pas voir clairement les goulets d’étranglement entre les tâches, ou la façon de coordonner tout le monde« .
- « Nous avions besoin d’au moins une semaine pour analyser les données après le déploiement, il est impossible de conclure sur des amélioration à faire juste après le sprint actuel.«
- « Le rythme de développement était trop rapide, nous n’avons pas assez de temps pour s’arrêter et faire une bonne rétrospective. L’exigence historique n’est pas pleinement utilisé. »
Kaverjody :
Pour moi, la plus grande difficulté est les malentendus autour de l’agilité rencontrés parmi mes collègues. Ils pouvaient voir les outils et les pratiques de développement utilisés, mais ne pas comprendre l’idée sous-jacente dans ces choix. Pourquoi avoir choisi ces outils? Pourquoi prendre ces pratiques? Avions-nous des standards avant ces pratiques ? Ce n’est que dans les choix effectués que nous pouvons voir la valeur de l’agilité.
Il n’y aucun moyen d’atteindre son objectif d’un seul coup, le seul moyen est de sensibiliser les collègues en permanence. De plus nous devons également analyser et résoudre les problèmes à temps et analyser ce qui s’est passé ensuite. Expliquer pourquoi nous avons résolu les problèmes de cette façon et comment traiter les mêmes problématiques dans le futur.
Alex :
Je pense qu’il y a deux grandes difficultés avant l’adoption de SCRUM :
- Le soutien des dirigeants. Je pense que c’est un problème commun. Jeff Xiong a publié un article pour InfoQ Chine: Agile step by step: how to do agile bottom-up, qui explique que si les dirigeants ne peuvent prendre en compte SCRUM, commencer par appliquer SCRUM uniquement dans l’équipe. Dieu merci, nos CEO et CTO ont soutenu SCRUM.
- Formation SCRUM pour les employés. Mes collègues ne comprenaient pas clairement SCRUM, j’ai alors organisé une formation SCRUM. Nous avons répondu aux interrogations ensemble. Et lors de l’adoption, tout le monde est devenu de plus en plus familier avec SCRUM. Bien sûr, les personnes qui popularisent SCRUM doivent être familier avec.
Ensuite, InfoQ a demandé à chacun de présenter leurs solutions dans le détail :
Julie :
Pour le premier problème, « manque de clarté des exigences« , nous avons fait un modèle universel pour tous les cahiers des charges, et ajouter une réunion de discussion des besoins avant la réunion de planification. Le chef de produit, les testeurs et les développeurs participent également à cette réunion.
Pour le deuxième problème – « cycle de livraison trop long« , nous avons ajouté la prise en compte quotidienne des demandes de maintenance, en plus de nos livraisons. Le chef de produit recueille les demandes d’évolutions, tels que « modifier les pages », « Ajouter / supprimer des données ». Ces exigences sont soumis aux ingénieurs dans la réunion quotidienne tous les mardis et jeudis matin, pour être livré dans l’après midi.
Alex :
Nous sommes à un bon niveau de l’adoption de SCRUM. Peut-être parce que je n’ai pas compris SCRUM très bien, et que nous utilisons seulement certaines pratiques, mais j’ai une conviction: nous trouverons notre propre version de SCRUM dans les itérations à venir, dans les succès et les échecs. Nous étions habitué à des projets avec des définitions des exigences peu claires. Pendant la réunion de planification, nous listons tous les points techniques à partir des besoins fonctionnels connus, ils sont ensuite classés par priorité. Une itération est de seulement 10 jours, il est donc toujours possible de gérer le planning global. Pendant la réunion du matin, tout le monde indique sur le tableau les tâches qu’il va réaliser pendant la journée. Cela améliore la capacité d’auto gestion de l’équipe.
Quels avantages SCRUM a t’il apporté à votre projet, à votre entreprise ?
Julie :
Je pense qu’il est difficile de mesurer les bénéfices tirés de SCRUM. Nous avons fait une enquête dans les équipes et a obtenu quelques informations générales:
Kaverjody :
Il est difficile pour moi de tirer une conclusion. Les avantages que je peut voir sont : nous pouvons obtenir du feedback sur les fonctionnalités plus fréquemment, nous pouvons détecter certains problèmes plus rapidement, par exemple développement multi-sites et coopération, rétrospectives et améliorations.
Alex :
Nous utilisons SCRUM dans toute l’entreprise, du développement, aux commerciaux en passant par les ressources humaines. Nous ne présentons pas SCRUM aux nouveaux employés, ils peuvent se familiariser avec au cours des journées de travail. Je ne peux pas dire l’importance du gain, mais cela nous a aidés à travailler heureux, plein d’énergie, et nous avons terminé notre itérations avant la date butoire. Maintenant nous préparons le prochain projet.
Pourquoi n’avez-vous pas adopté Scrum avec succès? Pourriez-vous décrire le process utilisé ?
David :
Notre problème était le suivant: certains dirigeant n’ont pas compris l’agilité et SCRUM. Ils ont considéré l’agile comme une formalité. Par exemple, nous avions un Scrum Master sur un gros projet, qui s’est très bien passé. Un chef de projet a trouvé cela bien et a instauré le Daily Scrum dans plusieurs projets, sans savoir ce qu’était l’agilité, ce qu’était SCRUM. Le Daily Scrum est alors devenu grâce à lui le daily report, et les principes fondamentaux de SCRUM n’ont pas été respectés.
Tout le monde devait assister au Daily Scrum a l’heure fixé, et indiquer ses tâches de la journée au manager qui décidait si il / elle devait prendre plus de tâches ou non. C’est nul. Le «Daily Scrum » a été annulé, tout le monde a estimé qu’il était trop ennuyeux. Et par la suite plus personne n’a parlé d’agilité dans l’entreprise.
Diona:
J’étais dans l’équipe multi site et l’équipe chinoise ne connaissait que peu de chose sur l’agilité au début. Un jour, le chef de projet à l’étranger nous a envoyé plusieurs liens parlant d’un terme étrange : SCRUM. Nous avions seulement un ou deux jours pour lire des documents sur SCRUM, et puis nous avons du commencer les daily meeting. En fait, tout le monde connaissait l’importance de la communication, mais nous avions 6 à 7 heures de décalage horaire, alors quand ils arrivaient au travail le matin, nous nettoyons le bureau et on retournait à la maison. Le daily scrum n’a pas amélioré notre communication, et a été abandonné après une ou deux semaines. Nous avons essayé de faire des daily scrum dans l’équipe chinoise, mais le plus gros problème a été la différence culturelle entre les équipes et la planification du projet. Le daily meeting n’a rien apportée et est vite devenu une formalité. Finalement il a été abandonné.
Nous n’avions pas de réunions de planification. Nous avions un soi-disant product owner, mais il n’a jamais expliqué les détails de chaque user stories, il n’a pas non plus pu définir ce qui était terminé. Nous avons essayé la rétrospective par nous-mêmes, mais nous n’avons pas obtenu de réponse de l’équipe à l’étranger, et nous avons abandonné.
Lorsque nous avons utilisé pour la première fois ScrumWorks, le product ower n’a pas donné de priorité aux user stories, et nous avons fait des estimations. Mais maintenant tout le monde peut ajouter des user stories dans ScrumWorks, et personne ne fixe la priorité, c’est nous, les développeurs, qui décidons. Si il restait une centaine d’user stories à la fin du sprint, elles étaient simplement ajoutées au sprint suivant.
Pour finir
Il y a eu plein de réactions à la fin de l’écriture de cet article en version chinoise sur le Agile China Google Group qui seront rapporté plus tard.
Je me souviens d’un phrase célèbre de Shakespeare: « Il y a des milliers d’Hamlet dans les regards différents de millier de personnes. » Donc: que penser vous de SCRUM ? et comment avez vous adopter SCRUM dans votre organisation ? Pouvez-vous partager votre expérience avec nous ?
A propos de l’auteur

Jacky Li est l’un des acteurs principaux d’InfoQ Chine et de la communauté agile chinoise. Spécialisé en Java et dans le développement logiciel agile. Il s’est consacré au développement de l’agilité en Chine. Il est le traducteur de InfoQ sur le minibook: Starting Struts2..
SCRUM, la revue de SPRINT
6/04/08
A la fin de chaque Sprint les développeurs présentent le travail réalisé aux autres membres de l’équipe. Dans l’idéal cette présentation doit être ouverte à toute personne de l’entreprise.
Intérêt de la revue de SPRINT
- Permet au Product Owner de valider que ce qui a été réalisé est conforme à la demande.
- L’équipe obtient de la reconnaissance pour le travail réalisé.
- Les autres personnes découvrent ce que l’équipe fait.
- Cela permet de recevoir du feedback de la part des participants.
Faire une démo pousse l’équipe à finir les tâches qu’elle a à réaliser et à ne pas se retrouver avec un tas de tâches faites à 90%. Peut-être que moins de tâches sont réalisées mais elle le sont à 100%.
Si la démo ne se passe pas bien, l’équipe de développement prendra un petit coup au moral mais cela les poussera à réagir et à faire en sorte que la prochaine démo se passe bien. Cela les conduira à faire plus attention à la qualité des réalisations.
Quelques conseils
- Enoncé clairement l’objectif du SPRINT. Il est important de se le remémorer pour s’assurer que ce qui est présenté permet de l’atteindre.
- Ne pas oublier que le but n’est pas de faire une démo mais de montrer ce qui a été développé et que les objectifs ont été atteints.
- La démo doit être fonctionnelle et ne pas se concentrer sur des points techniques.
- Il n’est pas nécessaire de présenter les corrections de bug mineur car cela pourrait détourner l’attention des fonctionnalités. Citer la liste des corrections effectuées suffit.
- La présentation des développements ne donnant pas lieu à une fonctionnalité visible doit être faite par le biais de rapports de benchmark, de tests…
Le radiateur d’informations
15/02/08

Simple et efficace, voici les deux adjectifs que j’utiliserais pour décrire le radiateur d’informations. Un mur, des stylos, des post-it et le tour est joué. Le but est d’afficher sur le mur les informations importantes pour que tous les acteurs du projet puissent y avoir accès à tout moment.
Un bon radiateur d’informations doit être :
- A jour et complet
- Précis et facile à interpréter
- Visible par tous
- Facile à manipuler.
Les informations affichées diffèrent selon les projets et les besoins mais il y a quelques grands classiques.
Le Task Board
Il présente les tâches à réaliser durant le sprint en cours.

Sur la gauche sont affichés sur des post-it verts les user story (et leur charge de travail) à réaliser pendant le sprint.
Pour chacun d’eux on trouve sur la même ligne les tâches nécessaires à leur réalisation. Elles sont représentées par des post-it jaunes sur lesquels sont indiqué le nom de la tâche, le temps restant et la personne qui en à la charge. La tâche passera successivement de la colonne « A faire », à « En cours » puis « Terminés »
On sait ainsi à n’importe quel moment qui travaille sur quoi et quelles sont les tâches restantes pour le sprint.
Le Burn Down Chart
Il permet de visualiser graphiquement l’avancement du travail et de savoir si le contenu du sprint pourra être réalisé dans les temps ou si certaines tâches devront être reportées au sprint suivant. Il permet également de détecter les ralentissements de production ou tout autres problèmes pouvant intervenir.
Il est placé au dessus du TaskBoard et est mis à jour tous les matins après le daily scrum.

En ordonnée on trouve la charge de travail restante dans l’itération et en abscisse les journées présentes dans le sprint. Le but étant que chaque jour, la charge de travail restant diminue.
Le Project Progress Poster
C’est une vue du projet dans sa globalité. Y est représenté le contenu des différents Sprints.
Pour chacun d’eux est indiqué l’objectif (Post-it orange) et la liste des user story qu’il faudra réaliser (Post-it en vert).

La colonne du sprint en cours a été déplacée dans le Task board. Les colonnes à gauche de celle étant vide représentent donc les sprints terminés alors que celles à droite représentent ceux restant. Une fois qu’un sprint est terminé on place son burndowChart au dessus de sa colonne.
Autres informations utiles pouvant être affichées
- Les « impediments » : Les problèmes identifiés qui pourraient entraver la progression du projet.
- Le calendrier des livraisons.
- Le burndownChart du projet total.
Développement offshore, un besoin d’agilité
19/01/08
Lorsque l’équipe (ou une partie de l’équipe) est éloignée, que ce soit avec des équipes offshores en Inde ou nearshores en Roumanie, de nouveaux problèmes liés à l’éloignement vont apparaître
- Problèmes de communication.
- Suivi de l’avancement du projet.
- Assurer la qualité.
A chacun de ces problèmes les méthodes agiles vont apporter des réponses.
- La communication : Les méthodes agiles mettent l’accent sur l’importance de la communication. Cette attention devra être encore plus forte avec l’éloignement des équipes. Heureusement, de nos jours, de nombreux outils sont disponibles pour nous faciliter la tâche.
- Le wiki : L’utilisation de wiki est un moyen simple et pratique de regrouper l’information et de la rendre disponible à tous les membres de l’équipe. C’est la que, par exemple, on trouvera les bonnes pratiques, les conventions de code, le processus de build, la description de l’architecture technique… C’est l’équipe qui l’alimente et qui y ajoute tous ce qui lui semble utile. De plus lors de l’intégration de nouvelles ressources sur le projet, l’information contenu dans le wiki se trouve être une vrai mine d’or pour le nouveau venu.
- La messagerie instantanée : C’est un très bon moyen de communication qui permet d’obtenir rapidement des réponses sur des problèmes pouvant être bloquant. Son grand avantage est qu’il n’est pas intrusif et qu’il n’est pas nécessaire de cesser toutes activités pour l’utiliser (contrairement au téléphone). Il ne remplace pas le téléphone mais lorsque s’agit d’éclaircir des points pouvant prêter à confusion, il fait très bien son boulot.
- Le téléphone : Avec l’apparition de la VoIP, le coût des communications internationales devient pratiquement nul. De plus elle apporte un plus grand confort d’utilisation en permettant à l’utilisateur d’avoir les mains libres, de pouvoir dans un même temps transférer des fichiers ou des urls par messagerie instantanée. Il est également très simple de mettre en place des conférences.
- La visoconférence : Même si sont utilisation n’est pas encore parfaite, la visioconférence peut permettre de recréer un peu les rapports humains « francs », face à face qui manque lorsque l’on travaille à distance. Deux développeurs qui travaillent à 10 000 km de distance peuvent ainsi « se voir » et mettre un visage sur l’autre.
- Les voyages : Il est essentiel, surtout en début de projet que de nombreux voyages aient lieux. Au minimum un responsable doit se déplacer au près des équipes offshore, pour les rencontrer et présenter le projet et ses objectifs. Il est aussi important que les équipes « on-site » et « distante » se rencontrent (au moins une fois) pour ainsi créer « un lien » et ainsi faciliter le travail avec « l’autre ».
- Suivi du projet : L’utilisation d’itérations courtes permet de montrer rapidement aux utilisateurs des fonctionnalités qui marchent, d’avoir des retours fréquents et donc de corriger le tir si besoin est. L’utilisation de Scrum permet de faire cela très bien. Les daily scrum permettent d’avoir un retour rapide sur le travail restant avant la fin d’une itération. Les « BurndownCharts » (graphiques d’avancement) permettent de visualiser graphiquement l’avancement du travail. Une interprétation simple permet d’avoir une idée sur les échéances futures.

- La qualité : Il est essentiel de garantir la qualité du produit développé. Pour cela il faut respecter certains principes forts comme ceux prônés par L’eXtreme Programming (voir article précédent pour plus de détails).
- Intégration continue
- Livraisons fréquentes
- Tests unitaires et tests de recette automatisés
- Conception simple
- Refactoring
- Appropriation collective du code
- Convention de nommage
Présentation de SCRUM
18/01/08
Scrum est une méthode de gestion de projets agile qui a été créer par Ken Schwaber et Jeff Sutherland. Le terme Scrum est emprunté au monde du rugby dont elle s’inspire des valeurs collectives (une équipe soudée, qui cherche à atteindre un but commun).
Le principe de Scrum est simple. Il s’agit de concentrer l’équipe sur un ensemble de fonctionnalités à réaliser au sein d’un itération appelée « sprint » dont la durée varie entre 15 et 30 jours. Pour chacun des sprints, le directeur de produit défini un but à atteindre et, en collaboration avec l’équipe de développement, les fonctionnalités à développer nécessaire pour y arriver.
Pendant la durée du « sprint » le ScrumMaster doit prendre soin de l’équipe en réduisant au maximum les perturbations extérieures et résolvant les problèmes non techniques que pourrait rencontrer l’équipe de développement. Pour cela tous les matin, le ScrumMaster réunit l’équipe pour une réunion de 15 minutes, appelée « scrum du matin » ou « daily scrum », au cours de laquelle chacun des membre de l’équipe répond au 3 questions suivantes :
- Qu’est-ce que tu as fait hier ?
- Qu’est-ce que tu vas faire aujourd’hui ?
- Quelles difficultés as-tu rencontrées ?
Cela permet au ScrumMaster de suivre l’avancement du projet et de lever les problèmes qui pourraient empêcher l’équipe d’avancer.
A la fin de chaque sprint, l’équipe présente le travail réalisé qui est un logiciel partiel fonctionnel. Il est potentiellement livrable et son évaluation permet d’ajuster le contenu du sprint suivant.

Je reviendrais plus en profondeur dans de prochains articles sur Scrum.
Vous pouvez retrouver un témoignage intéressant sur Scrum et l’offshore ici : Scrum et offshore