On voudrait délivrer plus de valeur, plus vite.
Le Quality Engineering est le paradigme contraignant les activités de la chaîne logicielle à la livraison de valeur continue. Son atteinte nécessite d’agir sur les piliers de MAMOS : Methods, Architecture, Management, Organization, Skills.
L’alignement du système organisationnel est fondamental à l’évolution des pratiques d’ingénierie logicielle. Sans cet alignement, c’est comme nager à contre-courant ; on s’efforce de plus en plus, sans pour autant se rapprocher de la rive.
Le Quality Engineering nécessite donc de créer un écosystème organisationnel favorable à l’amélioration de la qualité logicielle. Il faut pour cela combiner conduite du changement et mise en place de pratiques améliorant la qualité.
Ce premier guide de transition propose une démarche incrémentale pour développer le Quality Engineering dans votre organisation. Chacune des transitions contient les actions issues du framework pour optimiser votre effort de transition.
Cet article consolide l’ensemble des étapes pour vous fournir une vue globale. Des articles approfondissant chacune des transitions sont disponibles pour creuser l’ensemble des pratiques référencées.
Suivez la QE Unit pour plus de contenu exclusif de Quality Engineering.
Inspirer, initier et marquer le changement
“A leader has the vision and conviction that a dream can be achieved. He inspires the power and energy to get it done.”
Ralph Lauren
La première transition consiste à impulser une dynamique de changement au sein de l’organisation. Il faut pour cela une vision et une mission inspirante permettant de rallier les acteurs à une cause commune, plus large que leurs intérêts individuels.
La définition des valeurs permettra de clarifier les comportements que votre unité de changement suivra. Afin d’optimiser votre effort, il faut focaliser son effort sur les forces présentes dans le système, à l’instar des early adopters.
Cette coalition vous permettra de mettre en place des premiers changements structurants sur l’organisation et les processus de qualité. Ces évolutions vous permettront de marquer la différence avec le passé, et le début d’un renouveau.
Clarifier votre vision de Quality Engineering
La définition d’une vision est essentielle au ralliement d’acteurs à votre cause. Elle permet de partager une image portée vers un futur meilleur que celui initialement envisagé. Cette perspective canalise les énergies, encore faut-il convaincre.
L’effort minimum sera celui retenu par défaut. Il faut réussir à convaincre que l’état actuel n’est pas la meilleure option. Pour cela, combiner la sensibilité au gain et l’aversion au risque augmentera l’impact de votre persuasion.
Une fois la vision définie avec une force poussant à l’action, vous pouvez expliciter plus clairement le comment avec une mission et des valeurs d’entreprise. Vous devez également clarifier les rôles et les intéractions attendus dans ce nouveau modèle.
Initier le changement avec le management et les méthodes
L’exécution peut s’initier une fois la cible étant définie. Les méthodologies permettent de structurer notre approche et d’en augmenter la probabilité de succès. La capacité d’exécution fait la différence dans l’atteinte du high standard.
La première étape est d’identifier les acteurs à impliquer. Une matrice de parties prenantes à 2 axes d’intérêt et de pouvoir permet d’identifier les acteurs en 4 catégories. Focalisez-vous en premier à rallier les promoteurs à votre cause.
Nous agissons pour combler un besoin identifié, encore plus s’il nous semble prioritaire. Votre vision doit donc posséder un sens de l’urgence pertinent pour les promoteurs identifiés les incitant personnellement à y contribuer.
Une fois ces deux exercices de persuasion réalisés, vous commencez à avoir un groupe d’acteurs avec une capacité d’action et d’influence animés par la réalisation de votre vision. Vous aurez en réalité achevé la création d’une guiding coalition.
Implémenter des nouveaux processus marquant la rupture
Votre unité motrice du changement peut à présent agir pour démontrer le besoin d’évolution dans l’organisation. Il faut pour cela marquer la rupture avec le passé en changeant les codes visibles et les actions récurrentes de l’organisation.
La première chose visible pour l’ensemble des acteurs est l’organigramme, les périmètres et les rôles affectés. Changer ces éléments est fondamental à un renouveau, comme l’ont fait ces acteurs en officialisant une structure de Quality Engineering.
Les intéractions entre les nouvelles positions et celles existantes doivent ensuite être formalisées. Il faut donc définir les responsabilités et livrables concrets de chaque rôle en relation à la qualité. Pour les mettre en musique, les processus doivent évoluer.
La chaîne de développement et de livraison logicielle est au cœur du Quality Engineering. En y ajoutant des étapes clefs avec des contributions claires entre les acteurs, le Quality Engineering commencera à s’y matérialiser.
Vous pouvez par exemple vous inspirer d’Atlassian en ajoutant des étapes QA kick-off et QA demo. Les mécanismes de peer review sont également simples à systématiser et renforce la qualité des livrables tout en supportant les nouvelles intéractions.
Ayant montré l’exemple avec votre early win team, votre priorité est maintenant de répliquer cet impact dans l’organisation.
Focaliser l’énergie jusqu’au point de bascule
“Qui veut aller loin ménage sa monture”.
Racine
Canaliser son effort sur les actions maximisant les résultats permet d’accélérer la transformation. La priorisation permet d’atteindre des résultats tangibles sur périmètres sélectionnés jusqu’à créer un effet boule de neige au point de bascule.
La conduite du changement doit donc s’équilibrer sur deux pans : agir sur les périmètres priorisés pour obtenir des résultats, et maintenir une communication plus large pour préparer le reste de l’organisation au changement.
Le management peut supporter l’accélération de la transformation en prévoyant un minimum d’action comme l’évolution du nouveau modèle organisationnel, des indicateurs de performance et la structuration de fondations de Quality Engineering.
Équilibrer votre effort de conduite du changement
Le point de bascule est votre priorité. L’atteinte de son seuil permet de cascader les changements réalisés dans le reste de l’organisation en minimisant vos efforts et avec un maximum d’impacts.
Vous devez pour cela capitaliser sur votre matrice de gestion des parties prenantes pour élaborer un plan d’intéractions et de communication. Votre priorité est de fédérer de nouveaux acteurs au Quality Engineering, tout en maintenant les autres au courant.
Des intéractions directes individuelles et en petits groupes seront nécessaires pour déployer votre nouveau modèle avec les promoteurs. Pour les autres, vous pouvez mixer communication globale, partage de résultats, questionnaires, entre autres.
Vos efforts doivent se maintenir focalisés à l’atteinte de résultats sur le court et moyen-terme. Vous devez dans cette étape uniquement inclure les acteurs ayant les compétences nécessaires – en interne ou en externe – pour ne pas perdre de temps.
Aligner et animer les acteurs par le management
Le management permet d’orchestrer les différents acteurs dans la mise en place des nouvelles pratiques. Ils doivent à la fois agir de front en réalisant des actions concrètes et créer un écosystème accélérant la collaboration directe entre acteurs.
La culture permet de conduire des nouvelles unités de Quality Engineering et faire évoluer l’organisation. Le management doit de front adresser deux sujets : éliminer le mythe de “test ⇔ qualité” et expliciter comment faire moins de tests.
Les acteurs – souvent de divers horizons et compétences – ont besoin d’un terrain commun pour collaborer efficacement. Le management doit animer des ateliers pour aligner la définition de la Qualité et les principes de la qualité, comme le Shift-Up.
L’atteinte du point de bascule se fera par une succession d’itérations. Le management a pour responsabilité d’y arriver le plus rapidement possible en développant des compétences organisationnelles. Un mécanisme puissant est celui de rétrospective.
Évoluer la structure organisationnelle et les responsabilités
La structure organisationnelle pose un cadre pour les acteurs. Elle définit directement les périmètres, les rôles et les hiérarchies. Indirectement, elle guide les intéractions et la localisation du pouvoir dans l’organisation.
Changer la structure organisationnelle permet de préparer l’ensemble de l’organisation aux évolutions à venir. Cette étape est essentielle pour que l’effet boule de neige de notre point de bascule vers le Quality Engineering ait les impacts attendus.
Le Quality Engineering nécessite de supprimer un silo unique responsable de la qualité. Il est fortement recommandé de remplacer l’acronyme “QA” par un nom aligné avec une responsabilisation en transverse de la qualité.
Le département “QA” peut par exemple être renommé en “QE” ou “Craft”. La responsabilisation sur les contributions, livrables et intéractions de qualité doit être clairement définie et composée. Le modèle Team Topologies peut vous être utile.
Le Quality Engineering a besoin de compétences pour faire mieux plus tôt. Il faut investir prioritairement sur les compétences de requirements management, le software craftsmanship, et la communication (écoute active, adaptation).
Développer et implémenter des nouvelles mesures de performance
Il faut pouvoir mesurer la création de valeur pour maintenir les efforts en cours et sécuriser leur déploiement par la suite. Loin des retours sur investissements, vous devez relier les outputs aux outcomes en continu.
Des méthodologies existantes telles que le Balanced Scorecard permettent de maintenir une vision globale des résultats. Son avantage principal est d’équilibrer notre perspective afin d’éviter les optimisations locales négatives.
Le QE Monitoring consiste à mesurer de manière régulière et collaborative l’évolution de vos pratiques de Quality Engineering. Vous pouvez vous baser sur le Quality Culture Guide d’Alan Page et Brent Jensen, ou le Quality Health Monitor d’Atlassian.
La dernière mesure repose sur le Net Promoter Score, une méthodologie largement utilisée pour la satisfaction client. Appliquée aux acteurs contribuant au logiciel, vous pouvez continuellement récolter un feedback du terrain de votre démarche.
Ces mécanismes de mesures permettent au management de suivre l’avancement, prioriser des actions correctives et démontrer la valeur des changements en cours. Ceci tout en dynamisant le reste de l’organisation par un partage plus global.
Poser les fondations de la plateforme de Quality Engineering
Le Quality Engineering nécessite une chaîne de livraison logicielle efficace et réplicable. En vous focalisant sur un périmètre restreint, vous pouvez rapidement définir une structure commune, qui servira ensuite comme modèle.
La première fondation est l’alignement de votre code repository avec votre architecture organisationnelle et logicielle. Faites donc un choix éclairé entre monorepo ou multipo, et définissez des templates de projet par typologies.
Votre test repository est la seconde brique à structurer. Elle consiste à définir oú maintenir votre référentiel d’exigences – de préférence unifié – et sa déclinaison en composants techniques sous forme de tests manuels et automatisés.
Ces 2 piliers combinés vous permettent de construire des processus de déploiement logiciel incluant systématiquement vos critères de qualité. Pour chacun des templates, mettez donc en place des pipelines de CI/CD incorporant des Quality Gates.
Ces itérations vous mèneront au point de bascule qui changera vos priorités.
Diffuser, accélérer et maintenir ce nouvel écosystème
“Culture does not change because we desire to change it. Culture changes when the organization is transformed – the culture reflects the realities of people working together everyday.”
Frances Hesselbein
Passé le point de bascule, votre priorité est d’accélérer l’adoption du Quality Engineering dans le reste de l’organisation. Il faut veiller à garder une harmonisation des activités pour faciliter la collaboration et la diffusion de bonnes pratiques.
Les compétences des acteurs permettent de solidifier l’accélération apportée par le passage du point de bascule. Le management doit donc veiller à développer et recruter les compétences nécessaires pour les différentes unités de Quality Engineering.
La propension à l’extension des pratiques logicielles requiert de contenir leur entropie. La complexité doit être réduite avec un focus sur la création de valeur en transverse et un investissement continu dans l’architecture et les technologies.
Étendre la culture et rester garant des processus
La culture supporte la collaboration d’acteur à l’échelle avec un minimum d’effort de coordination. C’est un élément fondamental de diffusion des pratiques de Quality Engineering dans l’organisation, qu’il faut savoir animer en continu.
La définition d’un plan de culture qualité pose un cadre pour suivre votre plan d’action. La priorisation des pratiques sous divers axes comme les méthodes, l’architecture et l’organisation vous permet d’équilibrer votre effort.
Le partage d’expérience réalisé au-delà des silos organisationnels permet de construire des bonnes pratiques communes. Il faut utiliser des mécanismes de gestion de la connaissance comme les communautés de pratiques ou portails de documentation.
Le management reste également garant du bon respect des méthodologies définies. Les Definition of Done doivent être systématiquement suivies pour maintenir le niveau, et enrichies pour s’ améliorer, comme les Testing Notes ou le Blitz Test.
Accélérer le changement en augmentant les compétences
Délivrer du logiciel au high standard requiert des contributions d’acteurs répondant à ce degré d’exigence. Leurs compétences sont donc fondamentales à la performance de votre chaîne de livraison logicielle de Quality Engineering.
Au démarrage, vous avez pu utiliser les compétences disponibles en interne ou en externe en agissant sur un petit périmètre. Sur un prisme global, vous devez à la fois accélérer votre développement et recruter les compétences nécessaires.
Pour développer vos compétences internes, vous pouvez changer d’équipe des gens au niveau pour accélérer une unité ; ceci en complément des communautés de pratiques et des plans de développements individuels sous forme de formation et coaching.
Pour les compétences externes, il faut combiner des partenariats stratégiques donnant accès à un pool de compétences, tout en jouant sur les extensions d’équipes à la demande sous forme de gig economy, de communautés ou de freelances.
Les compétences utiles à cette transition supportent la diffusion et le maintien des pratiques. On y retrouve les compétences avancées de Testing, de facilitation sous forme de coaching par exemple, et d’architecture pour garantir vos fondations.
Complémenter les mesures de valeur et de productivité
L’essaim d’activité généré par l’atteinte du point de bascule doit être focalisé en continu sur la création de valeur. Vous devez pour cela enrichir vos méthodes de mesure de la performance pour canaliser les énergies des acteurs.
Le value-stream permet d’optimiser l’organisation des tâches contribuant à la création de valeur. La liaison des séquences d’activités au regard de la création de valeur focalise les acteurs à identifier les allers-retours inutiles et à supprimer le waste.
Avant tout en première ligne, la population des développeurs doit être spécifiquement considérée dans la chaîne de livraison logicielle. Améliorer la Developer Experience en misant sur l’Engineering Productivity est un bon investissement.
Enfin, le support de la performance au métier par le Quality Engineering est en partie mesurable avec les 4 métriques issues du rapport Accelerate : deployment frequency, lead-time for changes, time to restore service, change failure rate.
Continuer l’investissement sur l’architecture et les technologies
La collaboration des composants logiciels constitue le niveau de qualité de l’expérience client. Investir dans leur composition, réplicabilité et déploiement permet d’élargir les pratiques de Quality Engineering en gérant le risque.
L’interopérabilité technologique découle d’un investissement en amont permettant de découpler á un niveau d’abstraction définie. Un système API-driven (Application Programming Interface) est fondamental à un écosystème rapidement évolutif.
La réplicabilité est le second investissement à réaliser. Des équipes aux enjeux différents ont quand même des similitudes en développement, déploiement ou pratiques de code. Les coding et testing bootstraps sont donc essentiels.
Lorsque le Quality Engineering se déploie, les changements logiciels vont accélérer. Il faut pouvoir contrebalancer l’augmentation du risque d’indisponibilité et d’instabilité en fournissant des mécanismes natifs de déploiement progressifs dans les pipelines.
Ancrer et guider l’amélioration continue des pratiques
“If you want to grow an organization then enable its employees to experiment, explore and express their creativity without limiting them to title, department & designation.”
Aiyaz Uddin
À cette étape, la majeure partie de l’organisation aura adopté vos pratiques de Quality Engineering. Le défi est de réussir à créer un écosystème capable d’apprendre et d’améliorer avec un maximum d’autonomie sa performance.
Les acteurs au centre du système sont les éléments pivots sur lesquels s’appuyer. En développant leur compétences, ils pourront eux-mêmes devenir les ambassadeurs des pratiques et de l’amélioration continue.
La tâche restante aux leaders initiaux de la démarche de Quality Engineering est d’être le dernier rempart garant de la culture. L’objectif est d’atteindre un niveau de maturité dans lequel ils deviendraient théoriquement inutiles.
Développer les compétences organisationnelles pour scaler
La développement de capabilities organisationnelles nécessite un minimum de compétences au bon niveau permettant d’entraîner les acteurs d’une équipe au même standard. La réplication de ce mécanisme à l’échelle créera une capability.
Augmenter le niveau nécessite en premier d’identifier les manques dans l’organisation, par exemple via une skills matrix et un exercice de gap analysis. Cet état des lieux permet de définir un plan d’action en fonction de vos possibilités.
Il faut idéalement combler rapidement les compétences sur les équipes à plus forte valeur ajoutée. Vous pouvez pour cela changer des personnes d’équipe ou recourir à des ressources externes. Investir dans la formation continue vous aidera en continu.
Des compétences spécifiques au passage à l’échelle supporteront la performance et l’amélioration continue. Les méthodes de Lean Problem Solving et de Lean Continuous Improvement forceront aux petits pas, également grâce à l’influence.
Guider les équipes à complémenter et adapter leurs pratiques
L’élargissement de votre dynamique doit passer par des relais pour maintenir une diffusion des pratiques dans l’ensemble de l’organisation. Il faut pour cela savoir guider les acteurs en système relativement autonomes et auto-apprenant.
Vous pouvez systématiser la définition de métrique business pour chacune de vos unités de Quality Engineering. L’utilisation d’OKR est souvent recommandée dans le passage à l’échelle comme dans Safe ou chez GitLab.
L’amélioration continue passe également par une curiosité continue. Il faut donc inciter les acteurs à s’ouvrir vers l’extérieur pour découvrir de nouvelles pratiques, échanger et remettre en cause leurs mécanismes. Il faut leur donner les moyens.
Les équipes ont besoin de visibilité sur l’écosystème pour garder la vue d’ensemble et piloter les améliorations les plus pertinentes. La mise en place d’une Observability Pipeline sera utile, concrétisée par exemple via l’engineering productivity.
Rester garant de la culture organisationnelle de Quality Engineering
Vos investissements vous auront permis de développer une réelle culture du Quality Engineering dans notre organisation. Maintenir cette culture requiert une attention continue dans un écosystème en constante évolution.
Les équipes, peu importe leur modèle, auront tendance à l’optimisation locale. Le management devra en continu rappeler la valeur en transverse, le focus sur le client, et les priorités à délivrer au-delà des silos organisationnels.
Les leaders doivent donc être sur le terrain, au contact des équipes, partageant leurs convictions, poussant les acteurs à s’améliorer et trouver des solutions aux défis qu’ils rencontrent. Leurs compétences de feedback seront essentielles à cet effet.
L’amélioration continue passe par la mesure et l’adaptation continue. C’est d’ailleurs cette accélération de livraison de valeur qu’un écosystème de Quality Engineering au high standard vous permettra d’atteindre.
Initier votre transition vers Le Quality Engineering
La mise en place du Quality Engineering résulte de la bonne conduite des différentes transitions identifiées. Les efforts doivent être canalisés à chacune des étapes sans vouloir en sauter, au risque de créer un essoufflement organisationnel.
Les leaders de Quality Engineering doivent combiner leurs expertises en conduite du changement et en ingénierie logicielle pour réussir. Le high standard pousse à augmenter le niveau d’exigence en continu, un réel défi quand le temps est compté.
Rome ne s’est pas construite en un jour. Mais l’écosystème actuel ne vous laisse pas beaucoup de répit pour rester compétitif. Agissez dès à présent sur vos transitions pour amener votre organisation à la livraison de valeur continue.
Suivez la QE Unit pour plus de Quality Engineering.