On parle plutôt de: paradigme agile, état d'esprit agile, philosophie agile, culture Agile approche agile, … etc.
Cependant, on utilise le terme "méthodes agiles"
pour définir les méthodes qui relèvent de ce courant. Cycle en V (rappel)
Le terme "agile" définit une approche de gestion de
projet qui est contraire aux approches traditionnelles de type cycle en V. Introduction
La notion même de "gestion de projet" est
remise en question au profit de "gestion de produit". De façon à raisonner davantage "produit" que "projet". L'objectif d'un projet consiste bien à donner naissance à un produit. Introduction
Une approche dite "traditionnelle" attend
généralement du client une expression détaillée et validée du besoin en entrée de réalisation, laissant peu de place au changement. La réalisation dure le temps qu'il faut et le rendez vous est repris avec le client pour la recette. Introduction
Cet effet tunnel peut être très néfaste et
conflictuel. => un déphasage entre le besoin initial et l'application réalisée. De plus, il n'est pas rare que certaines fonctionnalités demandées se révèlent finalement inutiles à l'usage alors que d'autres, découvertes en cours de route, auraient pu donner plus de valeur au produit. Introduction
Selon une enquête du « Standish group »:
31 % des projets informatiques sont arrêtés en cours de route, 52 % n'aboutissent qu'au prix d'un important dépassement des délais et du budget tout en offrant moins de fonctionnalités qu'il n'en était demandé ; seuls 16 % des projets peuvent être considérés comme des succès. Introduction
Parmi les motifs d'échecs, arrivent en tête :
Manque d'implication des utilisateurs finaux : 12,8 %. Changements de spécifications en cours de projet: 11,8 %. Introduction
L'approche Agile propose au contraire de réduire
considérablement voire complètement cet effet tunnel : en donnant davantage de visibilité, en impliquant le client du début à la fin du projet et en adoptant un processus itératif et incrémental. Elle considère que le besoin ne peut être figé et propose au contraire de s'adapter aux changements de ce dernier. Mais pas sans un minimum de règles. Fonctionnement
Les méthodes agiles partent du principe que
spécifier et planifier dans les détails l'intégralité d'un produit avant de le développer est contre productif. Les imprévus ne manqueront pas d'arriver, rendant la planification et les spécifications très vite obsolètes. Fonctionnement
L'idée consiste à se fixer un premier objectif à
court terme, une fois ce premier objectif atteint, on marque une courte pause et on adapte la suite en fonction de la situation du moment. Et ainsi de suite jusqu'à atteindre l’objectif final. On parle donc d'une approche empirique. Fonctionnement
Dans le cadre d'un projet de développement
logiciel, le client élabore sa vision du produit à réaliser et liste les fonctionnalités ou exigences de ce dernier. Il soumet cette liste à l'équipe de développement, communique directement avec elle (plutôt que par papier) qui estime le coût de chaque élément de la liste. => pour se faire une idée approximative du budget global. Fonctionnement
L'équipe sélectionne ensuite une partie des
exigences à réaliser dans un intervalle de temps court appelée itération Chaque itération inclut des travaux de conception, de spécification fonctionnelle et technique quand c'est nécessaire, de développement et de test. A la fin de chacune de ces itérations, le produit partiel mais utilisable est montré au client. Ce dernier peut alors se rendre compte par lui même très tôt du travail réalisé, de l'alignement sur le besoin. Fonctionnement
L'utilisateur final peut se projeter dans l'usage
du produit et émettre des feedbacks précieux pour les futures itérations. La visibilité ainsi offerte est clef. Cette transparence peut également apporter davantage de confiance et de collaboration dans la relation client/fournisseur. Les risques quant à eux sont levés très tôt. Historique
1986 : première approche de gestion de
projet de développement itératif 1996 : première mise en œuvre d’une méthode similaire à la méthode Scrum (la méthode Agile la plus utilisée) 2001 : seconde mise en œuvre en réunissant 17 personnes célèbres du développement logiciel pour débattre du thème unificateur de leurs méthodes respectives. Historique
=> De cet événement est né le Manifeste Agile
rassemblant pour définir une nouvelle façon de développer des logiciels. Le terme "Agile" qualifiant ce type de méthode a également vu le jour à cette occasion. Aujourd'hui ces méthodes ont fait leurs preuves. Tout le monde (dans le monde de l'informatique) a au moins entendu parler d'une méthode Agile (Scrum, eXtreme Programming, RAD, …).