Archive #3: démarche outillée de surveillance de la qualité des développements à la DSIV SNCF

3:49 Non classé

Suite à mon billet sur la mise en oeuvre du projet Squale au sein de PSA , je me suis souvenu du reportage que j’ai effectué à la DSI Voyageurs de la SNCF, et qui a été publié dans le numéro 1004 de LMI, du 28 novembre 2003. Je vous propose donc, si le sujet vous intéresse, de le retrouver ici.

Il paraît que les journaux ne parlent jamais des trains – ni des projets informatiques – qui arrivent à l’heure. Voici une injustice doublement réparée. En adoptant une démarche outillée de qualité logicielle, la DSIV, direction informatique de la SNCF chargée du système d’information voyageurs, a réduit de façon considérable le nombre d’anomalies dans ses développements. Or, qui dit code de qualité dit beaucoup moins de temps à rechercher et corriger les erreurs. C’est une évidence mais, pour une fois, cela se voit en pratique. Après un an d’utilisation, des millions de lignes de code écrites et la participation d’une demi-douzaine de SSII au processus, la DSIV est sûre de sa démarche, et n’hésite pas aujourd’hui à évangéliser. Et elle croule déjà sous les demandes de visites de grands comptes intéressés…

Comme nombre de maîtrises d’oeuvre de grands groupes, la DSIV connaissait "quelques soucis en termes de coûts, qualité, délais…", raconte Yvon Borri, chef du département développements et architecture. "Une part trop importante des anomalies, dont certaines graves (entraînant une interruption de fonctionnement), étaient détectées bien trop tard, parfois même en production. Or nous avons une relation aux clients très forte : la qualité des services voyageurs, et, de ce fait, ce qui est produit ici, est très importante auprès du public. En cas de problème, cela remonte très vite…" On imagine la réaction du service marketing grandes lignes en cas de problème répercuté dans un journal télévisé. Yvon Borri se retrouvait donc face à des demandes pressantes de ses maîtrises d’ouvrage, lui reprochant en substance de faire "trop lourd, trop cher, trop lent".

Reproches compréhensibles sachant que, pour des impératifs de qualité, les développements doivent passer, après avoir été testés en interne, par une entité de qualification indépendante (Visa). Un examen de quelques jours-hommes à quelques mois-hommes en fonction de la complexité de l’application et du calendrier de Visa. Détecter une erreur à ce niveau peut exiger de "réaliser une non-régression complète", autrement dit tester à nouveau le comportement de l’application par rapport à toutes celles qui lui sont liées.

En 2000, la DSIV est contactée par Compuware, qui évoque l’intérêt de produire un code bien normalisé, pour diminuer le nombre d’erreurs et faciliter leur correction et la maintenance. Proposition qui vient renforcer une analyse interne d’Olivier Beaurepaire, aujourd’hui chef du projet Mise en qualité des logiciels, "à partir d’études fournies par les éditeurs ou provenant des laboratoires de la Nasa, des Bell Labs ou de la recherche universitaire, telles que les travaux de Victor Basili et de Houari Sahraoui (*), et de normes de qualité comme ISO 9126".

La DSIV prend le temps d’étudier cette corrélation, et surtout de réfléchir à la façon de mettre en place une démarche capable d’emporter l’adhésion des équipes. Il fallait que la solution puisse automatiser la vérification du code, sans trop bouleverser l’organisation, déresponsabiliser les développeurs ni apparaître comme un outil de flicage. "Faire un pilote dans un coin juste pour valider un outil n’aurait eu aucun intérêt, lance Yvon Borri. Nous avons pris un an et demi pour amener cette idée à maturité et définir en détail nos besoins et le mode de fonctionnement que nous souhaitions, puis nous avons consulté les éditeurs. Trois ont répondu : Rational, Cast et Compuware."

"Chacun des trois apportait une réponse partielle, ajoute Olivier Beaurepaire. Nous voulions une solution accessible au développeur, pour qu’il puisse lui-même chercher à s’améliorer, à partir d’indicateurs, de tableaux de bord sur la qualité du code. Code produit par lui, mais aussi par les prestataires". La DSIV utilisait déjà les outils d’analyse de Rational. Quant à Cast, sa spécificité est de permettre d’y voir plus clair dans un grand volume de programmes déjà écrits. Or, à ce moment, la DSIV débutait juste les projets en systèmes ouverts. Finalement, elle réalise un portail pilote avec Compuware, en lui adjoignant les outils de McCabe. Ces derniers analysent le code en fonction d’un certain nombre de mesures, ce qui permet d’attribuer une note de qualité au code. Un outil particulièrement utile dans la relation de la DSIV avec les SSII.

