Les bases de la méthode agile Scrum

Scrum est une méthode agile que j’affectionne particulièrement car elle est simple, légère et se base avant tout sur l’humain. Elle fait parti des méthodes agiles les plus utilisées dans le monde. Ce billet fait l’objet d’une présentation générale de Scrum et permet d’en comprendre les fondements et l’ intérêt celle-ci.

Scrum trouve son origine dans une publication de Takeuchi et Nonaka « The New Product Developpement Game » paru en 1986. Cet article met en avant les avantages  de la mise en place de petites équipes pluridisciplinaires intégrés et soudés autour d’une stratégie plus flexible que les méthodes classiques.

C’est en 1993 que Ken Schwaber et Jeff Sutherland se sont inspirés de cette approche et du Lean Management pour créer Scrum.

Scrum est un mot anglais signifiant « mêlée » car cette méthode s’insprire des valeurs collectives du rugby. La métaphore sportive est d’ailleurs utilisé tout au long du cycle de vie de Scrum. Mais quel est il ?

Cycle de vie Scrum

Le cycle de vie de Scrum est rythmé par des itérations de quelques semaines ce sont des sprints. La liste des besoins exprimés par le client en début de projet sont hiérarchisés et priorisés dans ce qui constitue le référentiel du projet : le product backlog.

A chaque fin de sprint est organisé une réunion de plannification, le sprint planning meeting durant laquelle l’équipe sélectionne dans le product backlog, en fonction des exigences et priorités données par le client, les prochaines taches à réaliser lors de l’itération suivante. Cette liste de taches définis pour une itération constitue un sous-ensemble du product backlog : le sprint backlog.

Durant un sprint seulement quelques éléments constitutifs du product backlog seront développés, testés et montré au client. Cette version réalisée est alors soumise au client durant le Sprint review meeting c’est une release. L’ensemble des étapes se répètent alors jusqu’à avoir effectué toutes les taches du product backlog le produit est alors terminé et livré.

Le principe très simple de Scrum a séduit beaucoup d’équipes projets.

Tags: , , , , , , ,

Mercredi, septembre 30th, 2009 Méthodes Agiles, Scrum Pas de commentaire

Avantages des méthodes agiles

