L’agilité c’est quoi ?
Manifeste agile
L’origine du terme « agile » remonte au Manifeste Agile (2001), publication pour laquelle dix-sept experts du domaine du développement logiciel se sont réunis afin de débattre des points communs entre leurs méthodes de développement.
De ce débat est né un manifeste de référence listant les valeurs de la philosophie agile :
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
L’adaptation au changement plus que le suivi d’un plan.
Fonctionnement des méthodes agiles
Les méthodologies agiles se basent sur un constat simple :
❗ Planifier la totalité de votre projet dans ses moindres détails avant de le développer est contre-productif.
En pratique, les choses ont tendance à changer pendant le temps de développement d’un projet. Il est donc recommandé de fixer des objectifs à court terme. On divisera un projet en plusieurs objectifs utilisateurs (Epics et user stories), qui seront réalisés par l’équipe de production jusqu'à ce que l'objectif final soit atteint. Cette approche plus flexible permet des changements d’objectif, et ainsi de s’adapter aux redéfinitions du besoin.
Aussi, une méthode agile sera toujours basée sur une relation privilégiée entre le client et l'équipe projet. Sa satisfaction étant la priorité, l'implication totale de l'équipe et sa réactivité aux changements sont essentielles. Le dialogue est privilégié. C'est le client qui valide chaque étape du projet.
Pourquoi avoir choisi l’agilité chez Lonestone ?
Nous avons fait le choix de basculer vers l’agilité pour plusieurs raisons :
1. Manque de flexibilité sur des méthodes traditionnelles
Historiquement nous suivions des méthodes de gestion de projet classique comme le cycle en V, avec un beau cahier des charges rédigé au millimètre près… Cependant la réalité de la production est bien différente.
Le marché évolue, les besoins aussi : nous nous sommes rendu compte que le cahier des charges était systématiquement erroné avant même le lancement de la production. Ce système ne permettait pas d’offrir de la flexibilité à nos clients, et ne nous permettait pas non plus de faire les meilleurs choix en fonction du contexte.
Un changement en cours de route entraîne bien souvent un “élément non prévu”, déclenchant des devis complémentaires et créant de l’insatisfaction de chaque partie.
2. Implication du client (casser l’effet boite noire)
Le développement d’un produit n’est pas une simple recette de cuisine que l’on prend et que l’on applique. C’est quelque chose de mouvant, qui nécessite de pouvoir s’adapter à la réalité du terrain et des opportunités du marché et les besoins des utilisateurs.
L’agilité permet de créer une véritable responsabilisation du client au cours de la production car il est partie prenante de chaque décision sur la construction de son produit. Avec l’aide du Product Manager, le client co-construit le backlog et sa priorisation. Il teste aussi la plateforme après chaque itération, et il est garant des choix métiers à faire au cours des différentes phases du projet. L’implication du client et de l’ensemble de l’équipe produit est primordiale pour produire ensemble un produit apportant un maximum de valeur.
3. L’être humain est mauvais pour estimer son temps
L’estimation d’une tâche au début d’un projet est nécessairement imprécise: il manque trop de données. Dois-je me connecter à une API tierce ? Est-ce qu’il me manque du contexte pour réellement comprendre l’utilisation finale de telle ou telle fonctionnalité ? etc.
L’estimation est un jeu parfois hasardeux et très pesant budgétairement. Aussi, plutôt que de nous enfermer dans une liste précise de fonctionnalités, nous préférons nous engager sur de grandes problématiques utilisateurs auxquelles nous allons répondre en fonction du budget et des délais imparti. Ceci permet de nous concentrer sur l’essentiel: répondre au besoin de l’utilisateur.
Les bénéfices de l’agilité
Chez Lonestone nous partons du postulat suivant : un produit en développement évolue avant, pendant et après sa conception. A partir de ce postulat, nous tirons 4 bénéfices principaux en intégrant l’agilité dans nos méthodes de travail.
1. Simplifier la visibilité du projet
Parmi les avantages, la création de cycles courts (généralement pas plus de 3 semaines) offre une meilleure visibilité sur ce à quoi le projet ou le produit final ressemblera réellement. Les nombreux tests et démonstrations à la fin de chaque cycle permettent au responsable du produit côté client d’observer concrètement l’avancement. Ainsi tout n'est pas pensé avec des hypothèses lors de la conception, mais adapté en temps réel à partir des éléments collectés dans les cycles précédents.
2. Faire évoluer le produit
Grâce à cette vision adaptative, le projet agile peut changer de direction à tout moment. La solution finale n'est pas figée avant la conception, mais est pensée en cours de route et donne de la flexibilité au projet. Le périmètre discuté au début du projet peut être modifié pour répondre aux nouvelles attentes et ainsi créer plus de valeur.
3. Livrer vite, tester souvent
L’objectif de l’agilité est aussi de fonctionner en itérations courtes. Chaque cycle se focalise sur une ou plusieurs problématiques utilisateurs apporteuses de valeur et pouvant être exploitées directement à la fin du cycle . Chaque cycle se clôture avec une démo permettant d’exposer le travail engagé et de faire tester le produit en état d’avancement par le client et par les utilisateurs.
4. Remettre l’humain au centre de la production
Avec une approche agile, les métiers sont impliqués dès le début du processus. L'immersion est donc immédiate afin que chacun puisse se familiariser avec le projet. Cela nous permet d'identifier les risques très tôt et de réduire les malentendus par la suite en allant tous dans la même direction.
Quelle forme prend l’agilité chez Lonestone ?
Le cadrage
Les cahiers des charges sont bien pour prendre connaissance du projet, mais ne seront pas la recette de cuisine à appliquer. En amont des projets, nous menons une mission de cadrage en collaboration étroite avec le client pour définir la vision MVP du projet au regard du budget cible, les principales Epics à adresser, les parcours utilisateurs principaux et la deadline du client.
Cette phase de cadrage permet d’avoir une idée concise sur ce qui est faisable dans le budget et le délai du client, mais aussi de recentrer le projet sur les objectifs utilisateurs principaux en amont de la production.
Des choix techniques permettant une meilleure scalabilité
Chez Lonestone nous réalisons des choix techniques en amont et en cours du projet pour assurer une bonne scalabilité et adaptabilité du projet pour anticiper les évolutions en cours de route. Conteneurisation, base de code saine et architecture robuste et documentée sont nos meilleurs alliés.
Une phase de production en itérations de 2 semaines :
Chacune de nos itérations de développement est composée des phases suivantes :
Challenge du backlog produit pour préparer les itérations suivantes : revoir la priorisation et s’assurer d’être aligné avec les objectifs stratégiques du client et des besoins utilisateurs émis lors des tests des itérations précédentes;
Co-définition des users story cibles et des critères d’acceptation : pour s’assurer une bonne compréhension du fonctionnement attendu et éviter au maximum les zones d’ombres pour les développeurs;
Chaque itération se clôture avec une démo et la livraison régulière des nouvelles fonctionnalités auprès des utilisateurs ! Ceci permet de récolter très rapidement des retours terrain permettant d’éclairer les choix lors du challenge du backlog.