Pour commencer, on parle de “la méthode Agile”, mais en réalité, il y a des méthodes agiles qui ont toutes pour origine le Manifeste Agile : celui-ci a été rédigé en 2001 par un comité d’experts et énumère des principes clés permettant de « mieux développer des logiciels ».
Le manifeste valorise en particulier :
- « les individus et leurs interactions plus que les processus et les outils ;
- des logiciels opérationnels plus qu’une documentation exhaustive ;
- la collaboration avec les clients plus que la négociation contractuelle ;
- et l’adaptation au changement plus que le suivi d’un plan »*.
Pourquoi utiliser les méthodes agiles ?
Les méthodes dites « agiles » ont pour objectif d’améliorer la productivité des équipes de développement.
Elles répondent aux problématiques induites par les méthodes traditionnelles qui s’appuient sur un cycle de développement en V ou sur un cycle en cascade.
Voyons pourquoi et comment.
Les problématiques induites par les méthodes de développement traditionnelles
Modèle du cycle en cascade (hérité du BTP)**
Dans cette approche, les étapes sont effectuées les unes après les autres (de la même manière qu’on ne peut construire la toiture d’une maison avant ses fondations).
Ici, tout est anticipé et planifié dans un cahier des charges.
C’est pourquoi on parle aussi de « méthode prédictive ».
Le client ne voit la solution que lorsque l’intégralité des fonctionnalités répondant aux exigences initialement définies a été développée et testée.
Modèle du cycle en V**
Ici, les étapes sont également effectuées de manière séquentielle les unes après les autres.
Mais ce modèle permet, en cas d’anomalie détectée, de limiter le retour aux étapes précédentes : chaque étape de la ligne ascendante correspond en effet à une étape de la phase descendante.
Ce modèle offre un peu plus de réactivité que le modèle en cascade, sans toutefois résoudre la problématique de réduction du délai entre l’analyse des besoins initiale et la recette.
Les 2 grands défauts de ces méthodes traditionnelles sont :
- La lenteur avec laquelle elles permettent de produire une application que l’on peut mettre entre les mains d’utilisateurs ; elles n’impliquent d’ailleurs pas les utilisateurs en cours de développement.
- Le manque de réactivité en cas de modification ou d’anomalie détectée (les tests interviennent trop tard dans le processus).
S’appuyer sur les méthodes agiles pour mettre en œuvre un projet mobile
Dans le cadre de projets mobiles, on peut difficilement s’appuyer sur les méthodes de développement classiques : car aujourd’hui tout va très vite.
Les directions Métier sont soumises au rythme effréné auquel le marché évolue (rythme souvent imposé par les clients dont les exigences ne cessent d’augmenter).
On ne peut donc pas imaginer qu’il se passe plusieurs mois entre l’expression des besoins et la mise en production d’une solution.
Un cycle de développement itératif, incrémental et adaptatif
Pour répondre à cette problématique, la majorité des équipes de développement utilise donc les méthodes agiles qui reposent sur un cycle de développement « itératif, incrémental et adaptatif » :
Itératif
Le processus de développement (codage, tests) est appliqué plusieurs fois sur des portions de l’application.
Chacun de ces « microcycles » de développement donne lieu à une « recette », c’est-à-dire à la présentation au client (ou aux utilisateurs) d’une partie fonctionnelle du logiciel attendu.
Incrémental
Chacune des itérations vient compléter la portion d’application développée sur le cycle précédent (sans remettre en question le code : on dit qu’il n’y a pas de « régressions »).
Adaptatif
Les méthodes agiles prennent en compte l’évolution naturelle des besoins des clients : Elles considèrent que dans un projet de développement, tout ne peut pas être anticipé.
Il ne s’agit évidemment pas de remettre en question l’expression initiale des besoins ; mais plutôt de tenir compte des remontées qui sont faites par l’utilisateur à l’occasion du test d’une version intermédiaire de l’application (issue d’une incrémentation).
La mise en situation peut en effet l’amener à faire évoluer sa demande initiale ; ce qui peut induire une adaptation du développement dans les itérations suivantes.
Une variante intéressante : La méthode Agile Scrum
En réalité, les principes émis par le Manifeste Agile ont été sujets à bien des interprétations.
Ce qui fait qu’il existe plusieurs variantes de méthodes agiles, dont la plus connue et la plus utilisée est Scrum.
Cette variante se caractérise par un jargon bien particulier.
Elle s’appuie par exemple :
- Sur des réunions quotidiennes appelées « scrums » (« scrum » en anglais signifie « mêlée », comme au rugby) réunissant toute l’équipe de développement.
- Sur des cycles de développement appelés « sprints ».
- Sur 3 acteurs principaux que sont : le(s) développeur(s), le product owner (propriétaire du produit, c’est-à-dire en général le chef de projet, côté utilisateurs ou client) et le scrum master (chef de projet aussi, mais cette fois du côté de l’équipe de développement).
Pour aller plus loin :
- [ Article ] Comment l’Agilité est-elle mise en œuvre dans le cadre d’un projet de développement d’appli mobile ?
- [ Article ] Conception d’appli mobile : 4 leviers pour réussir avec agilité
- [ Article ] Projet d’appli mobile : l’expression de besoins, un casse-tête insoluble ?
Vous souhaitez réagir ou en savoir plus ?
Nous restons à votre disposition pour échanger avec vous autour d’un café.