Mathieu Desnouveaux

Les aventuriers du code legacy

Cette sketchnote résume la conférence 'Les Aventuriers du Code Legacy' présentée par Mathieu Desnouveaux lors de l'Apéro Web Nancy le 28 février 2023. Elle est organisée comme une carte au trésor avec un scout symbolisant l'amélioration continue du code legacy. Le code legacy est défini comme du code en production non testé, illustré par une affiche humoristique. Les types de code legacy incluent le code exécuté en production, le code rentable, et le code contenant de la valeur métier. Une balance montre l'équilibre nécessaire entre la correction de bugs, l'ajout de fonctionnalités, et la confiance garantie par les tests. Un cycle illustre le paradoxe du legacy : besoin de tests pour changer le code, mais besoin de changer le code pour ajouter des tests. Les raisons pour toucher au code legacy sont montrées avec des icônes de risque, de correction de bugs, et d'ajout de fonctionnalités. La règle des Boy Scouts est représentée par un scout avec un drapeau, symbolisant l'amélioration continue. Les actions recommandées incluent lever les ambiguïtés, réduire la complexité, découpler le code, et se protéger avec des tests et des feature flags. Un robot symbolise l'automatisation avec des outils comme l'analyse statique et Rector en PHP. Des ressources supplémentaires sont recommandées, avec des icônes de livres et des liens vers des katas et des comptes Twitter. La livraison par étapes est illustrée par des icônes de tests, de réécriture de code, et d'ajout de fonctionnalités, avec une flèche indiquant la réduction du scope. La sketchnote souligne l'importance de l'amélioration continue et de l'utilisation d'outils pour faciliter le travail avec le code legacy.

Lors de cette conférence intitulée "Les Aventuriers du Code Legacy", j'ai abordé les défis et les stratégies pour travailler avec du code legacy. J'ai commencé par définir le code legacy comme du code en production qui n'est pas testé, tout en soulignant qu'il a encore de la valeur métier. J'ai ensuite expliqué que toucher au code legacy nécessite une approche réfléchie que se soit pour des mise à jour, de la correction de bugs ou l'ajout de fonctionnalités.

Les raisons pour lesquelles il est risqué de toucher au code legacy ont été discutées, notamment le manque de tests, la complexité et le besoin de confiance dans le comportement du code. J'ai introduit le principe de l'amélioration continue, en utilisant la règle des Boy Scouts pour encourager les développeurs à laisser le code dans un meilleur état qu'ils ne l'ont trouvé.

Les actions concrètes pour travailler avec le code legacy incluent : lever les ambiguïtés, réduire la complexité, découpler le code, se protéger avec des tests, et livrer par étapes. J'ai également mis en avant l'importance de l'automatisation et des outils comme l'analyse statique et Rector en PHP pour faciliter le processus.