Definition

Quality gate (mur qualité)

Dans un projet informatique, un mur qualité (ou mur de qualité, ou quality gate en anglais) représente un jalon qui exige de respecter certains critères prédéfinis avant le passage à la phase suivante. Ces murs sont conçus pour établir des indicateurs de référence dans une démarche de qualité. On les utilise couramment tout au long des projets de développement logiciel et applicatif. En règle générale, les murs qualité se situent juste avant des phases fortement dépendantes du résultat de la précédente, notamment lorsqu'il faut traiter et résoudre des points de tension potentiels. 

La notion de quality gate fait appel à certains aspects de la gestion de projet, de la modélisation décisionnelle et de la gestion de workflow pour améliorer la mesurabilité et promouvoir de meilleures conditions. Les murs de qualité s'appliquent à de nombreux niveaux de l'organisation (système, projet et publication, par exemple). Ils sont aussi utilisés dans le cadre de méthodologies globales de développement de produits ou d'assurance qualité (QA).

Fonctionnement d'un mur de qualité

Les quality gates ont un double rôle : s'assurer de la bonne conception technique d'un projet et de sa prise en charge à l'issue du déploiement. Pour ce faire, on définit en amont des critères en fonction des aspects mesurables du projet : le nombre de failles par exemple, que les résultats concernent l'objectif ou la durée de compilation. Les risques du projet sont réduits au minimum grâce à des listes de contrôle détaillées phase à phase et à une communication permanente des chefs de projet sur le processus. Résultat : le cycle de développement est écourté, car les taux de succès s'améliorent et la bonne conception du produit revient au centre des préoccupations.

Quand on atteint un mur qualité, on compare les résultats du projet aux critères prédéfinis pour obtenir un rapport d'état. Il y a trois états possibles :

  1. Réussite : les critères de référence sont respectés, la production peut se poursuivre.
  2. Avertissement : les critères de référence ne sont pas respectés, ou à peine, une vérification s'impose avant de poursuivre la production.
  3. Echec : les critères de référence ne sont pas respectés, il faut résoudre certains problèmes avant de poursuivre la production.

Il est rare que les projets logiciels respectent les délais, les budgets et autres contraintes fixés. Mais en définissant en amont des indicateurs de référence et en pilotant un projet à des stades clés pour en surveiller la qualité, il est possible de remédier à ces situations.

Mise en oeuvre des murs de qualité

Personnalisables, les murs de qualité revêtent plusieurs formes selon le degré de mise en oeuvre. Pour certaines applications, notamment avec des cadres de contrôle internes, les critères peuvent être plus stricts que pour d'autres. Les listes de contrôle des livrables peuvent s'appliquer tout au long d'un projet, et le passage à l'étape suivante dépendre de la réalisation correcte de chaque élément de la liste. La validation et l'approbation formelles sont obligatoires à chaque mur. Le chef de projet informatique et un cadre supérieur ou commanditaire impliqué dans le projet doivent vérifier les listes de contrôle. L'évaluation de la qualité et de l'intégrité du produit et des informations doit ensuite être communiquée aux acteurs concernés.

Murs de qualité en sécurité

Bien que traditionnellement utilisés pour veiller à ce que le code réponde à des exigences précises, les quality gates servent aussi à vérifier l'absence de faille de sécurité dans le code et garantir un développement en toute sécurité. Les murs permettent aussi d'arrêter une version ou d'en empêcher la sortie quand le code n'est pas conforme aux références ou aux normes de sécurité. Ainsi intégrée au produit dès la conception, la sécurité n'est ni accessoire ni annexe. Plus le cycle de développement logiciel l'intègre tôt, plus les programmeurs gagnent du temps en aval.

Cette définition a été mise à jour en novembre 2020

Pour approfondir sur Outils de développement