L’agilité, un moteur d’amélioration chez ITD

Agilité

Courant 2013, ITD a décidé de s’engager fortement dans une démarche d’agilité. Une approche pragmatique qui doit optimiser notre organisation, augmenter la fréquence et la qualité de nos livraisons et renforcer les liens entre nos équipes. Grâce à elle, nous sommes prêts à relever de nouveaux défis, parmi lesquels le lancement, prochainement, d’un nouveau ClickOnSite. Bonne lecture !

Coller au besoin du client

Dans un environnement fluctuant, il est difficile d’anticiper ses besoins, et ceux-ci évoluent en permanence. Les approches agiles génèrent souplesse et réactivité, aboutissant à une plus grande satisfaction des clients.
Bien des projets, qu’ils soient informatiques ou non, restent encore développés sur la base d’un cahier des charges détaillé. Ce document est censé tout prévoir à l’avance, et entre sa remise au prestataire et la livraison du projet (ou « recette »), il n’y a souvent que peu d’échange entre le client et son fournisseur. Résultat, après quelques mois, voire années (!), de développement, le projet livré est fréquemment très éloigné du besoin réel du client, qui a entre-temps évolué !

Une approche agile prend le contre-pied de cette démarche prédictive et statique. Plutôt que de fixer dans le détail des objectifs lointains et figés, elle consiste à définir les grandes lignes puis fixer successivement des objectifs précis à court terme. Le développement démarre très vite et le client reçoit, périodiquement, une version partielle mais fonctionnelle du produit commandé. Il dispose donc d’une excellente visibilité sur l’avancement des travaux et peut demander des adaptations.

Une adaptation permanente

Comment ça marche ? Le client exprime sa vision du produit à réaliser et établit un premier ordre de priorité métier des fonctionnalités souhaitées. A partir de cette vision, il négocie avec l’équipe le contenu d’une première livraison (release) réalisable en deux ou trois mois, compte tenu des ressources disponibles. On sélectionne pour cette livraison les fonctions qui apportent le plus de valeur métier, sans toutefois négliger les aspects purement technologiques : on obtient une liste priorisée de fonctions métier ou techniques à réaliser, qui permet de lancer un cycle de développement itératif. Chaque itération prend en compte, toujours par ordre de priorité, un nombre de fonctions significatif mais intégralement réalisable par l’équipe sur un laps de temps fixe et assez court (entre deux et quatre semaines en général). Une itération inclut des travaux de conception, de développement et de test. A l’issue de chaque itération, l’équipe doit démontrer que l’incrément de produit réalisé fonctionne. Le client est ainsi en mesure de vérifier l’adéquation du produit avec son besoin, demander certaines évolutions ou encore adapter l’ordre des priorités pour les itérations suivantes.

Cette approche réduit fortement les risques d’échec puisque le client valide les étapes au fur et à mesure. Elle garantit que le logiciel livré en fin de release est opérationnel et comporte le maximum de valeur métier (fonctions) atteignable compte tenu de la capacité de production réelle de l’équipe et des aléas. Elle renforce la relation de confiance et de transparence entre client et fournisseur. Autre caractéristique : elle favorise l’esprit de groupe et requiert une forte implication du client. Chacun est autonome, responsable, et tous avancent dans un même but, celui de réussir le projet.

Une approche formalisée au début des années 2000

L’expression « développement logiciel agile » a été publiquement formalisée en 2001. Cette année là, dix-sept spécialistes reconnus du développement informatique ont rédigé le « Manifeste Agile » (cf. agilemanifesto.org), définissant les principes fondamentaux et les critères communs des approches du même nom. Il existe de nombreuses méthodes agiles, une des plus populaires aujourd’hui étant Scrum (terme emprunté au rugby et qui signifie « mêlée »), retenue par ITD pour la conduite de ses projets.