Pour la 13e édition de la JFTL (Journée Française des Tests Logiciels), organisée le 14 septembre 2021, le CFTL (Comité Français des Tests Logiciels) avait invité Yves Caseau, DSI du groupe Michelin et auteur de plusieurs ouvrages sur le Lean management et l'urbanisation des systèmes d'information, dont « L'approche Lean pour la transformation digitale », paru en juillet 2020. Lors de son intervention, celui-ci a expliqué comment les principes issus du Lean et d'autres approches complémentaires aidaient à répondre aux enjeux de la transformation digitale, évoquant également la place des tests dans celle-ci.

« Le monde digital est un monde itératif, au niveau des outils comme des pratiques, et dans lequel le client joue un rôle particulier. Le niveau d'excellence attendu en termes d'expérience a changé », a rappelé Yves Caseau en introduction. Les organisations doivent produire du logiciel à un rythme accéléré. Pour y parvenir au niveau d'excellence requis, le jeu ne peut qu'être collectif : « Il faut s'appuyer sur l'écosystème, sur l'open source », a souligné le DSI. Il a ensuite développé la notion de systèmes d'information exponentiels, une idée inspirée du livre Exponential Organizations, de Salim Ismail. « Dans le monde digital, c'est la frontière qui compte, c'est là qu'on crée de la valeur. » Cela suppose un changement d'organisation, afin de s'adapter en permanence à son environnement, une capacité qu'Yves Caseau qualifie « d'homéostasie digitale ». Il faut également savoir accueillir l'innovation. Pour profiter de technologies comme l'intelligence artificielle et le machine learning, le système d'information doit être organisé de façon à faciliter la réalisation de POC et l'innovation à l'échelle, avec une architecture qui permette une adaptation constante. Dans ce monde, « il est dur de faire des plateformes bien conçues dès le départ », prévient le DSI. Reprenant une idée phare d'Anti-fragile, livre de Nassim Nicholas Taleb, il estime préférable « de bien construire son équipe, afin de grossir par apprentissage ».

L'automatisation au service de l'excellence

Dans cette transformation digitale, les entreprises ont besoin d'aller du client au code - l'une des idées du Lean Startup, mais aussi du code au client, ce qui passe par le processus de delivery. « Dans ce contexte, comment être excellent pour faire un continuous delivery au client avec le bon niveau de qualité ? L'une des clefs est d'avoir une équipe commune et un produit commun », a affirmé Yves Caseau. Celui-ci a ensuite présenté le concept de Lean Software Factories, un moyen de mettre en oeuvre cette excellence dans le développement de logiciels. « Depuis dix ans, j'utilise le terme d'usines logicielles, qui de prime abord peut sembler peu attrayant si on reste sur l'image des usines du siècle passé. Pourquoi ce choix ? D'abord, car le terme met l'accent sur l'importance de l'automatisation. Nous devons produire beaucoup plus, beaucoup plus vite et en améliorant la qualité : il faut de l'automatisation, sinon on n'y arrive pas. Ensuite, quand on parle de factories, il s'agit de micro-factories, de petite taille, proches des utilisateurs », a expliqué Yves Caseau, pour qui le noyau d'une Lean Software Factory est l'équipe agile.

Si les pratiques agiles et le développement incrémental sont essentiels, chaque itération augmente toutefois la dette d'intégration. « Cette dette devenait trop lourde, d'où le développement de l'approche CI/CD (continuous integration / continuous delivery), qui part du principe que ce qui est difficile, il faut le faire plus fréquemment. Avec la CI/CD, ce que l'on faisait auparavant une fois par mois, désormais on va le faire tous les jours, même si au départ, c'est difficile de construire les outils », a expliqué Yves Caseau. La CI/CD occupe une place centrale dans les structures DevOps et dans la Lean Software Factory. « L'un des conseils de Jez Humble pour la CI/CD est de s'assurer que tout ce que l'on fait est reproductible, ce qui nécessite d'être merveilleusement outillé. Il faut donc investir dans la gestion de configuration, dans les outils d'intégration continue », a souligné Yves Caseau.

Nettoyer la dette technique

