Les organisations doivent accélérer leur transformation dans un écosystème de plus en plus dynamique.
Les clients sont de plus en plus exigeants, nous avons quelques secondes pour réussir à capter leur engagement.
La capacité d’innovation et moyens financiers permettent à des acteurs d’émerger rapidement, remettant en cause les acteurs existants.
En parallèle, l’automatisation et la digitalisation prennent une place de plus en plus forte sur des dispositifs IoT, plus intelligents, poussant à un renforcement de la sécurité.
Ces grandes forces poussent les équipes à vouloir expérimenter et délivrer plus rapidement de la valeur.
Les sujets d’agilité, organisation transverse, automatisation, CI/CD, et de by design sont de plus en plus recherchés.
Une intégration structurelle de la qualité doit l’être dans les différents processus et chaînes de valeurs concernées.
C’est là qu’entre en jeu le Quality Engineering (QE).
Quelle définition pour le Quality Engineering ?
Différentes perspectives existent plus ou moins inspirées de l’ingénierie traditionnelle.
Pour certains, le QE est une évolution de la Quality Assurance (QA) plus transversalement intégrée au paradigme du DevOps.
La QE va pour moi plus loin en permettant la création d’un système holistiquement plus performant.
Il faut donc intervenir plus largement, en lien avec la stratégie de l’entreprise, la roadmap des produits digitaux, leur mesure de la valeur.
Son but ultime est de créer une organisation auto-apprenante orientée sur l’apport de valeur client accélérée par les technologies.
Ma définition du Quality Engineering (QE) est la suivante :
Ma définition du Quality Engineering : “an Enterprise Value-Driven System leveraging Automation, Analytics and AI.”
Antoine Craske
J’en dégage ces grands domaines orientés sur la création de valeur :
- Enterprise Architecture
- Organizational System
- Product Management
- Engineering System
Leur accélération par l’automatisation, l’analytics et l’IA est nécessaire pour une performance structurelle.
L’emphase sur le value-driven est importante, la qualité n’étant pas forcément synonyme de valeur.
Partageons donc chacune de ces composantes.
Le Value-Driven Enterprise Architecture
Où va-t-on? Quelles compétences d’entreprises développer? Quelles évolutions structurelles planifier?
Tant de questions fondamentales que l’architecture d’entreprise, pas uniquement IT, vient aider à répondre.
En lien avec le Quality Engineering, plusieurs éléments sont pour moi pertinents à partager.
La perspective transversale permet d’analyser un système dans sa globalité et d’améliorer notre prise de décision.
C’est cette prise de recul qui limitera des optimisations locales au détriment de la performance globale de votre système.
Concrètement, vous pouvez par exemple éviter d’investir sur une application dont sa pertinence client n’est plus d’actualité, basculer des investissements devenus habituels sur des nouveaux services à incuber.
En complément, les fameuses cartes d’architectures à différents niveaux, faisant parfois peur, ont l’utilité de visualiser l’alignement.
Appliqué à une comparaison de l’existant et de la trajectoire, nous pouvons détecter des fonctions manquantes à la livraison d’un nouveau service et anticiper la création d’applications adaptées.
La réalité trop souvent vécue est de se prendre plusieurs murs successifs, suivis de multiple rework pour finalement se rendre compte qu’une réflexion en amont aura été bien plus efficace.
Suivent les capabilities, reflétant les compétences d’entreprise nécessaires à l’atteinte et exécution de notre cible d’architecture.
En parlant de cible, à budget limité, sur quels produits allez-vous investir, à quelle hauteur d’automatisation, de traitement de la donnée ? Au prix de quelles alternatives ?
L’architecture d’entreprise apporte également des clefs pour pondérer et prioriser des choix structurants d’investissement.
Son impact doit être concret, partagé et actionnable pour être un réel apport de valeur, en réalisant par exemple :
- L’animation d’une gouvernance de transformation transverse
- Le partage de principes directeurs accompagnés d’exemples pertinents
- La gestion de la dette architecturale, organisationnelle et technique
L’orientation sur la valeur par le value-driven mérite un rappel constant, toute activité ayant une tendance naturelle à se contenir.
L’architecture peut être à tort perçue comme statique, c’est au contraire un organisme vivant riche d’interactions et d’évolutions.
Le système organisationnel est la seconde pierre angulaire du QE.
Le Value-Driven Organizational System
Avez-vous déjà ressenti des freins presque invisibles de résistance au changement ?
Un manque d’alignement de l’organisation fait émerger ce type de résistance.
Le système organisationnel est composé de plusieurs éléments qui doivent être alignés :
- Mission, objectifs et valeurs
- La structure et ses intéractions
- Les processus intra et inter-système
- Les acteurs, rôles et compétences
- Les technologies et plateformes
- Les mécanismes d’incentives et de feedback loop
Le system-thinking est donc l’acteur principal de cette scène, complémenté par des pratiques de marché.
On se référera aux modèles d’équipes cross-fonctionnelles, de feature-team ou au modèle des Team Topologies.
Plus en détail, on peut retrouver les communautés de pratiques mises en place, ou le recours ponctuel à des ressources externes à la demande.
Les processus doivent être vus par leurs différents prismes :
- Leur valeur et résultat attendus (i.e. outcome)
- Leurs modes d’organisation, par exemple en Scrum
- Leur criticité, fréquence et volume de traitement
Les standards de LEAN, 6-Sigma ou Common Problem-Solving peuvent complémenter l’approche.
On notera que les compétences doivent être prises dans leur globalité : actuelles et futures, techniques et comportementales, individuelles et d’équipes.
Développer des compétences d’intelligence émotionnelle couplées à un processus de problem-solving est un exemple de choix possible.
Après l’architecture et le système organisationnel, nos itérations de Quality Engineering continuent vers le Product Management.
Le Value-Driven Product Management
C’est le moment de commencer à concrétiser, sans pour autant se précipiter dans le code.
Le Product Management a pour but d’assurer le cycle de vie des produits dont l’objectif est la création de valeur.
Les points suivants permettent d’illustrer les activités souvent en responsabilité d’un Product Owner :
- Identifier les personas
- Définir une vision et roadmap
- Choisir les métriques
- Analyser et adapter le pricing
- Prioriser les expérimentations à réaliser
Le QE doit dans un premier temps assurer la présence du Product Management solide et réellement incarné.
Trop d’organisations reposent encore uniquement sur des chefs de projet, dangereux quand temporaires et sans lien avec les enjeux globaux.
L’orientation vers la création de valeur pour le système est sa seconde priorité.
Les bonnes mesures sont structurantes et découlent souvent du système organisationnel défini.
Nous pouvons facilement tomber dans l’utilisation de vanity metrics, utiles aux egos mais insignifiantes pour mesurer la valeur.
Le dernier apport du Quality Engineering sera d’assurer une implémentation alignée avec l’architecture, le système organisationnel et le Product Management.
Le Value-Driven Engineering System
C’est ici que nous allons trouver les composantes nécessaires à rendre vivant notre système.
Je vous évite un acronyme DevTestSecOpsSre digne d’un dictionnaire allemand.
L’important à retenir pour le Quality Engineering est que les diverses compétences d’ingénierie doivent être combinées pour réaliser les itérations de nos produits.
Plusieurs éléments sont clefs :
- Des processus définis, structurés et mesurés de développement (i.e. SDLC), livraison, opérations
- Une forte ingénierie de la qualité, des différentes exigences aux techniques de tests, supporté par des solutions de Quality Assurance
- Une plateforme de développement fournissant les différents services aux acteurs (CI/CD, logging, alerting, etc)
- Une réelle capacité d’observabilité des différents processus, applications et des opérations
La Quality Assurance se retrouve ici sur son prisme de Quality Assurance Engineering sans pour autant s’y limiter.
On retrouvera par exemple des tests exploratoires plutôt liés à du Product Management qu’à l’Engineering System.
Passons aux accélérateurs du Quality Engineering.
Analytics, automatisation et IA au service du QE
Créer un système pouvant itérer et apprendre rapidement nécessite de réelles fondations différenciantes.
La capacité d’Analytics est la première retenue afin de pouvoir observer le système, obtenir des insights et les transformer en actions.
La mesure du Value-Stream supporté par du Process Mining ou de Statistical Process Control (SPC) sont des exemples de techniques adaptées au QE.
L’analyse est nécessaire à la mesure de la performance, création de valeur et compréhension de notre système.
C’est également ce qui permet de supporter l’apprentissage et la priorisation des itérations.
L’automatisation est quant à elle ce qui nous permettra d’accélérer, sans forcément devoir être omniprésente.
Notre système de QE cible doit clarifier les choix structurants d’automatisation à réaliser, que ce soit en collecte de données, développement, déploiement ou de tests.
L’intelligence artificielle (IA) est focalisée sur la Data Science et l’application de techniques telles que le Machine Learning, Deep Learning.
L’IA est bien l’un des leviers puissants applicables aux différentes activités de notre système de QE.
Sa valeur dans le Quality Engineering est multiple :
- Améliorer la valeur de l’automatisation
- Permettre des prises de décision plus qualitative
- Démultiplier l’apprentissage du système
L’utilité doit être la première réflexion à avoir en clarifiant pour quels acteurs et quelles activités l’IA serait pertinente.
Son applicabilité est ensuite à valider par la présence de données avec un volume, qualité et exploitabilité suffisante.
Quality Engineering ou Enterprise Quality Engineering ?
L’ajout du mot Enterprise ne me semble pas obligatoire, l’important étant bien la perspective transversale.
Le Quality Engineering ne se résume pas qu’à une amélioration de la fonction de QA ou des activités de Testing.
L’intégration de la qualité dans l’ensemble des processus d’une organisation requiert une vision et approche holistique du système.
La complémentarité des disciplines et compétences nécessaires pose la question de l’animation de cette démarche de Quality Engineering, que nous creuserons dans d’autres contenus.
Ces différentes composantes du QE sont les ingrédients de systèmes créateurs de valeur d’aujourd’hui et de demain.
References
https://www.accenture.com/us-en/insights/technology/quality-engineering-new