L'Invariant

Récits du grand silence

La Cascade de Refactorisation

Tout commença par une observation exacte. Pita remarqua que trois sous-systèmes distincts implémentaient chacun une variante de la même opération d'agrégation par fenêtre glissante, et que les trois variantes avaient divergé au cours de quatre années de maintenance indépendante. Chacune était correcte dans son propre domaine. Aucune n'était fausse. Mais maintenir trois implémentations du même concept représentait un travail que l'équipage ne pouvait pas se permettre quand l'équipage comptait vingt-trois personnes gérant un vaisseau avec sept cents combinateurs actifs.

Elle proposa une refactorisation : un unique combinateur canonique de fenêtre glissante, enregistré dans le dépôt, dont tous les trois sous-systèmes dériveraient. La proposition fut approuvée lors de la réunion technique de l'équipage en quinze minutes. La refactorisation prit trois semaines. Non pas parce que l'implémentation canonique était difficile à écrire — elle ne l'était pas — mais parce que modifier un combinateur porteur sur un vaisseau en opération exigeait d'exécuter la suite complète de vérifications contre chaque consommateur en aval avant de procéder à l'échange de référence.

La cascade était la suivante : modifier l'implémentation canonique modifiait son hachage. Modifier son hachage modifiait le lien de dérivation dans chaque combinateur qui le référençait. Modifier ces liens de dérivation modifiait leurs hachages. L'équipage devait tracer l'intégralité de l'arbre de dépendances, mettre à jour chaque manifeste référençant les anciens hachages, exécuter les vérifications à chaque étape, et vérifier que le comportement était identique avant de retirer les anciennes références de l'utilisation active.

Ils ne supprimèrent rien. Chaque ancien combinateur demeura dans le dépôt, adressé par son hachage original, sa lignée intacte. Ce qui changea, c'est vers quel hachage les manifestes actifs pointaient. Les systèmes en cours d'exécution du navire chargèrent les nouveaux combinateurs au prochain cycle de démarrage. La surveillance de Sigma enregistra la transition sans incident.

À la fin de la refactorisation, Pita rédigea un compte rendu rétrospectif. Le constat clé : la refactorisation avait révélé quatre autres endroits où le même motif existait sous une forme légèrement différente. Elle les ajouta à une liste intitulée « travaux futurs ». La liste était dans le dépôt. Les travaux futurs furent accomplis, progressivement, au cours des dix-huit mois suivants. Personne ne les appela gestion de la dette technique. Ils appelèrent ça maintenir la cohérence du dépôt.