SCRUM - Méthode de gestion de projet Agile
Préambule
Agile Software Development
Au début années 1990, les maîtrises d’oeuvre informatique appliquent des méthodes héritées de la « crise du logiciel ». Les normes habituelles sont :
- des normes tels que DOD2167, ISO 12207...
- des cycles de type MERISE, en V ou en cascade.
- CMMI.
Il est apparu que les méthodes de gestion de projet classique ont de nombreux inconvénients. Ainsi on retrouve bien souvent les mêmes erreurs au fil des projets informatiques :
- Tout l'effort est concentré dans une phase de planification
- Le plan de projet mis en place est peu voire pas du tout adapté aux changements éventuels
- La considération de l'équipe de développement, mise en avant comme un facteur de production et non
Il est finalement apparu de nouvelles méthodes de développement regroupé sous le sigle de : Agile Software Development.
On citera comme méthode de développement Agile :
- Scrum
- Extreme Programming
- Adaptive Software Development (ASD)
- Dynamic System Development Method (DSDM)
Petit à petit s'est regroupé sous le terme d'Agile Alliance, des personnes promottant l'utilisation de ces méthodes de développement.
Agile Manifesto
Depuis un dictionnaire on définit l'agilité comme :
- « Habilité à bouger rapidement de façon légère et gracieuse, caractéristique de ce qui s’adapte facilement » (webster)
- « Synonyme de légèreté de souplesse , facilite a se mouvoir »
- « Capacité a réagir promptement »
Dans le monde industriel, l'agilité définit surtout la capacité à s'adapter et à réagir à l’environnement. Le concept de méthode Agile met en avant l’inter-activité entre les acteurs d’un projet par rapport à un formalisme. Le dialogue a pour but d’augmenter le niveau de satisfaction du client.
Pour ce faire, les méthodes Agile s'appuie sur ce que l'on nomme : le Manifest Agile. Ce dernier est véritablement une liste de valeurs attachés au monde du développement Agile :
- Les personnes et interactions priment sur les processus et outils
- Logiciel fonctionnel privilégié par rapport à une documentation détaillée
- Collaboration avec le client plutôt qu'une négociation au contrat
- S'adapter au changement plutôt que de suivre un plan
De ces quatre valeurs douze principes :
- Satisfaction très tôt du client par des livraisons de versions fonctionnelles régulières et fréquentes : le client peut éventuellement décider de mettre en production l’application.
- Acceptation des demandes de changement, même tard dans le processus de développement. Le but est de produire des systèmes flexibles en adéquation avec les besoins clients.
- Des livraisons le plus fréquemment possible des versions opérationnelles, pour encore une fois, coller au maximum aux besoins clients
- Coopération au quotidien entre clients et développeurs
- Construction des projets en se concentrant sur les individus et leurs motivations et mettant en avant la confiance.
- Le fonctionnement de l’application est le premier critère
- Rythme soutenable si le rythme de développement n’est pas soutenable, la qualité du code s’en ressentira au final
- Excellence technique doit être promue et la conception doit être mise en avant car elle améliore l’agilité.
- Répondre le plus simplement aux besoins tout en restant adaptable et en évitant de développer des chose inutiles
- L’auto-organisation des équipes afin laisser émerger la conception, les spécifications, l’architecture. Cela permet également de partager les responsabilités
- L’introspection de l’équipe, à intervalles de temps réguliers ; l’équipe doit s’interroger sur la façon de devenir plus efficace et s’ajuster à son environnement
Analyse de qualité
On peut dès lors remarquer l'objectif principal de SCRUM : obtenir la meilleure rentabilité tout en améliorant la satisfaction du client.
Les avantages clés des méthodes Agile sont les suivants :
- Minimisation des risques : les itérations sont courtes, donc les problèmes sont rapidement identifiés.
- Communication temps réelle : on préfère les « face à face », on écrit donc peu de documentation
- Indiqué pour l'imprévu : on s'adapte rapidement au changement
De ces avantages on en tire donc des bénéfices :
- Visibilité
- Vélocité
- Adaptabilité et réactivité (dimensions clés du Time to market)
- Réduction des risques
- Qualité
- Efficacité
Ci-dessous une enquête réalisée été 2007 par Version One et l’ALPN (Agile Project Leadership Network), 1700 personnes (qui ont répondu) de 71 pays … et vous ?
Vous pouvez lire la suite de l'enquête ici.