01.10.2011

Cet article est une adaptation en français de l’article Scrum – First Sprint qui présentait en anglais le bilan de mon premier sprint en tant que Scrum Master. J’ai délibérément choisi de conserver le vocabulaire anglais pour les noms de rôles, d’artefacts, … mais les liens pointent bien vers de la documentation en français.

Je suis depuis quelques mois vraiment enthousiaste par rapport à mon travail. J’ai en effet été chargé mi-octobre d’être le Scrum Master d’une équipe de 4 personnes (incluant deux développeurs, Jose et Pepe ainsi que Silvia comme Product Owner).

Scrum, c’est quoi?

En quelques mots, Scrum est une méthodologie Agile dédiée au management de projet. Scrum s’applique principalement à la gestion de projets informatiques mais est également utilisable sur d’autres sortes de projets. L’idée principale derrière Scrum est d’avoir de petites itérations de travail, et avoir un produit délivrable à la fin de chaque itération. Via le Product Owner, le client est vraiment impliqué dans le projet dès le début, il peut donner son feedback sur le produit très souvent et très tôt dans le process.

Il décide des priorités et à chaque itération; tout ceci étant basé sur la fameuse règle des 80/20 (80% des utilisateurs vont utiliser 20% des fonctionnalités, donc ces 20% devraient être développés en priorité).

Les avantages d’une telle méthode comparée à une méthode plus classique (Cycle en V, …) sont nombreux: la flexibilité, les feedbacks sont fréquents et tôts, le scope est priorisé, …

La méthodologie Scrum

La méthodologie Scrum

Product Owner

Silvia est notre chef de projet, mais pour les besoins de Scrum, elle remplit également le rôle de Product Owner. Notre situation business est un peu particulière et complexe, et il nous est impossible d’impliquer le client et de l’amener à travailler à nos côtés. Donc Silvia a l’incroyable chance (!) d’être la personne chargée de tirer le maximum du client et d’essayer d’en déduire des spécifications et contraintes. Jusqu’à maintenant, çà n’a pas été simple. Le jour qui a suivi le début du premier sprint, le client nous a finalement fourni des screenshots des sites que nous devions redévelopper sur nos plateformes…

L’autre rôle important de Silvia, évidemment, est de décider des priorités de chacune des caractéristiques. Même si à la fin, on est censé avoir développé tout, il est vital de se concentrer tout d’abord sur le plus important et le plus prioritaire, et c’est ce qu’elle nous a aidé à faire en apportant une vision plus orientée business à nos Daily Scrum Meeting.

Scrum master

En tant que Scrum master, je suis responsable de la bonne marche du projet et je dois m’assurer que tous les membres de l’équipe suivent bien le process Scrum et ses artefacts. Je mène les réunions quotidiennes et veille à ce que nos décisions soient en ligne avec les priorités business dictées par le client et/ou le Product Owner. Mon rôle est également d’identifier tous les problèmes et toutes les sources de ralentissements de travail des développeurs et de les solutionner. Je n’ai ici aucun rôle de développement, et je n’ai aucun rôle décisionnaire: les décisions sont prises en équipe et les différentes tâches de développement sont affectées d’un commun accord. Même sans rôle de décision, je me dois d’aider et d’encourager la communication au sein de l’équipe, et je suis également le travail en prenant note de tout et en gardant une trace de tout ce qui est effectué; ce qui me permet également d’avoir une visibilité sur l’avancée du projet et de donner à Silvia une projection sur le futur.

C’est ma première expérience comme Scrum Master, et seulement ma deuxième expérience dans une équipe Scrum. Il y a une semaine, nous avons terminé notre première itération et avons fait une démonstration à Silvia et quelques personnes de la hiérarchie (3 de mes supérieurs dont le directeur de département).

Honnêtemenet, pour nous tous cette première expérience fut vraiment faite dans un contexte très compliqué. N’y voyez là aucune manière de chercher des excuses, mais d’habitude une équipe Scrum est toujours placée dans de bien meilleures conditions:

Mais nous avons surmonté ces obstacles et obtenu un résultat vraiment agréable – on a même amélioré les composants de bases qui avaient été développé par d’autres régions.

Les principaux problèmes que nous avons eus

Durant ce sprint nous avons eu de nombreux problèmes. Certains problèmes auraient pu être anticipés, mais pour d’autres il n’y a pas grand chose que nous pouvions faire:

L’erreur à ne pas faire

Au début du premier Sprint, nous avons décidé de ne pas fixer de date de fin de sprint. Il s’agit de l’un des prédicats de base lorsqu’on débute un Sprint, mais nous pensions que fixer le scope serait suffisant. Grosse erreur. Au bout de plusieurs semaines, nous nous sommes rendus compte que nous n’étions plus axés sur la livraison à une date donnée d’un produit partiellement terminé et en tout cas délivrable tel quel. C’est à ce moment-là qu’on a vraiment commencé à s’inquiéter des priorités et à mettre de côté certaines fonctionnalités – même s’il s’agit d’un travail compliqué.

Malgré tous ces problèmes, nous avons réussi à rafraîchir toute la logique du framework et des composants que nous avions réutilisé depuis d’autres régions. Le front-end, qui n’avait absolument pas été travaillé par d’autres, a été particulièrement chiadé par notre équipe et c’est toujours agréable de voir un produit qui en plus est un tant soit peu utilisable et ergonomique.

Les outils