Le projet Mise en qualité recourt à cinq grandes familles de mesures, servant à vérifier :
- Le niveau de complexité et de documentation du code. Il s’agit de tests unitaires analysant les méthodes, classes, fonctions… ;
- Le respect des bonnes pratiques et des règles de codage propres à chaque langage (comme le nommage) ;
- L’absence d’antipattern, c’est-à-dire de fautes de programmation connues, notamment dans l’orienté objet, telles que créer une classe "couteau suisse", qui relève davantage du développement procédural ;
- La conformité de l’implémentation avec le découpage originel de l’application en couches (interface, cinématique, objets métier, accès aux données…);
- Le taux de couverture du code par les tests unitaires.

Le code source est stocké dans un outil de gestion de configuration logicielle, d’où il est automatiquement extrait puis analysé par les outils de test de McCabe et Compuware, lesquels produisent un rapport d’audit publié sur un intranet. Une cellule d’expertise consulte les rapports, en discute avec les chefs de projet concernés. Et ce, d’une fois par semaine à une fois toutes les trois semaines. "Sept membres de mon équipe, détaille Olivier Beaurepaire, ont la responsabilité du suivi de qualité d’un ou plusieurs projets. Ils consultent les analyses, préparent les synthèses, et aident les chefs de projet et développeurs à repérer les erreurs les plus critiques. Le portail montre par exemple le top 10 des classes qui posent le plus de problèmes." Naviguer dans les onglets du portail donne aussi bien d’autres informations : tendance par rapport aux analyses précédentes, liens vers la portion de code incriminée et vers la base de connaissances…

"Humainement, le message est bien passé", se félicite Olivier Beaurepaire. "Il y a une incitation très forte : le message descend de la direction, et l’objectif de qualité de code fait désormais partie des sujets de l’entretien d’évaluation annuels. Et j’ai aujourd’hui beaucoup de retours de gens satisfaits, y compris de la part de personnes pas convaincues au départ". Autre bénéfice, la DSIV est capable aujourd’hui de produire des devis plus pertinents. Pour autant, le chantier n’est pas terminé. L’axe de travail principal est l’extension en termes de langages supportés (Java et Visual Basic aujourd’hui de façon automatisée, demain C++, la technologie .Net…) et de règles de bonnes pratiques prises en compte.

L’équipe de développement travaille aussi avec Visa pour mettre au point une procédure simplifiée. Visa a déjà reconnu que le temps passé à vérifier la qualité n’avait aucune commune mesure avec ce qu’il était auparavant, et il leur faut désormais s’accorder sur un certain nombre d’indicateurs pour raccourcir les délais. Vis-à-vis des prestataires, la DSIV cherche à automatiser l’échange du code, en donnant par exemple aux SSII accès à l’intranet ou en mettant en place un système de réplication entre les référentiels de code source Clearcase. Quant aux démarches globales, prônées par Mercury ou Compuware, incluant l’administration des tests et des performances, la DSIV reste prudente. Les outils assurant la qualité du code arrivent juste à maturité. Le projet est sur les rails, il ne faudrait pas surcharger les wagons.

(*) Les travaux de ces professeurs respectivement de l’université du Maryland et de l’université de Montréal sont présentés sur leurs pages Web personnelles : www.cs.umd.edu/users/basili et www.iro.umontreal.ca/~sahraou

One Response

  1. La qualimétrie en Open Source, ça marche | Le Blog d'Olivier Rafal : Ingénierie Logicielle Says:

    [...] un reportage que j’ai écrit en 2003, à la DSI Voyageurs de la SNCF : je le publie dans un prochain billet ). Quand Fabrice Bellingard, de la SSII Qualixo, m’a contacté pour me parler d’un tel [...]

Rédiger un commentaire

Votre commentaire

Vous pouvez utiliser ces balises: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

NB: Votre commentaire ne sera publié qu'aprs la validation du modérateur du blog. Vous n'avez pas besoin de le publier à nouveau. Merci