Réduire les coûts de développement grâce aux méthodes agiles

On estime que 70% des projets informatiques sont livrés en retard ou abandonnés, avec les surcoûts associés qui dépassent bien souvent ce que l’on peut imaginer. Face à ce constat, les méthodes agiles peuvent être une solution.

Les principales causes de retard

Lorsque l’on analyse les projets qui ont subi des retards ou qui ont malheureusement été abandonnés, on se rend compte que les causes de ces problèmes sont souvent très similaires. Ainsi, les principales causes de retard des projets informatiques sont les suivantes :

  • Le réalisé ne correspond pas à ce que le client imaginait. Des blocs fonctionnels ont donc dû être redéveloppés, parfois à plusieurs reprises,
  • Des fonctionnalités ont été oubliées, elles ont dû être ajoutées alors qu’elles n’avaient pas été prévues,
  • Des changements réguliers de priorité ont généré des périodes de non-réalisation et de la frustration dans les équipes.

Ces causes de retard ont pour source deux principaux facteurs d’échec qui se conjuguent :

  • Une ou des phases d’expressions des besoins n’ont pas réussi à les définir en horizontalité et en verticalité,
  • Une organisation du travail qui a failli à un moment dans sa planification comme dans sa mise en œuvre.

Ces deux principaux facteurs d’échec sont le résultat de multiples problèmes organisationnels, humains, relationnels ou encore contractuels :

  • La complexité du réel est trop forte par rapport aux capacités du cerveau humain : le cerveau humain ne peut gérer en une seule fois la grande complexité des projets qui sont menés au quotidien. Il a besoin que l’on décompose les problèmes en sous-problèmes plus petits afin de pouvoir les traiter correctement et ne pas oublier de fonctionnalités.
  • Expressions de besoin faîtes en une seule fois : le cerveau humain a aussi besoin de travailler de façon incrémentale pour pouvoir traiter intégralement un problème. Il a besoin d’y réfléchir en plusieurs fois, afin de pouvoir prendre en compte toutes les variables, avant d’arriver à une vision claire de la solution au problème considéré.
  • La responsabilité de l’expression de besoins tenant au client peu rappelée : lors de la réalisation des projets, il est régulièrement oublié que la responsabilité d’exprimer de façon exhaustive le besoin tient au client. Le prestataire est bien entendu à l’écoute du client pour l’aider dans cette démarche. Néanmoins c’est au client d’être fort dans sa façon d’exprimer et de détailler son besoin. La situation inverse implique la réalisation de projets qui sont ensuite rejetés par le client à la livraison.
  • Des prestataires qui s’engagent sur des réalisations avant la rédaction des expressions de besoins : de plus en plus souvent des prestataires doivent d’engager en termes de délais et de tarification sur la réalisation de projets avant la rédaction des expressions de besoins. Ces situations génèrent inévitablement des conflits et une relation perdant/perdant.

Concernant les problématiques relatives aux expressions de besoins, certains outils comme le Mind mapping et les méthodes itératives et incrémentales tentent d’apporter une solution à ces problèmes. Néanmoins ils nécessitent de pouvoir s’appuyer sur une organisation du travail robuste pour donner les résultats escomptés.

Concernant les problématiques relatives aux relations avec les clients, c’est au prestataire de trouver les clés d’une relation gagnant/gagnant avec chacun de ses clients.

Les méthodes agiles tentent de répondre à ces problèmes en se basant sur ces outils, en y apportant  une organisation du travail stricte et en définissant précisément les rôles et responsabilités de chacun. Elles interviennent essentiellement sur l’organisation du travail tout en prenant garde à produire des expressions de besoin exhaustives réalisées de manière itérative et incrémentale.

Une méthode agile : Scrum

Scrum est une méthode agile qui se caractérise essentiellement par les éléments suivants :

  • Définition claire des rôles,
  • Responsabilisation de chacun,
  • Priorisation des fonctionnalités de la plus à la moins importante,
  • Effet tunnel évité au maximum,
  • Feed-back rapides,
  • Acceptation du changement au plus tôt,
  • Production rapide d’incréments de logiciels utilisables.

Son mode de fonctionnement en sprint les plus courts possibles combiné à une gestion « en bon père de famille » du product backlog permettent de réussir au mieux les projets. Néanmoins les risques d’échec sont réels et représentent un piège dans lequel on peut facilement tomber. 

Les avantages de Scrum

Scrum apporte de nombreux avantages puisqu’elle intègre les facteurs d’échec des projets en y apportant des solutions tant organisationnelles que méthodologiques. En effet elle permet de :

  • Réaliser les expressions de besoins par petits morceaux et en plusieurs fois,
  • Commencer par les 20% qui vont être utilisés par 80% des utilisateurs,
  • Ancrer le projet dans le réel dès le début de sa réalisation,
  • Expliciter le coût réel de chaque fonctionnalité,
  • Prendre du recul face aux fonctionnalités réellement nécessaires.

L’ensemble de ces avantages permet de se concentrer sur ce qui est vraiment important, d’obtenir une vision claire des coûts  et d’éviter de se retrouver piégé dans des projets pharaoniques sans fin.

Conclusion

Scrum est une méthode agile qui permet de réduire les coûts de développements puisqu’elle prend en compte les facteurs d’échec des projets et y propose des solutions. Ces solutions tiennent autant de l’organisation du travail que de la responsabilisation de chacun. Elles permettent aussi de mieux réfléchir à ce qui est réellement nécessaire. En travaillant et en facturant au sprint on évite ainsi les problèmes classiques des expressions de besoin pas assez précises, les effets tunnels et le fait que le réalisé ne correspond pas à ce que le client imaginait.