Les méthodes agiles dans la prestation de services : une source de valeur pour les DSI

Évoluant dans des marchés toujours plus compétitifs et changeants, les entreprises sont sans cesse en quête de réactivité et de souplesse. Dans cette quête, 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. En effet, l’accompagnement par un acteur expérimenté permet à la fois d’augmenter les chances de succès du projet et de s’initier en douceur à ces démarches.

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 informatiques. 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 constituent, en effet, une source de valeur aussi bien pour le prestataire que pour son client.

L’agilité est aujourd’hui tant recherchée par les entreprises que parfois les démarches agiles semblent synonymes d’eldorado. Aussi convient-il au préalable de rappeler ce que sont ces méthodes – et ce qu’elles ne sont pas, afin d’éviter confusions et malentendus.

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 et conception détaillées,  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 Manifeste pour le développement agile (voir encadré ci-dessous).

Les principes du Manifeste pour le développement agile 

  1. Notre plus haute priorité est de satisfaire le client en livrant tôt et régulièrement du logiciel utile.
  2. Le changement est accepté, même tardivement, dans le développement. Les processus agiles exploitent le changement comme avantage compétitif pour le client.
  3. Livrer fréquemment une application fonctionnelle, toutes les deux semaines à deux mois, avec une préférence pour la période la plus courte.
  4. Les équipes « métier » et de « développement » doivent collaborer au projet de manière quotidienne.
  5. Bâtissez le projet autour de personnes motivées. Donnez-leur l’environnement et le soutien dont elles ont besoin, et croyez en leur capacité à faire le travail.
  6. La méthode la plus efficace de transmettre de l’information est une conversation en face à face.
  7. Un logiciel fonctionnel est la meilleure mesure de l’avancement du projet.
  8. Les processus agiles promeuvent un rythme de développement soutenable. Commanditaires, développeurs et utilisateurs devraient pouvoir maintenir le rythme indéfiniment.
  9. Une attention continue à l’excellence technique et à la qualité de la conception améliore l’agilité.
  10. La simplicité (l’art de maximiser la quantité de travail à ne pas faire) est essentielle.
  11. Les meilleures architectures, spécifications et conceptions sont issues d’équipes qui s’auto-organisent.
  12. À intervalles réguliers, l’équipe réfléchit aux moyens de devenir plus efficace, puis accorde et ajuste son comportement en conséquence.

Plusieurs méthodes agiles donnent également une place très importante aux tests, certaines comme XP préconisant même d’écrire les tests avant le code pour bien définir le résultat que l’on souhaite obtenir.

Les méthodes agiles ne sont pas en elles-mêmes 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.

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. Cette exigence devient fondamentale : une étude mondiale de McKinsey, publiée fin 2102, révèle que la première priorité des managers, en matière de systèmes d’information, est d’améliorer l’efficacité des processus métiers.

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 de jouer sur le levier du périmètre. Il convient toutefois de bien faire la différence entre les sociétés de services informatiques, dont certaines 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, suppose, pour une SSII, 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 SSII 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. Nulle obligation, en effet, 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 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 des projets adaptés à ces approches. 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.

  1. 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 constituant à regrouper donneur d’ordres et prestataire dans le même bureau.

  1. Choisir les bonnes personnes…

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 dans 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.).

  1. 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 la mieux adaptée à 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.

  1. 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. Pour cette raison, les DSI ont tout intérêt à partager leurs standards et bonnes pratiques avec le prestataire. 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.

  1. É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 un minimum les rôles et responsabilités, notamment pour les décisions ayant des conséquences en dehors de l’équipe elle-même.

  1. 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.

  1. S’impliquer dans la démarche

Exigences mal définies ou irréalistes, priorités des demandes mal établies, 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 trois grandes étapes d’une transition agile

 

Transition agile : les bonnes pratiques et les points d’attention

Phases Champ d’action Bonnes pratiques
1. Appropriation

 

 

 

 

Cartographie des projets – Identifier le nombre de projets

– Classer les projets par taille, durée et spécificités des environnements techniques

– Identifier la taille des équipes et leur répartition géographique

– Prendre en compte les aspects culturels

Environnement méthodologique – Recenser les méthodes projet existantes

– Définir le niveau de formalisation nécessaire

– Définir le niveau de déploiement et d’utilisation par les équipes projets

– Préciser le degré d’autonomie des équipes pour introduire des changements et des nouvelles pratiques

