- Travaillez-vous aussi sur du code sans tests ?
- Oui, et c’est même le cas le plus fréquent. On part des tests de caractérisation, qui décrivent le comportement actuel du système même là où il est incorrect, et deviennent le filet de sécurité pour modifier le code sans devoir en comprendre tout de suite chaque détail. Les tests grandissent avec le refactoring, en partant des zones les plus souvent touchées.
- Écrivez-vous du code, ou faites-vous de la formation ?
- Nous écrivons du code. Nous travaillons dans votre repository, en binôme avec vos développeurs, sur de vraies fonctionnalités et de vrais refactorings, et les techniques passent à l’équipe pendant le travail. Quand un moment de formation dédié est utile, nous l’ajoutons au travail sur le code, sans le remplacer.
- Comment le refactoring cohabite-t-il avec le développement des fonctionnalités ?
- Le refactoring se fait à l’intérieur de la livraison, en parallèle du travail sur les fonctionnalités. Avec le refactoring opportuniste, on améliore le code que la prochaine fonctionnalité doit toucher ; avec l’équipe dédiée, on débloque une zone pendant que le reste de l’équipe continue de livrer. Dans les deux cas, la roadmap ne s’arrête pas.
- Travaillez-vous aussi sur les monolithes ?
- Oui. Souvent, il suffit de rendre le monolithe modulaire, avec des frontières claires en son sein. Là où une partie doit vraiment être remplacée, nous utilisons le Strangler Fig : le nouveau code grandit à côté de l’ancien et prend en charge une fonction à la fois, pendant que le monolithe continue de fonctionner.
- Combien de temps dure un parcours de refactoring du code legacy ?
- Les premiers progrès mesurables arrivent après trois à six mois au moins. La durée totale dépend de l’ampleur et de la localisation de la dette, et le plan de sortie, avec ses conditions de clôture, se définit dès le début.
- Par où commence-t-on ?
- Par l’audit de la dette technique, qui produit une cartographie de la dette avec ses priorités et un plan d’action, et indique aussi quelle approche de refactoring est nécessaire. Si votre équipe préfère avancer seule avec ce plan, elle le peut.