Pilot Systems défend les méthodes agiles pour la gestion de ses projets
Un projet informatique est avant tout un travail de connaissance, la définition exacte du besoin et de la solution à apporter représente la part substantielle du projet. Dans de tels projets, à moins de disposer d'énormes moyens, il est illusoire de penser tout prévoir ; la souplesse est une réponse bien plus adaptée.
Les méthodes agiles mettent donc avant tout l'accent sur l'efficacité des développements pour s'adapter aux imprévus et autres changements de spécifications. Le concept de base repose sur une approche itérative avant tout pragmatique : nul ne sert de prévoir les moindres fonctionnalités finales d'un logiciel, l'accent est mis sur ses fonctions primaires dont les itérations entre utilisateurs et développeurs permettront d'affiner l'étape suivante.
L'itération, la base d'une communication réussie
Qu'entend-on concrètement par itération ? Dans le contexte de développement de projets, une itération représente un cycle d'échanges entre utilisateurs et développeurs. Ce cycle est de durée variable en fonction des projets et des méthodes employées. De deux semaines à plusieurs mois, le cycle repose sur le dialogue et l'échange d'informations. Les développeurs doivent ainsi faire preuve d'une très grande flexibilité permettant de traduire les retours des utilisateurs en un code adapté.
Un nouveau modèle
Dans le modèle classique, afin de préciser toutes les spécifications, le cahier des charges est souvent très volumineux, mais bien souvent, toute évolution fait l'objet d'une nouvelle négociation. L'utilisateur se retrouve in-fine avec un outil cher et qui ne correspond pas à son besoin.
Le contrat "agile", quant à lui, définira un périmètre minimal au projet tout en laissant de la latitude sur ce contour. Il visera une première version fonctionnelle qui fera ensuite l'objet de nouvelles itérations dans des versions successives. Cette façon de procéder change fondamentalement la relation client-fournisseur, basée sur le dialogue où les acteurs doivent se montrer disponibles dès l'initiation du projet. Dès que le client et le fournisseur ont réussi à atteindre "l'esprit agile", les étapes s'enchaînent beaucoup plus facilement.
Par les méthodes agiles, les rôles sont ainsi redéfinis. Les développeurs "agiles" envisagent les projets de façon bien différente. Parfois réduit au rôle de "traducteur de code" dans les méthodes traditionnelles, le développeur est en contact permanent avec le client. Le chef de projet change lui aussi : il assure le suivi du projet et l'animation de l'équipe, mais il est également garant du code.
Les méthodes agiles, pour quelle structures ?
Ces méthodes s'adressent avant tout aux petites ou moyennes SSII dont les projets ne sont pas trop volumineux. Conçues pour des équipes de quatre à huit personnes environ, cette gestion de projet responsabilise les développeurs d'une part et demande une bonne implication de la maîtrise d'ouvrage d'autre part.
Les méthodes agiles ne peuvent fonctionner que dans un cadre de confiance et de transparence, c'est la contrepartie nécessaire à la liberté qui est donnée de part et d'autre. C'est le pré-requis nécessaire à la collaboration et à l'adaptation souple aux exigences fonctionnelles et techniques au fur et à mesure de l'avancement du projet.
Les méthodes agiles ont désormais fait leurs preuves, aussi bien sur des projets aux délais très serrés que sur des projets d'enjeux stratégiques. Ces méthodologies ont fait l'objet de différentes formalisations, adaptées à différents concepts, l'un des plus répandus étant certainement SCRUM. Même les méthodologies visant les grands projets, comme RUP (Rational Unified Process), y ont puisé largement.
L'agilité, la clé de l'innovation
Les méthodes agiles s'affichent dans une perspective d'innovation car elles mélangent différentes approches de management (travail en binôme, responsabilité collective) et libèrent la créativité tout en garantissant réalisme et conformité.
Issu de l'observation pragmatique de la vie des projets informatiques et se basant sur le partage des responsabilités, les méthodologies agiles évitent de s'encombrer de ce qui n'est pas nécessaire, coupant ainsi les coût. Ainsi la documentation sera limitée au strict minimum, le code faisant référence, les tests prennent une importance capitale et tout est fait pour faciliter un dialogue simple et direct.