Qu’est ce que le Quality Engineering ?

Le terme de Quality Engineering est un concept qui devient de plus en plus populaire et en pleine expansion dans le monde. Plus qu’une tendance, c’est une approche et une culture qui permet de réconcilier vitesse et qualité (Quality at Speed).

Dans cet article nous allons répondre :

Cet article vous partage en quoi le Quality Engineering va bien au-delà de la Quality Assurance, ou de la Quality Assistance.

Qu’est-ce que le Quality Engineering ?

À ce jour, il n’existe pas de définition universelle du Quality Engineering. Cependant , il est possible de s’appuyer sur la définition de QE Unit :

“Le Quality Engineering est le paradigme qui contraint l’ensemble du cycle de vie logiciel à la livraison de valeur continue, en créant des logiciels de meilleure qualité, plus rapidement, grâce à des pratiques logicielles progressives, systémiques et évolutives.”

Pour aller plus loin, le livre de QE Unit donne une définition du Quality Engineering qui s’appuie sur les challenges de la transformation des entreprises par le logiciel :

  • Délivrer et capter de la valeur en continu dans un écosystème ultra-compétitif.
  • Faire des choix d’investissements et de priorités dans un monde peu prévisible.
  • Offrir une expérience digitale à des utilisateurs avec qui nous n’interagissons pas directement.
  • Livrer des incréments logiciels difficiles à exprimer et les adapter avec expérimentation.
  • Rationaliser des processus de bout en bout de plus en plus complexes et interdépendants.
 

Pour cela, la qualité doit être partagée par l’ensemble des parties prenantes et par l’ensemble des acteurs projets. Le Quality Engineering est alors un état d’esprit poussé par une forte culture qualité dont le management est responsable. Le leadership et un sponsoring sont indispensables pour mener à bien cette transformation en y mettant les efforts soutenus et continus de conduite de changement et les investissements nécessaires.

Le Quality Engineering est l’application du « total quality management » au logiciel et repose donc sur l’ensemble des meilleures pratiques issues de l’Agilité, du DevOps, du Software Craftsmanship et de la qualité logicielle. Cette approche est un paradigme qui allie vitesse et qualité pour contraindre l’ensemble de la chaîne de valeur logicielle à une livraison continue : c’est ce qu’on appelle le Quality at Speed.

L’objectif est de mettre en place une culture permettant le ”Build Better to go Faster” (construire mieux pour aller plus vite) afin d’injecter de la qualité dès le début et de manière transversale. Ceci permettant d’apporter de la vitesse en continu et sur le long terme en s’appuyant sur une excellente technique, méthodologique et culturelle.

Le Quality Engineering, ce n’est pas de la Quality Assurance ?

Très souvent, un raccourci est fait en nommant les testeurs, des “QA Engineers”. Mais, le Quality Engineering ne peut se résumer à la Quality Assurance ou à la Quality Assistance, qui correspondent plutôt à une base ou à des transitions pour finalement atteindre un état de Quality Engineering.

En s’appuyant sur définition du Quality Engineering décrite précédemment, on peut noter que la Quality Assurance ou la Quality Assistance sont des approches progressives et incrémentales de la transformation permettant de tendre vers une plus grande maturité de Quality Engineering.

Le Quality Engineering n’est donc pas restreint à une seule pratique mais bien à un éventail d’activités permettant de tendre vers du Quality at Speed, alors que la Quality Assurance se repose principalement sur les tests logiciels pour vérifier et contrôler des exigences, au lieu de les intégrer plus en amont et durant le cycle de développement.

le quality at speed wering group

L’objectif est de rendre les équipes et les projets autonomes en termes de qualité avec les meilleures techniques et méthodes de façon transversale et pas forcément de mettre plus de QA engineers pour espérer plus de qualité.

À qui s’adresse le Quality Engineering ?

Le Quality Engineering s’adresse à tous. C’est une discipline qui peut bénéficier à toute personne désireuse d’améliorer la qualité de son travail, de ses produits ou services, et/ou de ses processus. Cela inclut :

  • Les QA pour aider à accompagner les équipes projets.
  • Les développeurs qui veulent améliorer la qualité de ce qu’ils produisent (qu’il s’agisse d’un objet, d’un processus ou d’un système).
  • Les équipes métiers pour définir de la valeur à délivrer rapidement.
  • Les Ops pour produire un écosystème favorable au Quality at Speed.
  • Tous ceux qui veulent s’assurer qu’ils fournissent des produits ou des services de haute qualité de manière constante par du management et de l’organisation.