Performance mesurée – Définir les indicateurs mesurés et suivis

– Définir les résultats attendus

– Recenser et anticiper les difficultés

Périmètres et parties prenantes – Identifier qui est à l’initiative de la demande de changement

– Identifier les sponsors des projets, ainsi que les utilisateurs clés

– Mesurer le niveau d’intégration existant

Objectifs et moyens associés – Classer les objectifs par ordre de priorité

– Définir les échéances

– Recenser tous les moyens existants et nécessaires

Communication – Définir les supports de communication les plus pertinents

– Identifier les instances responsables

– Recenser les outils utiles et les pratiques collaboratifs sur lesquelles va s’appuyer la communication

2. Transition

 

 

Situation des projets Évaluer les éléments-clés des projets et les facteurs-clés de succès : vision, périmètre, planification, relations entre la DSI et les métiers, environnements techniques, profil des équipes de développement…
Besoins en formation – Identifier les besoins, notamment pour des ateliers thématiques, des exigences d’accompagnement spécifique, des expertises techniques particulières

– Préciser les supports et formats à utiliser

Suivi de l’application des pratiques – Définir les modalités de sélection et d’application des pratiques

– Préciser les modalités de suivi des actions associées

– Encourager l’industrialisation des développements

3. Autonomie

 

 

Interventions ponctuelles – Utiliser des check lists de revue des processus agiles

– Participer aux lancements de sprints et aux rétrospectives

– Assurer le support à la demande

Source : Alti.

 

Entreprise Contexte Enjeux Solution agile
 

 

 

Rhodia

(Industrie)

Fortement internationalisée, l’entreprise dispose d’une population hétérogène de chefs de projets informatiques Pour homogénéiser leurs méthodes, améliorer le respect des engagements (coûts / délais / qualité / périmètre) et fédérer la communauté de ces chefs de projets, le groupe souhaitait :

– élaborer un nouveau cursus de formation pour les chefs de projets

– mettre en place du coaching et animer une communauté de chefs de projet

– faire évoluer sa méthodologie de gestion de projet, notamment en introduisant les méthodes agiles

 

Un coach agile a intégré la cellule PMO pour l’accompagner
 

 

PSA Peugeot Citroën

(Automobile)

Pour développer plus rapidement des projets ciblés, le groupe souhaitait mettre en place une équipe « Réactivité » pour réaliser des applications dans des délais très courts Appréhender rapidement et établir la priorité des besoins des utilisateurs pour leur livrer des fonctionnalités toutes les deux semaines Dédier une équipe de 3-4 personnes, spécialiste des méthodes agiles, assistées d’un expert technique externe
 

Total

(Énergie)

Fiabiliser le référentiel de données avec la mise en œuvre d’un portail de gestion des référentiels identitaires Garantir l’identification des personnes et la fiabilité de leurs données Développement du projet avec les pratiques agiles (433 jours-hommes)
Ministère de la Culture et de la Communication

(Secteur public)

Mise à la disposition des internautes d’un site Web consacré à l’histoire des arts Proposer un site attrayant, facile et rapide à consulter. Développement du projet avec les pratiques agiles (150 jours-hommes)
 

Dexia Crédit Local

(Banque)

Développer une application Web pour les analystes de crédit Tenir compte des spécificités des utilisateurs (accès multi-pays, trois langues, interface intuitive, respect des contraintes légales… Développement du projet avec les pratiques agiles (470 jours-hommes)
BNP Paribas Fin’AMS Refonte d’une application permettant au middle et front-office de Fin’AMS d’assurer la gestion quotidienne des valorisations des instruments OTC dans le cadre de ses activités.

Les objectifs de la nouvelle application sont de  répondre aux besoins actuels des utilisateurs, de proposer une ergonomie évoluée basée sur du client riche Flex et de s’intégrer dans l’application de gestion de référentiels actuelle (FIRE)

Fort niveau d’implication des différents intervenants durant toute la vie du projet (chef de projet et ingénieurs de développement côté Alti, MOA-Product Owner et métier côté Fin’AMS)

 

Grande réactivité et flexibilité doublées d’une forte rigueur au niveau du Project management ALTI afin d’appliquer cette méthode

Proposition d’une approche méthodologique permettant d’avoir une

implémentation agile de certaines pratiques CMMi, afin de développer une solution de

manière itérative, au plus près des utilisateurs finaux

(400 jours-hommes)

(Source : Alti).