ADR : la dette documentaire que personne ne compte
Pourquoi un répertoire d'ADR se périme sans que personne le voie, ce qu'une décision périmée coûte quand un humain ou un agent l'applique, et le format qui rend le remplacement moins cher que l'oubli.
Par Elias Varen7 min de lectureMembres
Un ADR périmé est pire qu'une absence d'ADR. Sans document, le nouveau venu lit le code et pose la question. Avec un document marqué « accepté », il ne pose pas la question, il applique. Et le document a sur le code un avantage injuste, puisqu'il explique ses raisons et donc convainc.
L'ADR 12, par exemple, dit que les read models du back-office sont mis à jour dans la transaction de la commande, pour que l'écran soit toujours à jour. Dix-huit mois plus tard, les projections sont passées en asynchrone parce que les rebuilds bloquaient les écritures ; la décision a été prise dans une discussion, le code a suivi, l'ADR 12 n'a pas bougé. Un développeur arrivé le mois dernier ajoute un read model, cherche la règle, la trouve, et écrit une projection synchrone. La revue de code la laisse passer, puisqu'elle est conforme à l'ADR. Avec un agent de code à la place du développeur, à qui l'on a donné le répertoire docs/adr comme contexte, la même erreur se produit en quatre minutes, sans hésitation et dans dix fichiers.
On compte la dette du code. Celle des décisions écrites ne figure nulle part, et elle se paie de la même façon, en intérêts, à chaque lecture.
Pourquoi un ADR se périme sans bruit
La convention veut qu'un ADR ne se modifie pas ; on en écrit un nouveau qui le remplace. La règle est bonne, elle conserve l'historique des raisons, mais elle a un effet de bord. Remplacer coûte plus cher que modifier, donc on ne remplace pas. Changer le code prend une PR, alors que changer la décision demande d'écrire un document, d'en retrouver un ancien et de les relier. Rien n'échoue si on ne le fait pas.
Tout le mécanisme est là : aucun déclencheur ne relie un changement de code à l'ADR qu'il contredit. Un test cassé se voit. Un ADR contredit reste vert.
À lire ensuite
Toute la rubrique ArchitectureArchitecture
Réécrire : les quatre cas où c'est la bonne décision
« Ne jamais réécrire » est une règle utile et fausse. Les quatre situations où la réécriture bat la migration progressive, le calcul qui les départage, et les conditions sans lesquelles même une réécriture justifiée échoue.
7 minMembres
Architecture
Le comité d'architecture, ou comment ralentir sans protéger
Pourquoi une instance d'approbation préalable ajoute des semaines sans retirer de risque, quels besoins réels elle recouvre, et les mécanismes qui y répondent mieux, avec leurs propres défaillances.
8 minMembres
Architecture
Choisir l'ennui : le budget d'innovation d'une équipe
Une technologie nouvelle coûte des jours d'exploitation chaque année, qu'on s'en serve beaucoup ou peu. Comment chiffrer ce coût, compter les jetons qu'une équipe peut réellement dépenser, et décider où les placer.
7 minLecture libre