Un autre concept important des Lean Software Factories est le Lean Thinking, qui met en évidence « l'importance de voir les systèmes que l'on fabrique ». Dans un monde VUCA (volatil, incertain, complexe et ambigu), il y a selon Yves Caseau un changement radical d'équilibre entre la pensée et l'action par rapport à l'Ancien monde, où le design précédait la réalisation. « Dans ce monde, on co-construit l'architecture et le design, dans une démarche de 'continuous architecture' », a décrit le DSI. L'architecte est appelé à la demande et il devient aussi un champion de certains sujets, comme la dette technique : il s'assure que celle-ci remonte dans les sprints et backlogs, afin de nettoyer le code. « Les systèmes intelligents ne sont plus conçus, ils sont cultivés », a résumé Yves Caseau.

La transformation digitale a aussi remis au goût du jour le Software Craftmanship. Sur ce sujet, Yves Caseau a cité l'agiliste français Arnaud Lemaire, selon qui l'agilité ne se résume pas à travailler avec des Post-its, mais est une propriété du code. « Si l'entreprise construit une architecture rigide, elle ne sera pas très agile », a illustré Yves Caseau. « On en revient aujourd'hui à l'élégance du code : dans un monde où le code change sans arrêt, et où ces changements créent de la valeur métier, sa maintenance n'est pas quelque chose que l'on sous-traite. La qualité du code est essentielle. » Tout ce qui permet de mettre son code en valeur encourage cette quête d'élégance et de qualité : les revues de code, les hackathons, le partage sur des plateformes comme Git Hub ou Stack Overflow... « Le nombre de réutilisations de votre code est une métrique d'élégance », pointe le DSI de Michelin à propos de ces dernières. Cette notion de qualité se retrouve également dans les 5 s du Lean, notamment à travers la standardisation (seikeitsu) et le nettoyage (seiso), afin de « polir son code ».

Maintenance prédictive du code

Les tests sont un autre pilier essentiel pour obtenir le niveau de qualité attendu. À la fin de sa présentation, Yves Caseau a évoqué des tendances qui lui semblent importantes dans ce domaine. Parmi celles-ci figurent notamment l'automatisation croissante, excepté sur quelques aspects difficiles à tester de façon incrémentale dans les pipelines CI/CD, comme les tests de capacité ou les validations par les utilisateurs (user acceptance tests). Il a également évoqué l'émergence d'une pratique nouvelle, le test continu postdéploiement, autrement dit l'usage d'outils analytiques pour détecter les erreurs avant les utilisateurs. « En monitorant les logs, on peut faire de la maintenance prédictive du code. En s'appuyant sur AIOps, sur le machine learning, il devient possible de repérer à l'avance des problèmes. » Un autre pan en plein essor est le product discovery et le testing en continu des interfaces, pour explorer les besoins des utilisateurs et la manière dont ils se servent des produits, par exemple à travers les pratiques d'A/B testing. Pour Yves Caseau, certaines pratiques agiles, comme le management visuel, ont permis de mettre en évidence l'importance de la voix du client. « Celle-ci est difficile à amener sur les plateaux de développement, mais quand le client est présent sur le lieu de production, c'est un réel unificateur. C'est peut-être plus important encore dans les grandes entreprises que dans les startups, car les premières sont souvent assez silotées, avec des rôles plus figés », a-t-il pointé.

Toujours dans le domaine des tests, trois évolutions ont particulièrement marqué Yves Caseau au cours des dernières années. D'abord, la génération et la randomisation des tests. « Ce n'est pas une technique universelle, elle fonctionne quand l'entreprise possède une certaine structure métier, mais quand c'est possible cela aide en cas de bug compliqué, car cela permet de savoir précisément comment le problème a été généré », a pointé le DSI. Il a également évoqué la mise en place de collections de tests antifragiles, couplées avec les analyses post-mortem afin d'apprendre de ses erreurs. « C'est une pratique ancienne qui revient. Faire l'effort de savoir à quel moment dans le cycle de développement un bug aurait dû être détecté permet de s'améliorer. » Enfin, Yves Caseau a mentionné les tests de performance et modélisations de capacités, qu'il présente comme « une approche de maintenance prédictive appliquée à la production informatique. Nous le faisons chez Michelin et cela donne d'excellents résultats », a-t-il confié.