Dans la quête de réactivité et de souplesse, les méthodes agiles s’avèrent prometteuses. Si de plus en plus d’entreprises expérimentent ces approches en interne, une autre possibilité existe : profiter d’un projet confié à un prestataire pour s’initier à ces démarches. Encore faut-il sécuriser la relation avec les prestataires.
Fin de l’effet tunnel, meilleure visibilité, maîtrise des coûts et délais, applications livrées plus rapidement, les bénéfices des approches agiles sont depuis longtemps mis en avant dans le cadre des projets. Néanmoins, lorsque ces derniers sont confiés à des prestataires, les DSI s’intéressent davantage au résultat final et ne prêtent pas toujours la plus grande attention aux méthodologies qui seront utilisées pour le développement.
Pourtant, les approches agiles ont autant leur place dans les projets confiés à des sociétés de services que dans ceux réalisés en interne. Dès lors qu’elles sont bien comprises et adaptées au contexte du projet, elles peuvent constituer, en effet, une source de valeur aussi bien pour le prestataire que pour son client.
Les bénéfices des méthodes agiles : réactivité, flexibilité et qualité
Dans le cadre d’une prestation de service, les méthodes agiles ont plusieurs atouts. Elles sont, tout d’abord, une garantie de réactivité pour les DSI et leurs clients internes (directions métiers). Il s’agit d’aller rapidement à l’essentiel, en simplifiant les processus et en mettant l’accent sur la livraison des livrables, en éliminant autant que possible « l’effet tunnel » qui irrite depuis très longtemps les directions métiers et les utilisateurs.
Cette exigence devient fondamentale, surtout pour les projets de transformation numérique, dans lesquels la dimension Time to Market est cruciale pour le retour sur investissement. Selon une enquête du Boston Consulting Group sur les facteurs les plus importants de transformation des organisations (Cf. Best Practices Spotlight, 24 avril 2017), 90 % des managers affirment que l’agilité est critique pour exécuter les stratégies.
De fait, les prestataires familiers des méthodes agiles peuvent plus aisément s’engager sur des délais courts en s’accordant avec leurs clients sur la manière d’activer le levier du périmètre. Il convient toutefois de bien faire la différence entre les sociétés de services qui mettent en avant l’agilité davantage dans les discours que dans leurs missions concrètes chez leurs clients.
En effet, la déclinaison de l’agilité sur le terrain, et sa réussite, supposent, pour une ESN (entreprise de services numérique), que deux conditions soient réunies : une excellente connaissance de ses clients et une réelle proximité. On notera que ce dernier point est plutôt contradictoire avec la volonté affirmée de grandes ESN de développer des prestations en offshore.
Les méthodes agiles permettent également aux DSI de bénéficier d’une certaine flexibilité dans la formulation de leurs besoins. En effet, nulle obligation, pour démarrer, d’élaborer un cahier des charges extrêmement détaillé, le principe étant de « dégrossir » peu à peu les besoins à partir de la base concrète des premiers livrables.
Enfin, ces méthodes mettent un accent particulier sur la qualité, du fait de la place des tests tout d’abord, mais aussi à travers d’autres pratiques visant à améliorer sans cesse le code produit, comme la revue des pairs (pair programming), la réingénierie du code (refactoring) ou encore l’attention portée aux normes de programmation.
Les huit facteurs clés de succès dans le cadre d’une prestation de service
Pour faire des méthodes agiles l’une des clés d’un partenariat gagnant-gagnant entre les DSI et les prestataires de services, il convient de s’assurer d’un certain nombre de prérequis.
1. Choisir le bon projet pour démarrer
La première condition est de choisir les projets a priori les plus adaptés à cette approche. L’environnement technique, les interactions avec d’autres systèmes ou projets, ou la localisation de l’équipe figurent parmi les critères à prendre en compte. Il est conseillé, aux entreprises souhaitant expérimenter les méthodes agiles, de démarrer par des projets de petite taille, avec des contraintes de délais fortes.
2. Vérifier la disponibilité des ressources clés
Les méthodes agiles préconisant une forte proximité entre le client et les développeurs, mieux vaut s’assurer au préalable de la disponibilité des ressources métiers. Quand cela est possible, il est souhaitable de détacher un représentant des utilisateurs pour collaborer à plein temps sur le projet, la meilleure configuration consistant à regrouper donneur d’ordre et prestataire dans le même bureau.
3. Choisir les bonnes compétences…
Il faut également garder à l’esprit le fait que ces approches ne s’improvisent pas. Sous des dehors simples, elles nécessitent, en réalité, tout un ensemble de savoir-faire et de savoir-être, le plus délicat étant sans doute le choix de l’équipe. Ce modèle est basé sur la confiance en les capacités des membres : le manager a davantage un rôle d’animateur encadrant les échanges que de chef de projet au sens classique du terme.
L’une des difficultés, auxquelles se heurtent les entreprises expérimentant les méthodes agiles, reste liée à l’évolution culturelle nécessaire (attachement à un management directif, etc.). Un autre écueil est lié à une mauvaise compréhension de ce rôle de manager, qui se traduit par un retour à un management directif, l’équipe se sentant alors déresponsabilisée.
4. …Et les bons partenaires
Pour ces raisons, il est préférable de s’appuyer sur un prestataire possédant une réelle expérience dans ce type de projets, capable de nommer les bonnes personnes aux postes clés, mais aussi de repérer rapidement d’éventuels blocages, de rassurer les collaborateurs peu habitués à ce type de fonctionnement et de transférer ses connaissances. Si l’entreprise ne possède pas ou peu d’expérience dans ce domaine, elle a tout intérêt à laisser à la société de services le choix de la méthode qui convient le mieux à son projet.
Le prestataire pourra, par exemple, mener un audit préalable pour identifier les projets les mieux adaptés, les risques et les opportunités liés à la culture de l’entreprise, l’existence de conditions favorables à telle ou telle approche. Il choisira ainsi la méthode la mieux adaptée au contexte du client.
5. Partager ses normes et ses bonnes pratiques
Les méthodes agiles ne sont pas incompatibles avec d’autres pratiques, elles peuvent être conciliées avec d’autres modèles en vigueur dans l’entreprise (normes de développement, pratiques de gestion de projet issues de modèles comme CMMi…), à condition qu’ils ne nécessitent pas trop de tâches éloignées du développement applicatif. Tout projet agile se doit d’être ambitieux et, de fait, il transforme l’organisation.
Pour accompagner cette transformation, faire appel à un tiers dont les méthodes agiles font partie de sa culture de services, sans pour autant en faire un dogme incontournable, est souvent plus facile, plus pertinent et davantage créateur de valeur, que d’agir avec les seules ressources internes. Pour ces raisons, les DSI ont tout intérêt à partager leurs standards et bonnes pratiques avec le prestataire.
6. Établir les responsabilités pour les décisions majeures
La polyvalence des équipes agiles et la prééminence de la responsabilité collective peuvent s’avérer déconcertantes pour les DSI, généralement habitués à avoir un seul interlocuteur en face d’eux dans les processus de décision. Il peut être souhaitable de préciser les rôles et responsabilités, notamment pour les décisions ayant des conséquences en dehors de l’équipe elle-même.
7. S’accorder sur le reporting
Dans le cadre d’une prestation de service, il est légitime d’attendre un minimum d’indicateurs. Or, le reporting est envisagé différemment dans les méthodes agiles. Celles-ci considèrent en effet que livrer un produit en état de fonctionner est le meilleur rapport d’avancement du projet. Des approches comme Scrum prévoient cependant des outils et graphiques pour suivre les différentes tâches, mais ceux-ci doivent être rendus visibles et expliqués au-delà de l’équipe.
Dans le cadre d’une relation client-prestataire, il peut être nécessaire d’ajouter quelques indicateurs, mais il convient de les choisir avec soin, de même que la fréquence à laquelle ils seront produits. Un reporting trop contraignant risque en effet de diminuer l’agilité et la productivité de l’équipe. Toutes les parties prenantes devront donc s’accorder le plus tôt possible sur les indicateurs véritablement importants, tout l’enjeu étant de trouver le bon équilibre entre le besoin de visibilité du client et l’agilité de l’équipe.
8. S’impliquer dans la démarche
Exigences mal définies ou irréalistes, demandes mal priorisées, indisponibilité des ressources clés… Le DSI est tout autant responsable du succès d’un projet que de son échec. S’agissant des méthodes agiles, il doit notamment veiller à ne pas faire de cette agilité un prétexte pour changer sans cesse la définition de ses besoins.
Bien cadrer le contenu de chaque livraison permettra de prévenir les débordements. Dans tous les cas, l’entreprise a intérêt à se former à ces approches. Familiariser les métiers avec leurs principes, notamment l’aspect itératif, est important : même si les premiers livrables se concentrent sur les fonctionnalités essentielles, la confiance des utilisateurs ne s’acquiert qu’au fur et à mesure. Les sensibiliser au caractère progressif du développement permet à la fois de les rassurer et de mieux hiérarchiser les demandes.
Les principes des méthodes agiles
Les méthodes agiles concernent en premier lieu le développement d’applications, domaine dans lequel elles sont nées. Néanmoins, certains de leurs principes peuvent être appliqués à d’autres types de projets, y compris les plus complexes comme la mise en œuvre d’un ERP ou la refonte de l’existant.
Les approches agiles sont apparues dans les années 1990, à la suite d’un constat : malgré des projets de plus en plus encadrés sur le plan méthodologique, le taux d’échec ne diminuait pas. Pour cette raison, les créateurs des méthodes dites « agiles » ont cherché à proposer d’autres approches, pour concevoir le développement applicatif, que les traditionnels cycles en V ou en « cascade », qui reposent sur des étapes bien définies et assez rigides, sans rétroactions possibles : recueil des besoins, analyse détaillée, conception détaillée, développement, tests et contrôle qualité, intégration. Parmi les approches les plus connues figurent Rapid Application Development (RAD), l’eXtreme Programming (XP), Scrum ou le Lean Software Developement.
Les méthodes agiles cherchent à éviter les pièges et dérives des modèles classiques : projet qui ne débouche sur aucun livrable, délais trop longs, applications qui ne correspondent plus aux besoins… Pour atteindre ces objectifs, elles s’appuient sur plusieurs principes, décrits dans le célèbre « Manifeste pour le développement agile ».
Les méthodes agiles ne sont pas, en soi, une garantie de succès. Elles sont bien adaptées à certains types de projets, moins à d’autres, notamment les projets requérant des ressources ou des délais importants, avec des spécifications très codifiées voire normées, ou des contraintes d’architecture précises par exemple, qui nécessitent que tout soit défini à l’avance. Néanmoins, la plupart des projets peuvent bénéficier de cette agilité, en choisissant parmi les principes des méthodes agiles ceux qui peuvent s’appliquer à leur contexte.
Selon Forrester Research (1), l’agilité d’entreprise est la qualité qui permet à une organisation d’intégrer à ses activités quotidiennes les évolutions du marché et les changements opérationnels. Forrester identifie dix dimensions mesurables sur lesquelles repose l’agilité d’une organisation, et les regroupe en trois catégories :
- Le marché : capacité à répondre aux besoins, intégration des canaux de vente.
- L’organisation : partage des connaissances, maturité numérique, gestion du changement.
- Les processus : Business Intelligence, élasticité des infrastructures, architecture des processus, innovation IT, maîtrise du sourcing et de la logistique.
Les recherches menées par McKinsey (2) mettent également en avant trois types d’agilité : l’agilité opérationnelle, qui consiste à s’appuyer sur des connaissances et à adopter une perspective permettant d’identifier et de saisir les opportunités avant ses concurrents ; l’agilité stratégique, qui renvoie à la capacité de tirer parti d’événements majeurs, comme une acquisition de grande envergure ou l’ouverture de nouveaux marchés ; enfin, l’agilité du portefeuille, c’est-à-dire la capacité à déplacer et affecter rapidement les ressources (comme le personnel ou les finances) au sein du portefeuille ou de l’entreprise.
(1) « Make business agility a key corporate attribute, it could be what saves you », Forrester Research.
(2) « Competing through organizational agility », McKinsey.