Les chefs de projet d’ingénierie logicielle ont souvent cherché à concilier le besoin de définir le plus précisément possible l’application à développer et l’évolution continue, parfois contradictoire, des besoins utilisateurs.Les méthodes agiles sont des procédures de conception de logiciel qui se veulent plus pragmatiques que les méthodes traditionnelles. En impliquant au maximum le demandeur (client), ces méthodes permettent une grande réactivité à ses demandes, visent la satisfaction réelle du besoin du client, et non des termes du contrat de développement.
Mais revenons, dans un premier temps, sur les méthodes qui existent pour conduire des projets informatiques en entreprise ainsi que sur leurs avantages et inconvénients.
- Le premier d’entre eux est le modèle en « cascade » : il présente un problème d’effet tunnel et de non prise en compte des évolutions des utilisateurs pendant le développement.
- Le modèle en « V » : cette méthode plus souple reste la méthode la plus courante. Le haut du V correspond au niveau fonctionnel et le bas au développement (technique). Dans un premier temps, il permet d’aller du fonctionnel au technique. Dans un deuxième temps, il permet de remonter au fonctionnel pour compléter les développements. La visibilité et la réactivité sont réduites à la taille d’un V qui peut quand même être de plusieurs mois. Cette durée peut être considérée trop longue pour des décideurs ou des gestionnaires qui ont besoin de lancer des projets rapidement (budgétairement). Elle fait appel aux utilisateurs uniquement au début et à la fin du cycle en V.
- Le modèle agile : les phases sont simplifiées afin d’en raccourcir la durée. Les méthodes agiles se basent sur la notion de communauté de projet dans laquelle les développeurs et les utilisateurs sont présents en permanence pour exprimer ou répondre à une question liée au projet.
- Elles permettent la réduction au maximum des écarts entre le produit développé et les besoins métiers ;
- Elles entraînent une réduction des coûts d’étude qui est réalisée conjointement avec les développements ;
- Elles écartent la possibilité d’effet tunnel pour les utilisateurs et la direction qui sont impliqués dans le projet ;
- Elles font naître une grande souplesse et une réactivité pour les projets courts à forte valeur ajoutée.
- Un des premiers problèmes est celui de la disponibilité. Celle-ci s’avère plus difficile à obtenir dans les équipes réduites, notamment pour la rédaction de la documentation du projet, car tout est fait au fur et à mesure ;
- Un manque de planification prévisionnelle car le projet avance à vue ;
- Un besoin de concertation avec les autres projets, car le fait de mettre des collaborateurs ensemble ne crée pas toujours une équipe réceptive au changement.
Dans le cadre de l’évolution des infrastructures, il peut y avoir des cycles et des itérations, mais l’utilisateur n’intervient ni n’est sollicité pendant la réalisation. L’agilité peut résider dans les choix d’architecture (clouding, clustering, virtualisation) et des solutions de financement (leasing, asp).Pour des projets en dehors de la DSI, il faudra retenir deux points forts des méthodes agiles qui peuvent être adaptés aux méthodes de gestion de projets suivant les besoins :
- Les itérations, car les objectifs et cibles ne sont jamais figés, l’amélioration continue est constamment présente pour toutes les phases du projet.
- L’autonomie des équipes projets, sont isolées par le chef de projet, ce qui implique une totale confiance de la direction.
L’agilité des projets informatiques n’est pas à confondre avec les méthodes de projet agiles qui sont strictement utilisées pour les projets d’ingénierie. Le fait de retrouver cette notion dans la littérature IT reflète l’accélération du business et du marché. Elle reflète également le pouvoir des utilisateurs et la nécessité de communiquer toujours plus et toujours mieux. Par William Porret, fondateur et directeur associé d’Enora Consulting