Qualité : Un enjeu clef pour la maîtrise d’un produit stratégique
Qualité : Un enjeu clef pour la maîtrise d’un produit stratégique
Chez OCTO Technology, nous considérons la qualité logicielle non pas comme une contrainte, mais comme un levier essentiel pour maîtriser systèmes, processus et interactions entre des parties prenantes. Sans une approche rigoureuse de la qualité, nous risquons de subir nos systèmes plutôt que d’en avoir le contrôle. Cette approche doit concerner l’ensemble des parties prenantes d’un produit que ce soit les équipes de réalisation : développement, produit, design, les architectes ou toutes autres parties prenantes : métiers, sponsors, … et ceci quel que soit le cycle de vie du produit. Elle permet le succès d’un produit à partir du moment où elle est inscrite au cœur des pratiques des équipes. Mais si la qualité doit nous permettre d’être en maîtrise, qu’est ce que la qualité ? De quelle maîtrise parle-t-on ? Et qui doit être en maîtrise ?
Enjeux des utilisateurs et business
Notre première conviction est que la qualité doit permettre de répondre à des enjeux concrets de l’entreprise et de l’utilisateur, qu'ils soient des besoins ou des risques, avérés ou à anticiper. Ainsi, pour être pertinente, une bonne stratégie produit doit inclure une dimension qualité, par exemple à travers les axes suivants :
- Richesse fonctionnelle et rapidité de mise sur le marché : des fonctionnalités pertinentes et livrées au bon moment assurent une adoption optimale et une compétitivité accrue.
- Design et expérience utilisateur : un design soigné et une expérience utilisateur fluide sont essentiels pour garantir l'engagement et la satisfaction. Une interface intuitive, épurée et cohérente facilite l'adoption des fonctionnalités.
- Performance et disponibilité du produit : des applications réactives et disponibles améliorent l'expérience utilisateur et renforcent la fidélité.
- Numérique responsable : sécurité, accessibilité, inclusivité et éco-conception visant à offrir des solutions durables, accessibles et inclusives, tout en minimisant les risques opérationnels et en favorisant une gestion responsable des ressources numériques.
Lorsque la qualité mise en place s’avère insuffisante par rapport aux attentes du métiers et des clients, elle peut entraîner une insatisfaction des utilisateurs, une perte de clients et, in fine, impacter négativement la rentabilité de l'entreprise. En s’appuyant sur les méthodologies du product management qui placent les utilisateurs au centre du produit qu'ils soient internes ou externes, ces méthodologies permettent d’aborder la dimension qualité sous le prisme de la valeur, de plus cela permet une meilleure priorisation de ces différents enjeux.
Maîtrise de l’équipe de réalisation
Pour les équipes de réalisation, la qualité, au sens large, c’est trouver l’équilibre entre l'évolutivité et la stabilité de produit qui est attendu par les utilisateurs et le business.
La base de la qualité passe par un code propre, bien testé et documenté, ce qui en facilite les évolutions si le code doit être amené à évoluer sans craindre les régressions. Cette maîtrise technique repose sur :
- Gestion proactive de la dette technique : éviter l'accumulation de dettes qui pourraient freiner l'innovation.
- Architecture évolutive et orientée métier : concevoir des produits capables de s'adapter aux évolutions du marché et des technologies
- Pratiques de développement robustes : intégration continue (CI/CD), revues de code, tests automatisés, living documentation, monitoring avancé, voir tout ou parties des pratiques SRE si le besoin est avéré.
Sans ces fondations, chaque modification devient un risque potentiel, ralentissant l'innovation et augmentant les coûts de maintenance.
En savoir plus : Lien vers un article sur la pyramide des tests.
La complexité, à la fois poison et remède pour la maîtrise
La gestion de la complexité est un défi majeur dans le développement logiciel, particulièrement lorsqu’il s’agit de concevoir des produits de plus en plus sophistiqués. Une complexité technique excessive, qu’elle résulte d’une dette technique importante, de dépendances trop marquées entre les équipes, d’une prolifération de fonctionnalités ou d’un manque d’observabilité, entrave la capacité à maîtriser des systèmes.
La complexité doit être intentionnelle et justifiée, et c'est là qu'entre en jeu le principe KISS (Keep It Simple, Stupid) : privilégier des solutions simples et compréhensibles permet de limiter les risques.
Cependant, une complexité insuffisante par rapport aux enjeux du produit peut également nous empêcher d’atteindre nos objectifs, en limitant l’usage des utilisateurs ou en empêchant la mise en place de solutions permettant à l’équipe de mieux maîtriser le système, comme par exemple l’ajout de tests qui complexifie le code mais permet d’avoir un harnais de sécurité pour être plus serein et éviter les régressions.
L’enjeu est donc de trouver le bon équilibre : disposer des outils adéquats pour gérer la complexité, tout en éliminant celle qui est superflue — qu’elle soit liée à la dette technique ou à des fonctionnalités non essentielles — et en maîtrisant celle qui est véritablement nécessaire à l’apport de valeur pour le business et les utilisateurs. Cela exige de s’appuyer non seulement sur l’humain et l’organisation, à travers des méthodes adaptées, mais aussi sur la technique, afin d’atteindre le résultat attendu, mais aussi de confronter notre conception, notre priorisation, notre produit à l’épreuve du réel.
En savoir plus : Domain-Driven Design : Vos atouts pour maîtriser la complexité et notre refcard
L'importance du facteur temps dans la qualité
La qualité est indissociable du temps, les équipes sont donc prises entre deux injonctions :
- apporter de la valeur le plus rapidement possible et donc introduire des changements le plus vite possible dans un système
- introduire trop vite un changement et risquer de se précipiter et d’introduire des erreurs, des problèmes de stabilité, dans le système. Cependant, cela lui permettra également d’introduire un correctif rapidement.
Il est donc important pour une équipe de trouver le bon rythme, qui dépend de chaque équipe, de chaque produit, de chaque contexte et qui va s’ajuster au fil des itérations où l’équipe apprend à travailler ensemble.
Chez OCTO pour répondre à cette problématique, nos équipes, en plus de partager des pratiques similaires qui facilitent l’alignement sur les principes de qualité, s’ appuient sur la méthodologie Accelerate, avec les 4 mesures principales :
- Lead time for changes : délai nécessaire pour déployer une modification en production.
- Deployment frequency : fréquence des déploiements d’une équipe
- Mean time to restore : rapidité de résolution des incidents.
- Change failure rate : proportion de déploiements entraînant des dysfonctionnements.
Intégrer la qualité, dès le départ, nous permet d'accélérer au fur à mesure les cycles de développement tout en maintenant une stabilité adaptée.
En savoir plus : retrouvez nos articles sur les méthodologies Accelerate.
Le Design : un enjeu de la qualité trop souvent oublié
Un design maîtrisé ne se limite pas à l’esthétique, il doit permettre également de :
- de comprendre les problèmes que doit résoudre le produit en plaçant l’utilisateur au centre de la conception.
- d’y apporter des solutions adéquates au fil des itérations en structurant les interactions et optimisant l’ergonomie pour garantir une expérience fluide.
La qualité d’un design repose ainsi sur plusieurs principes :
- User-centric : donner la voix aux utilisateurs via tests, interviews et analytics, s’appuyer sur les heuristiques de Nielsen et mesurer la satisfaction (SUS, NPS…).
- Cohérence et identité : assurer une direction artistique et un tone of voice alignés avec la marque, maintenir une uniformité via un design system et standardiser les composants.
- Ergonomie et accessibilité : concevoir des parcours clairs et inclusifs, intégrer les bonnes pratiques d’accessibilité et minimiser l’impact environnemental en optimisant les performances.
Un design bien pensé permet d'accélérer l’adoption et renforce la fidélité, au service de la qualité produit.
Les pratiques SRE sont au cœur d’une démarche de qualité pour permettre la disponibilité du produit
Afin d’avoir une influence sur les métriques Accelerate, en plus des bonnes pratiques courantes précédemment évoquées (devops, pyramide et couverture de tests, …), nos équipes peuvent s’appuyer sur tout ou partie des pratiques SRE (Site Reliability Engineering).
Le premier pilier du SRE, sans doute le plus important, est l’observabilité : la capacité à surveiller et comprendre l'état du système en temps réel. Sans elle, les autres dimensions ne sont pas possibles. Un système observable est un système qu’il est davantage possible de maîtriser.
Les techniques d’observabilité vont donc chercher à outiller le débogage du système pour explorer le produit, comprendre et diagnostiquer les problèmes d’infrastructure, du produit ou d’interactions/intégrations entre les produits. L’observabilité va aider à réduire le MDT (Mean Down Time) en facilitant l’investigation et la résolution des incidents.
- Réactivité : aptitude à répondre promptement aux incidents, en maximisant le système d’alerting au plus près des personnes en charge des correctifs. (MMTD)
- Diagnosticabilité : facilité à identifier l'origine des problèmes et les comprendre (MTTI)
Le deuxième pilier c’est la réparabilité : la facilité et la rapidité des corrections à apporter (MTTR), qui dépend largement de complexité technique du code et du facteur humain, la capacité de l’équipe à l’appréhender et à livrer rapidement ces correctifs.
Le troisième pilier c’est l’automatisation : réduction des interventions manuelles pour diminuer les erreurs humaines et augmenter l'efficacité.
Un produit fiable est un produit dont l’ensemble de l’équipe de réalisation (PO, Co-Po, Développeurs, Ops…) peut appréhender l’état et les corrections à y apporter facilement surtout en cas de défaillance. Une culture de l’amélioration continue, et en particulier du post-mortem, permet de mettre en place des pratiques adaptées aux enjeux du produit.
Bien sûr, l’observabilité technique d’un produit peut s’étendre à son observabilité métier et business, la technique n’étant in fine qu’un moyen au service des enjeux stratégiques.
Le numérique responsable, enjeu émergent d’une démarche qualité.
Dans le contexte actuel, la capacité à concilier innovation technologique et numérique responsable est devenue essentielle, elle est également de plus en plus contrainte par l’évolution de la réglementation française (RGPD, RGAA, RGESN). Il est devenu impératif pour les équipes de repenser la manière dont les produits sont réalisés, en intégrant des dimensions telles que la sécurité, l'accessibilité, l'inclusivité et l'éco-conception.
La création de produits ne se limite plus à produire de la valeur, elle implique désormais une réflexion sur leur impact environnemental et sociétal, comme la capacité à s'adresser à l’ensemble des utilisateurs, en plus d’être plus éthique elle permet d’atteindre un plus grande nombre de personne, à protéger leurs données, ainsi que la résilience et la soutenabilité du produit dans le temps. En d’autres termes, la qualité de la réalisation d’un produit passe par l’intégration d’une démarche numérique au cœur des pratiques des équipes produit.
Conclusion, la qualité une question autant de méthode que de résultat
La qualité ne se limite pas au résultat final, elle doit nous permettre d’être en maîtrise du code et de son usage : la production ; elle repose également sur la manière dont elle est mise en œuvre. Adopter les bonnes pratiques dès la conception permet d’obtenir un produit maîtrisé et efficace sans surcoût inutile. Une approche qualité réussie implique :
- Des processus adaptés : intégration des tests dès le début, feedback continu, automatisation ciblée.
- Une culture d’équipe alignée : partager une vision commune de la qualité et encourager la collaboration interdisciplinaire.
- Une approche empirique : mesurer, analyser et ajuster en fonction des retours utilisateurs et des performances système.
La qualité n'est pas un objectif en soi, mais un moyen d'obtenir la maîtrise. Une maîtrise qui permet d'être rapide, fiable et compétitif. En intégrant les principes de qualité aux différents niveaux (technique, utilisateur, business), nous créons un produit robuste, évolutif et performant, tout en gardant une approche pragmatique pour éviter la surqualité.
La maîtrise passe donc autant par ce que nous faisons que par ce que nous livrons.