Skip to content Skip to sidebar Skip to footer

Maîtrisez la qualité de vos logiciels : pourquoi et comment les auditer ?

L’audit de la qualité d’un logiciel peut revêtir une démarche proactive mais elle est le plus souvent réactive. Elle vise ainsi à garantir sa maintenabilité, sa robustesse et sa capacité à évoluer sans heurts sur le long terme. Pour ce faire, l’audit de la qualité d’un logiciel va agir sur plusieurs leviers, de la vérification régulière de l’architecture, du code et des processus de développement pour prévenir l’accumulation de dettes techniques, jusqu’à l’organisation et le bienêtre des équipes, et l’implication du management.

Thomas Guibot, Chef de projet et Scrum Master chez Inside, nous explique pourquoi l’audit de la qualité d’un logiciel représente une démarche stratégique qui transforme des problèmes opérationnels en opportunités d’amélioration continue.

Pourquoi auditer la qualité d’un logiciel ?

Le plus souvent, des problématiques terrains sont à l’origine de cette démarche d’audit de qualité du logiciel. Elles signalent un dysfonctionnement sous-jacent ou une dégradation de la qualité logicielle : des indisponibilités fréquentes du logiciel en production, une enquête de satisfaction client décevante, une équipe produit qui rencontre des difficultés pour suivre les évolutions commandées, un time-to-market désaligné avec la roadmap produit, etc. Ces signaux d’alarme nécessitent une intervention pour préserver la stabilité et la valeur du système.

Encore faut-il être capable de bien définir ce qu’est la qualité d’un logiciel. Je pense qu’elle représente la capacité d’un logiciel à répondre favorablement aux exigences (explicites ou implicites) et/ou à rendre le service qui est attendu par une personne qui a un intérêt dans l’utilisation du logiciel. J’ajouterais que la qualité est l’affaire de tous : chaque membre d’une équipe est un acteur de la qualité du produit. Chacun est donc responsable de cette qualité qu’il contribue à développer… Et responsable de son éventuelle baisse. Notamment lorsqu’il constate les « manques qualité » et qu’il ne fait rien. Ou qu’il constate, consigne et ne va pas plus loin !

Que faut-il auditer dans ce contexte ?

Si la qualité d’un logiciel n’est pas à la hauteur attendue, il faut dépasser le simple cadre du code et de ceux qui le construisent pour s’intéresser à :

  • La chaine de construction même du logiciel et le flux de valeur : de la prise en compte de l’idée jusqu’au feedback de l’utilisateur.
  • L’organisation de l’équipe produit.
  • L’implication de la direction et du management : quelle est la vision du produit, le cap, la stratégie produit ?
  • Les relations avec les utilisateurs/les clients.
  • La roadmap produit : est-elle réaliste ? Jalonnée ? Partagée ? Comment se décline-t-elle dans les sprints ?

En fonction des cas, le périmètre à auditer peut donc être plus ou moins large. Il faut également bien prêter attention à la disposition psychologique des équipes vis-à-vis de l’acte d’audit : y a-t-il des réticences ? Il est important de gagner la confiance des équipes pour rendre la démarche efficace, de libérer la parole, de dédramatiser le fait de laisser un intervenant externe intégrer l’équipe, observer et partager leur quotidien.

Comment mener concrètement cet audit ?

Je conseille de mettre en place 2 étapes, une macro et une plus ciblée.

Étape 1 : rencontre avec la direction et le management pour définir les objectifs de l’audit et les motivations qui sont à l’origine de cette démarche.

  • Récupérer les documentations existantes : processus, organisation, etc.
  • Faire un état des lieux : audit informel, entretiens, vis-ma-vie au sein des équipes.
  • Regrouper des éléments factuels, des chiffres et des impressions.
  • Constituer au fil de l’eau un rapport d’étonnement avec les forces et les points d’amélioration.
  • Faire la restitution et la présentation du rapport aux parties prenantes.

Étape 2 : analyser le code (avec des outils comme SonarQube par exemple), les pratiques de CI/CD (Continuous Integration / Continuous Delivery) et le niveau d’automatisation, l’organisation agile des équipes (regarder l’objectif des sprint par exemple), la préparation du besoin, le processus de mise en production, jusqu’à l’état d’esprit et la motivation des équipes de développement.

La difficulté réside ici dans le fait de toujours rester objectif tout en étant partie prenante d’un processus ou d’une activité. La neutralité de la posture de l’auditeur est essentielle : il ne doit pas y avoir de conflits d’intérêt dans l’audit. Le recours à un intervenant expert et externe est donc préférable. Et pour faciliter la démarche, je conseille de tenir des ateliers, comme des ateliers de maturité (les « 3 amigos » pour l’agilité, des stratégies de tests…), et des ateliers less rework pour mettre en place une « quality gate » par exemple. Créer un tableau de bord autour de la qualité peut également être une bonne idée.

Quels conseils peux-tu nous donner sur l’amélioration de la qualité des logiciels ?

Comme disait Aristote « La qualité n’est pas un acte, c’est une habitude ». Je conseille donc de commencer par initier une réflexion autour d’une démarche d’amélioration continue, de comportements récurrents, de réflexes visant la qualité. Cela peut passer par une auto-évaluation des équipes grâce à un questionnaire dédié et le recours à une méthodologie éprouvée comme Accelerate par exemple.

Je conseille également de progresser pas-à-pas, une action après l’autre pour ne pas s’éparpiller, avec un cycle PDCA (Plan-Do-Check-Act). Ce qui permet de bien objectiver ses actions pour savoir jusqu’où aller, et quand s’arrêter une fois le gain attendu atteint. Le soutien d’un sponsor provenant de la direction va grandement aider dans cette démarche.

Et comme il s’agit d’une démarche d’amélioration continue, la mise en place d’une « revue qualité » pour le client (ou l’utilisateur) est bienvenue : couverture de test, qualimétrie, rapports de bugs, taux de refactoring, état de la dette technique et de la dette fonctionnelle. Enfin, s’ils n’existent pas déjà, il faudra penser à instaurer une feuille de route d’action qui concerne la qualité du produit et l’installation d’un tableau de bord qui intègre et organise visuellement les informations sur l’état actuel des qualités du système.

Pour accompagner ses clients autour de cet enjeu de l’audit de la qualité logicielle, Inside peut proposer de l’accompagnement avec notamment des scrum masters et des chefs de projets, mais également du coaching sur les démarches Accelerate et Craftsmanship, jusqu’au jeu de cartes refactoring XPLORER pour sensibiliser les équipes aux bonnes pratiques.

Echangeons sur l’audit de la qualité de vos logiciels !