Dans une équipe Scrum, la meilleure situation est lorsque toute l’équipe est dans la même salle, avec un grand mur ou un grand tableau blanc. Un sprint backlog peut être complètement dessiné sur le mur, ainsi qu’un product backlog. A chaque réunion quotidienne, les fonctionnalités (les post-its) peuvent être physiquement déplacés d’un état à l’autre. Le simple acte de déplacer une fonctionnalité est vraiment un atout important pour la réussite du process.

Malheureusement, du fait de notre situation particulière (4 personnes dispersées sur 3 pays), le tableau blanc aurait été trop compliqué. Nous avons donc dû nous contenter d’un fichier Excel, que j’ai amélioré petit à petit le long du Sprint; et qui contient pour chaque fonctionnalité le temps restant estimé de développement. D’autres informations y apparaissaient, comme la velocité en cours de l’équipe, le temps planifié, …

Nous avons également essayé Pivotal Tracker, mais avons décidé de l’abandonner après avoir trouvé quelques problèmes, notamment pour les estimations des fonctionnalités.

Au sujet de la communication au sein de l’équipe, la plus grande partie se passait par email. Les Scrum Daily meeting avaient lieu à 17h (heure de Madrid), dans une salle de réunion, en utilisant  Skype pour les appels audios et Webex pour le partage de bureau. Typiquement, je partageais le backlog Excel et on travaillait directement dessus; et parfois les documents PDF ou les mails qui nous servaient de spécifications étaient également partagés.

Voilà, je pense que j’ai terminé. D’autres Sprint ont eu lieu depuis l’écriture de cet article, je vous en dirais plus. Je suis persuadé qu’en 2011 je reviendrai souvent ici vous parler de Scrum.

Nicolas.

11.28.2010

Lately i’ve been pretty excited about work. For the past month i have been a Scrum master in a team of 4 people (including 2 developers, Jose and Pepe and the Product Owner Silvia, who is also the project manager).

What is Scrum?

In a few words, Scrum is an Agile metholodogy for project management. It applies mainly on software engineering projects but is also suitable for other kind of projects. The main idea behind Scrum is to have small iterations of works, delivering a shippable product at the end of each one. The client is really involved in the project (via the Product Owner) and can give his feedback over the product very often and very early in the process. Priorities are decided by him and on each iteration, the team focus on developing the most important stories first, based on the 80/20 rule (80 % of the users will use 20% of the features, so those 20% features should ideally be developped first). Its advantanges compared to more classical approaches (Waterfall) are numerous: flexilibity, frequent and early feedback, prioritization of the scope, …

Scrum methodology

Scrum methodology

Product Owner

Silvia is the project manager, but for the Scrum needs, she took the role of the Product Owner. Our business situation is a bit complex and it is impossible to get the client involved and working along with us. So Silvia had the dream role of trying to get the client to share his thoughts with us, and it was far from being easy. The day after the beginning of the Sprint, the client finally gave us screenshots of the sites we were supposed to redevelop, … The other main role of Silvia, obviously, was to decide about the priorities of the features. Although at the end we are supposed to develop everything, it is important to focus first on the most important, and thats what she helped us to do by bringing a more business-oriented vision to our daily meetings.

Scrum master

As a Scrum master, i am in charge of keeping the project moving on and making sure that all the team is following Scrum processes and artifacts. I lead the daily meetings and make sure that we are still in phase with business priorities, while also trying to remove impediments from the team. I am not actually doing any development nor have any decision-making role, but i try to help and encourage team’s communication and keeping track of everything that is done and try to foresee what is coming next to give Silvia some vision.

It is my first experience as a Scrum master and only my second experience overall in a Scrum team. One week ago we actually closed our first iteration, and made a demo to Silvia and some stakeholders (3 of my superiors including my head of division).

To be honest, for all of us, this first Scrum experience was really made in a complicated context – most of the time not compatible with Scrum:

But we made it and actually got a nice result, thanks to everybody’s work.

The main issues we had

We had a lot of issues during the Sprint. Some we could and should have anticipated more, some we seriously couldn’t do anything about:

The BIG mistake

We actually started the Sprint without fixing an end date. Although it is one of the basic thing for a Sprint, we thought that just fixing the scope would be enough. BIG MISTAKE. After a while, we realized that we were not focusing anymore on having something deliverable and shippable to show at a given moment. Thats when we started worrying about priorities and really put apart some of the stories, although it was hard.

Despite this, we managed to bring fresh air to the logic and the front-end.

And we are now running the second sprint :-)

The tools

When doing Scrum, the best situation is when all the team is in the same room, with a big wall or a big whiteboard. People can draw a complete sprint backlog and a complete product backlog on the whiteboard, and physically moved stories (post-its) from one state to the other. The simple act of actually moving a story is usually a real plus in the process.

Unfortunately, due to our particular situation (4 people spread over 3 countries), the physical whiteboard would have been too complicated.

So we went for an Excel sheet, that i improved along the Sprint, basically saying for each story the remaining estimated time; and also gathering also information like the actual velocity of the team, the planned time (supposing people were able to produce 0,7 man day by day), …

We tried also Pivotal Tracker, but found some problems with retroactively doing a Sprint backlog, and with remaining estimations.

About the team communication, well most of it was done through email. Scrum meeting were held at 5pm (CET time), in a meeting room, using Skype for the calls and Webex to share my desktop. I would usually share the Excel backlog and directly input the info on it, live; as well as share the PDF documents or Firefox to read an email together!

And i think thats it… Other sprints are on their way so i’ll let you know about any relevant new info about Scrum or our use of Scrum!

Nicolas.