Tout d’abord, voici un tableau qui détermine quels sont véritablement les avantages de l’utilisation des méthodes agiles ? (source : Gestion de projet, Vers les méthodes agiles de Véronique Messager Rota.

Avantages

Les +

La communication est de meilleure qualité Les malentendus, incompréhensions, incohérences sont mis en évidence très tôt dans le projet => il est encore possible de les corriger

L’utilisateur à la possibilité de clarifier ses exigences au fur et a mesure

Le client reçoit des « preuves » tangible de l’avancement du projet

La visibilité est meilleure Le client peut ainsi visualiser les travaux plus régulièrement sans attendre la fin du projet, puisque à la fin de chaque itération, les fonctionnalités retenus sont développées, testées, documentées et validées, prêtes pour l’exploitation
La qualité est évaluée en continu Les tests sont effectués à chaque itération, les anomalies détectées sont corrigées au fur et à mesure
Les risques sont évalués très tôt Grâce aux activités de développement précoces, les risques sont détectés tôt et résolu rapidement
L’équipe prend confiance L’itération donne une occasion d’apprendre, donc de capitaliser ou d’adapter les pratiques pour la suite du projet

Les premières itérations fiabilisent les prévisions

Le changement n’est plus une menace, mais au contraire, l’opportunité de mieux faire et de mieux satisfaire le client

Les coûts sont contrôlés Les coûts sont limités en terme de risques, au périmètre de l’itération ; s’il faut reprendre une itération on ne perd que les efforts de cette itération et non la valeur du produit dans sa globalité

On peut aussi arrêter le projet au terme de quelques itérations si l’on a plus de budget

Tags:

Lundi, mai 25th, 2009 Méthodes Agiles Pas de commentaire

Une alternative aux méthodes classiques : les méthodes agiles

Qu’est ce qu’une méthode agile ?

« Une méthode agile est une approche itérative et incrémentale, qui menée dans un esprit collaboratif, avec juste ce qu’il faut de formalisme. Elle génère un produit de haute qualité tout en prenant en compte l’évolution des besoins des clients »

Le principe est simple il s’agit de découper le projet en plusieurs étapes de quelques semaines : ce sont les itérations.

Durant une itération une version minimale est développée puis soumise au client dans sa version intermédiaire pour validation. Une fois validée, on ajoute de nouvelles fonctionnalités au fur et à mesure sur un mode incrémental. Le livrable s’enrichie donc à chaque version pour atteindre les niveaux de satisfactions et de qualités requis.

Chaque itération est une sorte de mini-projet avec l’ensemble des taches à effectuer : analyse, conception, codage et test ainsi que la gestion de projet. L’objectif étant d’obtenir à chaque itération une version opérationnelle qui à la fin de toutes les itérations sera le produit final.

  • L’idée principale des méthodes agiles est : on ne peut pas tout connaitre ou anticiper, il vaux mieux avancer petit à petit (itérations) afin de s’adapter au fur et a mesure.
  • Il n’existe plus alors en utilisant ces méthodes de « cahier des charges global » d’un projet mais une liste de besoins généraux avec un planning général qui fixe les grandes échéances/jalons du projet. A chaque itération en collaboration avec le client on définie les fonctionnalités qui seront détaillées puis développées en fonction de leur priorité. Suite à cela on établie un micro-planning correspondant aux activités nécessaires pour le développement de ces fonctionnalités.
  • Le principe du « timeboxing » (durée fixe pour toutes les itérations) permet de mobiliser les efforts sur des objectifs clairs et à court terme.

Quels sont alors les avantages et inconvénients des méthodes agiles ?

Tags:

Mardi, mai 19th, 2009 Méthodes Agiles Pas de commentaire

Problèmes liés à la gestion de projet classique

Je voudrais à présent porter votre attention sur trois problèmes que vous avez dû rencontrer lors de la gestion d’un ou de plusieurs projets : ce que l’on appelle l’ »effet tunnel », la gestion des tests et la production de documents.

« Effet tunnel »

Prenons l’exemple d’un projet durant une année. Le recueil des besoins prend deux mois et le client ne voit que le résultat que 9 mois plus tard !

La non-transparence de ces méthodes amène le client à ne pas vraiment savoir pourquoi il paye, pourquoi cela prend autant de temps, etc… De plus comment faire si à la fin du compte cela ne correspond pas aux besoins du client ? Ou bien si les besoins ont évolués entre temps ?

C’est le manque de communication entre le client et l’entreprise qui est à l’origine de ces problèmes. L’absence de jalons intermédiaire empêche la validation du produit avant la version finale ce qui peut être source de problèmes.

De plus, la succession des intervenants sur un même projet peut elle aussi poser des problèmes que ce soit pour la fluidité de l’information voire même sa déperdition, la fuite de l’énergie déployée ainsi que les nombreuses ruptures de charges.

Tests

Il faut également noter le manque de tests tout au long du projet lorsque l’on utilise cette méthode « en cascade ». En effet, puisque les tests sont réalisés en fin de projet les problèmes détectés sont alors plus complexe à arranger et seront donc plus couteux que si on les avait modifiés tout de suite.

Production de document

Enfin, la dernière chose importante est la production de documents. Il faut en effet afin de ce prémunir des risques définir un grand nombre de documents. Documents qui ne reflètent pas la réalité sachant que le client est plus sensible à ce qu’il voit en réalité sur un écran plutôt que des maquettes papier. (IKIWISI : I’llKnow It When I See It !)

Au final on s’interroge sur l’utilité de cette documentation qui en plus devient rapidement obsolète avec les différents changements il faut donc aussi les mettre à jour.

Les méthodes classiques sont très « rigides » et ne laisse pas de place aux changements. Elles offrent donc bon nombres de problèmes lors de la mise en place d’un produit qui se doit  d’être évolutif (un site web par exemple), mais aussi des avantages certains notamment pour la contractualisation d’un projet.

Qu’en est-il pour les méthodes agiles ?

Tags:

Mardi, mai 19th, 2009 Méthodes Agiles Pas de commentaire

Rappel sur les méthodes classiques de gestion de projets

Afin de bien comprendre les différences entre méthodes classiques et méthodes agiles il est important de faire un rappel de ce que sont les méthodes traditionnelles de gestion de projets et d’en montrer certaines limites.

Ces méthodes sont basées sur une activité dite séquentielle qui est toujours plus ou moins la même :

  • Recueil des besoins
  • Définition du produit
  • Développement
  • Test
  • Livraison

Nous sommes ici face à une gestion de projet « en cascade », il faut qu’une partie soit validée pour passer à la suivante.

Ces méthodes ce caractérisent par le fait de vouloir tout planifier en amont du projet ce sont des approches dites « prédictives ».

Le plan de travail est donc toujours le même et décrit avec le plus de détails possible comment et quand le travail sera réalisé, les modalités de planification, d’exécution, de suivi et de clôture du projet. Une fois défini, il est difficile de tenir compte du changement et bien souvent on s’en tient au plan même s’il aurait été préférable de changer.

Or nous le savons tous les plans initiaux sont toujours modifiés et les besoins évoluent en permanence en fonction du marché ou pour n’importe quelles autres raisons.

Dans ce cas comment fait-on si une nouvelle technologie plus récente et plus intéressante pour notre projet émerge au beau milieu de celui-ci ? Comment fait-on si le client précise ou fait évoluer ses besoins ? Comment revient-on en arrière si ce que nous devions faire n’est pas réussi du premier coup ? Comment fait-on si un changement survient et remet en cause tout ou partie de ce qui a été fait précédemment alors que nous les considérions comme définitifs ?

On le comprend vite, les méthodes classiques sont trop « rigides» dans le cadre du développement d’un produit qui se doit d’être évolutif comme un site Internet par exemple. Les méthodes agiles sont la réponse à ces changements.

Tags:

Lundi, mai 18th, 2009 Méthodes Agiles Pas de commentaire

Méthodes agiles – Première approche

Avant de commencer vraiment, un peu d’histoire avec le pourquoi du comment des méthodes agiles.

C’est en 2001 que 17 personnes ce sont réunis afin de résumer ce qui pour eux étaient les facteurs clés de la réussite du développement d’un logiciel. Ils ont alors résumé leurs convictions sur cette nouvelle approche dans un document intitulé : « Manifeste pour le développement logiciel agile ».

Cette nouvelle approche peut être adaptée à la création web (domaine dans lequel je souhaite travailler) et met en avant les valeurs suivantes :

  • Les individus et leurs interactions plutôt que des outils et des processus
  • Des fonctionnalités opérationnelles plutôt qu’une documentation abondante
  • La collaboration avec le client plutôt que la négociation d’un contrat
  • S’adapter au changement plutôt que de suivre un plan

Ce mouvement à fait émerger toute une série de pratique, certaines ce focalisant sur les disciplines d’ingénierie, d’autres s’intéressant à des nouvelles formes de gestion de projet, et d’autres donnant de nouvelles responsabilités aux équipes.

Finalement, c’est à travers l’utilisation de ces méthodes agiles qu’il est plus facile de livrer un produit tout en dégageant de la valeur ajoutée.
Ce billet, bien que très cours, nous donne l’ensemble des notions liées à l’agilité. Avant d’entrer plus en profondeur dans les méthodes agiles nous allons faire un rappel sur les méthodes « traditionnelles » afin de bien comprendre les différences entre ces approches.

Pour cela, rendez-vous sur mon prochain billet !

Tags:

Vendredi, mai 15th, 2009 Méthodes Agiles Pas de commentaire

Entreprise Agile 2.0 – Pourquoi ce blog ?

Entreprise Agile 2.0 est un blog entièrement dédié aux « nouvelles » méthodes de gestion de projets : les méthodes agiles.

Ce blog à pour objectif de regrouper en un seul et même endroit l’ensemble des travaux de veille que j’effectue en ce moment sur le sujet.

Nous parlerons donc des méthodes agiles, en particulier de Scrum et d’eXtreme Programming, mais aussi de tout ce qui fait que l’on peut dire qu’une entreprise est 2.0.

Il existe beaucoup de ressources sur ces différents sujets ce sera donc l’occasion de les regrouper et surtout l’occasion de se poser les bonnes questions.

Pourquoi ? Pourquoi faire un blog et des recherches sur ce sujet ?

Je suis étudiant en gestion de projet, il est normal que je me renseigne sur les différentes manières de gérer un projet. Mais aussi parceque très bientôt je rentre dans le monde du travail et je pense que ces méthodes pourraient être un véritable atout dans mon futur travail et pour la web agency qui m’aura embauché.

Vous pourrez juger vous même des avantages et inconvénients de ces méthodes à travers les futurs billets de ce blog.

Bonne visite et bonne lecture.

Tags: , , , ,