Répondre vite et mieux aux attentes du client
Dans les années 1990, un groupe américain, le Standish Group, a commencé à élaborer un rapport qui met en lumière le taux de succès et d’échecs des projets informatiques dans le monde. En 2002, le rapport a montré que 2/3 des fonctions d’un système d’information étaient rarement ou jamais utilisées, et qu’uniquement 1/5 des fonctions étaient toujours ou souvent utilisées par le métier. Donc, 2/3 des fonctions ayant exigé du temps et de l’argent n’ont créé aucune valeur pour l’entreprise.
Rapport du Standish Group (2002)
Ce constat montre toutes les difficultés qu’ont les entreprises à respecter le triangle coûts/délais/objectifs. Il y a plusieurs explications possibles, dont voici quelques-unes :
- les besoins sont mal définis ;
- les tâches ne sont pas priorisées ;
- les estimations sont mauvaises ;
- la communication entre le client et la maîtrise d’œuvre est quasi inexistante ;
- les équipes sont stressées, démotivées, isolées ;
- il existe des difficultés à intégrer des modifications en cours de projet ;
- la livraison n’arrive qu’en fin de projet ;
- les méthodes prédictives sont trop rigides, ne savent pas s’adapter, ne sont pas assez flexibles, pas assez agiles.
Ainsi, être réactif aux changements, établir une relation solide avec ses clients, maintenir la motivation de son équipe, promouvoir l’innovation, etc., devient inévitable dans une société en perpétuel mouvement.
Historique et définition
Les méthodes agiles sont apparues au début des années 90 en réponse aux méthodes traditionnelles trop rigides dans le domaine de l’informatique, mais elles peuvent s’appliquer sur différents types de projets.
La notion de méthode agile a été officialisée en 2001, aux États-Unis, lorsque 17 figures éminentes du développement logiciel se sont réunies pour débattre du thème unificateur de leurs méthodes respectives, dites méthodes agiles. Cette réunion a donné lieu à l’élaboration d’un texte, le « Manifeste Agile », considéré comme la définition canonique du développement Agile et de ses principes sous-jacents.
Les méthodes agiles se différencient des méthodes traditionnelles par la mise en œuvre d’un ensemble de quatre valeurs et de douze principes décrits dans le « Manifeste Agile ». La vocation de ce manifeste est de promouvoir les mêmes fondements, quelle que soit la méthode agile utilisée.
Le « Manifeste Agile »
Les quatre valeurs du « Manifeste Agile » sont les suivantes :
- les personnes et leurs interactions sont plus importantes que le processus et les outils ;
- un logiciel qui fonctionne prime sur la documentation ;
- la collaboration est plus importante que le suivi d’un contrat ;
- la réponse au changement passe avant le suivi du plan.
Ces quatre valeurs se déclinent en douze principes généraux communs à toutes les méthodes agiles :
- satisfaire le client en livrant tôt des logiciels utiles, qui offrent une véritable valeur ajoutée ;
- accepter les changements, même tard dans le développement ;
- livrer fréquemment une application qui fonctionne ;
- collaborer quotidiennement entre clients et développeurs ;
- bâtir le projet autour de personnes motivées en leur fournissant environnement et support, et en leur faisant confiance ;
- communiquer par des conversations en face à face ;
- mesurer la progression avec le logiciel qui fonctionne ;
- garder un rythme de travail durable ;
- rechercher l’excellence technique et la qualité de la conception ;
- laisser l’équipe s’auto-organiser ;
- rechercher la simplicité (pragmatisme) ;
- à intervalles réguliers, réfléchir aux moyens de devenir plus efficace.
Le « Manifeste Agile » ne définit pas une méthode agile. C’est la façon de mettre en œuvre ces principes qui va constituer une méthode agile, que l’on peut appeler une pratique agile.
Méthodes agiles : but et définition
Le but d’une méthode agile est de maximiser la valeur ajoutée dans un projet.
D’après la définition de Scott Ambler, une méthode agile est une « approche itérative et incrémentale pour le développement logiciel, réalisé de manière très collaborative par des équipes responsabilisées, appliquant un cérémonial minimal, qui produisent un logiciel de grande qualité dans un délai contraint, répondant aux besoins changeants des utilisateurs ».