Dans un environnement Agile, la Qualité est-elle l’affaire de tous ?
Deux visions s’opposent souvent lors des débats entre Agilistes et Qualiticiens : celle, classique, d’une Assurance Qualité indépendante, et celle, correspondant aux principes Agiles, d’une Assurance Qualité totalement intégrée au développement produit.
Comment une entreprise Agile, ou en cours de transformation Agile, peut-elle se positionner sur l’une ou l’autre de ces visions, ou encore adopter une position intermédiaire qui tire parti de la complémentarité de ces deux visions ? Et comment mettre en œuvre puis faire évoluer cette organisation de l’Assurance Qualité ?
Les enjeux qualité en contexte Agile
Pour une organisation Agile, la qualité des produits est essentielle et fait partie de la valeur délivrée. Elle passe par la responsabilisation des équipes de développement, par le respect de règles de programmation, par la mise en œuvre outillée de tests automatisés à chaque cycle de développement et par la correction systématique et prioritaire des anomalies.
En outre, la qualité des produits est favorisée par l’application des différents frameworks Agile (SCRUM, SAFe…), cette bonne application étant souvent considérée comme suffisante pour répondre aux enjeux qualité des produits.
Cependant, l’agilité n’est pas forcément seule, certains grands projets ont des interfaces multi-métiers dont certains ne sont pas agiles : intégration de logiciel dans du matériel (sous-marin, avion…).
Les tests ne font pas tout : ils ne donnent qu’un indice de confiance sur la qualité produit, et doivent être complétés d’inspections et revues de la documentation. De plus, dans certains cas, les tests sont possibles seulement en environnement réel (tir de fusée), voire tout simplement impossibles (systèmes de sécurité de centrale nucléaire dans un contexte d’emballement de la réaction).
L’agilité n’est pas non plus totalement mature lorsque la transformation de l’organisation est en cours, et sa mise en œuvre nécessite un accompagnement, voire une surveillance.
Enfin, le contexte (client, réglementaire…) peut faire que l’on doive fournir des preuves de conformité par rapport à une norme ou à un framework.
Qualité et Qualité !
Lorsqu’on pose à un panel de personnes la question suivante : « si je vous dis Qualité, dites-moi tout ce que cela évoque pour vous », on obtient systématiquement plusieurs types de réponses :
- La qualité, c’est d’avoir des produits fonctionnels, sans défaut et qui satisfont les clients et utilisateurs.
- La qualité, c’est d’effectuer des tests, des vérifications et des revues pour éliminer les défauts et améliorer le fonctionnement.
- La qualité, ils nous ralentissent et nous fatiguent à chercher la petite bête, à intervenir quand on n’a pas besoin d’eux et à nous imposer des règles inutiles.
Cela traduit d’une part une frustration en termes de collaboration inefficace avec des équipes dédiées, d’autre part une mauvaise compréhension.
C’est pourquoi il est utile de proposer des définitions :
- La Qualité, c’est le QUOI, l’objectif, le résultat recherché en termes de satisfaction du client, de fonctionnalité du produit et d’absence de défaut.
- L’Assurance Qualité, c’est le COMMENT, l’ensemble des activités menées tout au long du cycle de vie pour atteindre l’objectif de Qualité ci-dessus : tests, vérifications, revues, surveillance, résolution de problèmes, amélioration continue.
- L’Organisation Qualité, c’est le QUI : l’ensemble des acteurs qui contribuent aux activités d’Assurance Qualité ci-dessus, parfois des qualiticiens appartenant à une Direction Qualité, mais aussi des rôles Agiles, des coachs, des managers, des experts et les équipes.
On peut distinguer la Qualité Produit et la Qualité Processus, la combinaison des deux résultant en Qualité pour le client et en valeur pour l’organisation : elle maîtrisera les produits, services et processus, sera reconnue sur le marché et améliorera la compétence et la motivation de son personnel.
La problématique à résoudre, dans tous les contextes mais plus particulièrement en contexte Agile est de déterminer QUI ASSURE QUOI, en d’autres termes, quelle organisation mettre en place pour pratiquer les activités d’Assurance Qualité, au service des objectifs Qualité.
Organiser l’Assurance Qualité, une question de curseur
Si nous cherchons à établir une topologie des organisations Qualité en contexte Agile, nous observons une combinatoire entre l’organisation de l’Assurance Qualité Produit et celle de l’Assurance Qualité Processus, selon qu’elles sont respectivement centralisées ou décentralisées.
Cela dépend à la fois des contraintes internes et externes (multi-métiers, nécessité de prouver la conformité…) et de la maturité de l’organisation et des pratiques Agiles : tests intégrés et automatisés, intégration de la dimension qualité dans la « definition of done » et les « user stories », amélioration continue portée par les rétrospectives, responsabilité des équipes et engagement des rôles Agiles envers la qualité processus.
Assurer la qualité en contexte Agile, « agilifier » l’assurance qualité
Nous considérons donc qu’une entreprise en contexte Agile doit déterminer l’organisation et les pratiques d’assurance qualité les mieux adaptées à son contexte industriel / logiciel. Il s’agit de positionner ce fameux curseur pour la qualité produit et pour la qualité processus.
Une entreprise qui opère une transformation Agile partira souvent d’une organisation Qualité centralisée, les qualiticiens étant relativement indépendants des projets/produits.
Agilifier l’assurance qualité consistera dans un premier temps à synchroniser ses activités avec la cadence des développements, puis à progressivement transférer la responsabilité de certaines de ces activités au sein des équipes Agiles, avec une autonomie croissante de ces équipes sur la Qualité.
Le succès de l’agilification de l’assurance qualité ne consiste pas à l’éliminer purement et simplement, bien au contraire, mais à procéder à ce transfert en mode Act-Assist-Answer, des qualiticiens vers les rôles Agiles (SM, RTE, STE) et le management, puis de ceux-ci vers les équipes.
On le voit, le positionnement du curseur est dynamique et évolue selon une stratégie d’amélioration continue.
On peut alors observer les phénomènes suivants :
- Les objectifs Qualité sont clairement représentés dans les supports-clés, qui comportent un volet Qualité : Definition of done, Definition of Ready, Acceptance, User Stories, Roadmap.
- La dimension Qualité est abordée dans toutes les cérémonies : sprint planning, PI planning, release review, rétrospective, et avec les interfaces clients/métiers et Ops.
- Les rétrospectives sont efficaces et supportent l’amélioration continue des pratiques Qualité.
- Les Quality Gates correspondent aux fins de sprints/releases/incréments.
- Le « processus » Agile est maîtrisé, adapté et fluide et sert la qualité.
La Qualité est alors vraiment au cœur des préoccupations des équipes Agiles, vraiment l‘affaire de tous, et la partie centralisée de l’Assurance Qualité répond au juste nécessaire.
Philippe Aknin, Consultant