Le sens de la mesure

« Est-ce un rêve que d’imaginer que le secteur du logiciel devienne aussi industrialisé que l’est le secteur automobile ? Nous n’en sommes pas là et je n’ai pas observé de véritable rupture, la qualité du logiciel reste moyenne », assène Antoine Gourévitch, vice-président du Boston Consulting Group, qui est intervenu sur ce thème de la dernière matinée CIO organisée par l’éditeur Cast, en partenariat avec Best Practices Systèmes d’Information.

Pour Antoine Gourévitch, c’est le système qui est en cause : « Les individus sont rationnels. Si des défauts et des retards se produisent, c’est parce que le système produit ces défauts. Il faut donc rendre les individus responsables de leurs actions, ce qui suppose un instrument de mesure.

Sinon, on ne pourra jamais expliquer aux développeurs la source de leurs erreurs. » Pour sa part, Renaud Hilleret, DSI de Predica, le pôle Assurance Groupe Crédit agricole, met en exergue un paradoxe : « La réactivité et l’agilité des applications sur intranet et extranet produisent une impression de facilité, alors que cela accroît très sensiblement le niveau de complexité cachée des applications et, de fait, complique les missions du DSI. »

Cela fragilise la position du DSI : « Aucune industrie n’accepterait le niveau de défauts de l’industrie du logiciel. Il y a des pressions à la fois sur les coûts, les délais et la qualité. De fait, la fonction de DSI est la fonction de direction la plus courte : nous sommes à la fois skipper de catamaran et capitaine de tanker », résume Christian Lothoré, DG du GIE informatique Si2m – Groupe Malakoff Médéric, pour qui « la DSI est la seule direction qualifiée de boîte noire et l’on nous demande plus de transparence.

La mesure permet de « factualiser », surtout lorsque cela s’inscrit dans des cycles longs de développement ». Investir dans la qualité du code développé est-il rentable ? Selon l’adage « Il vaut mieux prévenir que guérir », la réponse est évidente. « Lorsque le code représente près d’un tiers du coût d’un projet, il est extrêmement rentable d’investir en amont dans sa qualité, d’autant que le coût annuel de maintenance représente 20 % du coût global », calcule Christian Lothoré.

Même si, affirme Marc Renaud, DSI de Veolia Eau, « il est toujours difficile de « factualiser » pour parvenir à une transparence de la « boîte noire » qu’est la DSI, d’autant qu’il est très difficile d’imaginer une informatique « sur plan », et très souvent, on invente en marchant ». Et ce n’est pas la faute aux utilisateurs qui auraient, en amont, mal défini leurs besoins.

« Les bugs en production sont rarement imputables à une mauvaise définition des besoins fonctionnels, ils sont trop souvent dus à des défauts techniques (non fonctionnels) qui résultent d’une mauvaise conception et d’un mauvais codage et qui ne deviennent visibles qu’après la mise en production », diagnostique Bill Curtis, expert en ingénierie logicielle, coauteur du CMM & Business Process Maturity Model, directeur du Cisq (Consortium for IT Software Quality) et directeur technique de Cast.

C’est également une question de gouvernance : « Je suis à la fois DSI et DG, je me mets la pression à moi-même, le point clé reste la gouvernance, si elle est inexistante ou déficiente, cela ne marché pas, témoigne Bernard Hélie, directeur général du GIP MDS, investir dans la qualité du code est primordial dans la mesure où les applications critiques doivent être disponibles en permanence, il faut donc des indicateurs simples pour chaque processus ».

Les facteurs clés de santé d’une application
Facteurs de santé Description Exemples de bénéfices métiers
Transférabilité Caractéristiques permettant à de nouvelles équipes ou à de nouveaux entrants de comprendre et de travailler rapidement sur une application
  • Réduit l’inefficacité due au transfert entre les équipes.
  • Réduit les courbes d’apprentissage.
  • Réduit la dépendance envers les prestataires.
Évolutivité Caractéristiques qui rendent une application plus simple et plus rapide à modifier
  • Améliore l’agilité métier en répondant au marché ou aux clients.
  • Réduit le coût de revient en réduisant l’effort de modification.
Robustesse Caractéristiques concernant la stabilité d’une application et sa capacité à éviter l’introduction de défauts lors de modifications
  • Améliore la disponibilité des services métiers.
  • Réduit le risque de pertes dû à un dysfonctionnement opérationnel.
  • Réduit le coût de revient d’une application en réduisant le travail inutile (rework).
Performance Caractéristiques concernant la performance d’une application
  • Réduit le risque de perdre des clients à cause d’un service de faible qualité ou de temps de réponse dégradés.
  • Améliore la productivité des utilisateurs de l’application.
  • Augmente la rapidité de prise de décisions et de transmission d’informations.
  • Améliore la capacité d’adapter une application à la croissance de l’activité d’une entreprise.
Sécurité Caractéristiques concernant la capacité d’une application à prévenir toute intrusion non autorisée
  • Améliore la protection des informations sensibles.
  • Réduit le risque de perte de confiance des clients ou de dommages financiers.
  • Augmente la conformité réglementaire en matière de sécurité.
Source : Bill Curtis : La valeur business de la qualité logicielle d’une application, Cast, 20 pages.