Un développement des compétences nécessaire

Le rapport Deloitte “2021 Quality Engineering Trends Report – Market dynamics shaping the future of quality engineering” met bien en évidence cette transformation en cours et les tendances qui émergent en termes de métiers et de compétences..

Ce rapport, couplé à une étude publiée par Dell et l’Institut pour le Futur indiquent que 85 % des emplois de 2030 n’existent pas encore, montrant que les entreprises performantes doivent continuer à faire évoluer leurs capacités de développement de logiciels – et le faire avec un niveau d’expertise toujours plus élevé.

Il est donc indispensable de mettre en place dans nos entreprises une culture de la qualité et de former tous les acteurs des équipes sur les meilleures méthodes et outils du marché. On peut citer le clean code, le TDD, l’observabilité, l’exemple mapping, l’Agilité, le DevOps …

Il faut donc former, en continu, techniquement et méthodologiquement nos testeurs à ces métiers afin de s’adapter au changement et de ne pas le subir, de les accompagner et de les mettre en situation pour maîtriser ces compétences qui ne sont pas que techniques.

Échanger, collaborer, communiquer, et surtout être curieux sont des compétences et surtout une mentalité à ancrer dans les équipes. La culture du Quality Engineering passe en premier par un développement de nos softs skills.

Atlassian, un modèle à suivre ?

Atlassian est un bon exemple de mise en place en partie du Quality Engineering et a popularisé la notion de Quality Assistance depuis 2009.

Atlassian a adopté ce modèle afin de mettre en place une démarche de Quality at Speed en rendant les équipes autonomes avec une culture qualité forte et de créer du code de qualité livré en production par eux-mêmes.

Dans ce modèle, l’ingénieur QA devient un facilitateur, un coach qualité qui garde un rôle d’expert et de référent test mais n’est plus celui qui effectue les tests. C’est un changement radical par rapport au modèle traditionnel qui a pour objectif d’aider les équipes de développement à implémenter le Quality at Speed.

Atlassian a détaillé sa démarche pour arriver sur celui de la Quality Assistance mais ce modèle n’est pas forcément adapté à toutes les organisations. La démarche vers une maturité du Quality Engineering est toujours en cours et Atlassian déploie et teste de nouvelles approches technologiques et méthodologiques régulièrement.

Ce modèle n’est pas forcément reproductible en mode copier-coller. Cependant, certaines entreprises ont généralisé cette démarche. À l’international, des entreprises comme Dashlane, AirBnb ou Netflix s’en sont inspirés.

En France, on commence à initier cette démarche. Par exemple, dans le retail, Cdiscount tout comme ManoMano ont mis en place une démarche de Quality Engineering en s’appuyant sur des Quality Advisors pour accompagner leurs équipes produit. C’est aussi le cas chez Ankorstore qui est une start-up avec un modèle de marketplace.

Ces 3 enseignes ont en commun un marché hyper-concurrentiel où le Quality at Speed est un enjeu stratégique. Dans d’autres secteurs d’activité, des entreprises ont initié des activités du Quality Engineering : la Société Générale a mis en place du Software Craftsmanship, et SNCF connect a mis en place du Chaos Engineering depuis 2018 ou encore Orange avec des quality coachs.

QE Unit est en train de construire un framework et un référentiel de maturité, MAMOS, pour permettre à chaque organisation de se positionner et de définir des axes d’amélioration dans leur démarche de Quality Engineering.

À retenir :

  • Le Quality Engineering est le paradigme contraignant l’ensemble de la chaîne logicielle au Quality at Speed.
  • Le Quality Engineering est bien plus que de la Quality Assurance et de la de Quality Assistance.
  • La Quality Assistance est une étape transitoire dont la nécessité doit être évaluée au cas par cas.
  • Pour tendre vers ce paradigme de Quality at Speed, nous devons former et acquérir de nouvelles compétences.
  • Il est nécessaire de développer un ensemble de mesures et de procédures pour améliorer la qualité d’un produit ou d’un service.

Par Jean-François FRESI