Moi qui suis toujours à la recherche de nouveaux moyens pour atteindre les objectifs fixés par les projets, j’ai été interpellé par cet article : Informatisation à la justice: une dépense inutile de 75M$. Pas tellement parce que c’est un projet public, mais plutôt parce que je crois que le marché du développement logiciel manque toujours d’expertise pour assurer le succès de ses projets. La citation de Michelle Courchesne résume très bien le symptôme : « On ne peut pas attendre d’avoir dépensé les 105 millions de dollars autorisés et se dire que ça ne marche pas. Sinon, après, il faudra donner encore plus d’argent. C’est fini ça, on ne peut plus faire ça. »

Qu’est-ce qui manque?

Notre collègue Martin Dupont a demandé au groupe Agile Québec : « Comment définir si un projet est un succès? » Philippe Tremblay lui a répondu quelque chose d’intéressant : « Un des facteurs clairement négligés est la mesure des impacts de ce projet sur notre clientèle. Peu importe le respect du budget, de la qualité et de l’échéancier, si les clients n’utilisent pas ce qui a été réalisé ou s’ils l’utilisent seulement en partie, quelle valeur avons-nous produit? »

Les approches Agiles offrent des points d’inspection fréquents. Au cours de chaque itération, il est possible de vérifier la qualité du bien livrable, le budget consommé et le temps disponible pour compléter le projet. De mon expérience, ces indicateurs sont mesurés pour la majorité des projets. Cependant, ils sont insuffisants pour mesurer le véritable succès d’un projet.

J’ai en tête un projet qui visait la réécriture d’un logiciel servant à calculer le taux de facturation des clients de la Société québécoise des infrastructures (SQI, anciennement la SIQ). Le système en place n’était pas efficace, car :

  • Il requérait la consolidation des données provenant de différentes sources.

  • Il nécessitait d’assurer l’intégrité des données avant de calculer quoi que ce soit.

  • Il ne permettait aucune hausse de la tarification autrement que par une analyse manuelle des calculs.

Le client nous a donc demandé de produire un nouveau système pour l’aider à calculer rapidement la nouvelle tarification. Très vite, on peut imaginer un système répondant aux besoins suivants :

  • un processus automatisé pour consolider les sources multiples.

  • un processus automatisé pour contrôler l’intégrité des données.

  • une fonctionnalité pour générer à la demande le détail de la tarification des clients.

Avec cette solution, il est déjà possible de construire un carnet de produit aligné sur les objectifs d’amélioration. Toutefois, à mon avis, ce n’est pas suffisant pour mesurer si le projet est un VÉRITABLE succès. Il manque un moyen pour mesurer l’atteinte des objectifs à chaque itération. Je crois que des objectifs mesurables seraient encore plus utiles. Par exemple :

  • calculer une tarification triennale en moins d’un mois.

  • importer les données des 10 sources en un seul clic.

  • répondre sur demande aux requêtes sur les détails de tarification par client.

Pourquoi des objectifs mesurables sont-ils utiles?

Des objectifs mesurables permettent d’attribuer une valeur d’affaires aux items du carnet de produit. Dans le cas du programme de tarification, ils permettent de choisir les solutions économisant le maximum de temps de traitement, soit celles consolidant les données en une seule opération et celles qui recensent au quotidien les données nécessaires pour produire le détail de facturation de manière rapide et ad hoc.

Avec une valeur d’affaires chiffrée attribuée à chaque item du carnet de produit, il est possible de comparer les gains par rapport au coût, et donc de calculer le rendement de l’investissement et la valeur acquise. Dans un monde idéal, la somme de la valeur des items livrés devrait être égale à la somme des gains attendus à la livraison du produit.

Si en plus une approche Agile est utilisée, il est possible de mesurer à chaque fin d’itération que le dernier incrément de logiciel atteint les objectifs visés par le projet.

De plus, comme chaque incrément est un bien livrable, il est possible de vérifier cette mesure avec les utilisateurs réels du système.

Comment s’améliorer?

Voici ce que je propose pour assurer un meilleur contrôle et garantir le succès d’un projet Agile :

  • Prendre conscience que l’estimation du carnet de produit ne suffit pas pour mesurer le succès. Les estimations (comme les points d’effort) sont des indicateurs de coût, pas de valeur d’affaires.

  • Fixer des objectifs mesurables en début de projet.

  • Mesurer l’atteinte des objectifs à chaque itération. Une bonne façon serait de les inclure dans la définition de ‘terminé’ ou dans les tests d’acceptation.

  • Avec un bien livrable fonctionnel en main, mesurer l’atteinte des objectifs dans un contexte le plus proche de celui de la production, et ce, avec les utilisateurs réels du système.

mathieu boisvert

Billet précédent

3 trucs de développeur pour passer une bonne nuit

Billet suivant

Avis de nomination de Daniel Leclair

Pas de commentaire

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.