Le problème
Notre code chez Xref était rempli de feature flags qui avaient fait leur travail des mois plus tôt. Ils ralentissaient tout le monde et rendaient le code plus difficile à lire, et personne n’était chargé de les supprimer, alors ils s’accumulaient.
L’idée
Plutôt que de demander à chacun de nettoyer un peu quand il en avait le temps, nous avons consacré une journée entière à cette tâche. Le lundi 7 avril 2025, toute l’équipe de développement de nos deux bureaux, dans des fuseaux horaires différents, a pris la journée pour supprimer des flags.
Chacun avait deux rôles. En chasseur de primes, on supprimait les flags qui nous étaient attribués, et en adjoint, on relisait le travail d’un collègue. J’étais l’organisateur, ou shérif, de la journée. Nous y avons mis un thème western pour que ce soit un événement plutôt qu’une corvée.
Le déroulé
Avant la journée, j’ai aidé à préparer la liste des flags avec les dépôts et les fichiers concernés, et chaque dépôt a été confié à un binôme réparti entre les deux bureaux. Nous nous sommes retrouvés le vendredi précédent pour que chacun ait son environnement prêt et ses tests qui tournent.
Le jour J, nous avons commencé par une réunion de lancement, puis travaillé en petites pull requests, nous nous sommes relus rapidement et nous sommes passés à d’autres dépôts quand l’un était terminé. Rien n’est parti en production ce jour-là : le travail est resté sur l’environnement de développement, les testeurs ont vérifié chaque zone pendant les deux ou trois jours suivants, et les développeurs seniors ont déployé après validation de la recette.
Les règles qui sécurisaient le tout
Supprimer un flag ne suffit pas, nous avons donc vérifié le code autour, surtout quand plusieurs flags se trouvaient au même endroit, et mis à jour les tests qui en dépendaient sans le dire.
Nous nous sommes aussi mis d’accord sur une habitude : des pull requests petites et ciblées, idéalement un composant ou un fichier backend chacune, et jamais une pull request que l’on n’aurait pas plaisir à relire soi-même.
Le résultat
Nous avons nettoyé 57 des 66 flags, soit 331 fichiers nettoyés en une seule journée.
Les flags que nous n’avons pas supprimés étaient les plus gros, l’un d’eux touchant plus de 150 fichiers. Nous les avons laissés pour le prochain nettoyage plutôt que de les bâcler.
Ce que j’en retiens
Une corvée dont personne n’a la charge devient faisable quand elle a une date, une échéance et un peu de plaisir. De petites pull requests relues valent mieux qu’une grosse, et un plan qui dit qui relit qui fait tourner la journée presque tout seul.