Logo

dev-resources.site

for different kinds of informations.

Architecture Decision Record : Documenter le pourquoi, pas juste le comment

Published at
12/13/2024
Categories
documentation
architecture
adr
adventoftech2024
Author
agaches
Author
7 person written this
agaches
open
Architecture Decision Record : Documenter le pourquoi, pas juste le comment

Cet article fait suite à mon précédent article :
https://dev.to/onepoint/documentation-chaotique-diataxis-a-la-rescousse--3e9o

Quand on parle de ce dinosaure de DAT, il y a malgré tout un sujet à la mode : les Architecture Decision Records (ADR).

Créé par Michael Nygard en 2011, cette pratique gagne en popularité depuis quelques années. En 2024, nous pouvons en faire un passage obligé de la documentation technique d'architecture, surtout si on veut moderniser le DAT.

Dans cet article, je vous propose un tour d'horizon des ADR et de leurs bénéfices.

Sommaire :

DĂ©finition d'une Architecture Decision Record

Une ADR est à la fois une réunion et son compte-rendu portant sur une décision d'architecture.

Une ADR vise à réunir tous les sachants techniques concernés pour prendre une décision d'architecture collégiale sur une problématique et d'en identifier les implications.

Chaque participant peut exprimer librement sa vision et son point de vue.
La décision finale doit être collégiale et unanime.

Structure d'une ADR

En-tĂŞte

  • Titre (de l'ADR)
  • Date de la dĂ©cision
  • Statut (proposĂ©, acceptĂ©, rejetĂ©, remplacĂ©, dĂ©prĂ©ciĂ©, etc.)
  • Participants Ă  la dĂ©cision
  • (Optionnel) Identifiant unique pour rĂ©fĂ©rence
  • (Optionnel) PortĂ©e de l'ADR (solution, application, inter-applicatif, domaine, entreprise)

L'entête doit permettre d'identifier rapidement la portée, le statut, la date et les participants de l'ADR.

Contexte

  • Situation actuelle
  • ProblĂ©matiques Ă  rĂ©soudre
  • (Optionnel) Contraintes (mĂ©tier et techniques)
  • (Optionnel) Exigences (normes, sĂ©curitĂ©, mĂ©tier, technique, standards)
  • (Optionnel) Hypothèses

Le contexte doit exposer de manière simple la question/problématique à laquelle l'ADR doit apporter une réponse.
Dans l'idéal, on évitera de mêler plusieurs problématiques au sein d'une même ADR.

Solutions envisagées

  • Description des scĂ©narios possibles
  • (Optionnel) Avantages et inconvĂ©nients de chaque scĂ©nario

Les solutions et scénarios techniques envisagés doivent être clairement détaillés avec leurs avantages et inconvénients (technique, coût, qualité, délai, ...)

DĂ©cision

  • Choix du scĂ©nario retenu
  • Justification du choix
  • (Optionnel) Motifs de rejet des autres scĂ©narios

La décision doit être justifiée. Idéalement, on indique ET les motifs du choix de scénario ET les motifs de rejets des autres scénarios

Implications

  • Impacts identifiĂ©s
  • Risques anticipĂ©s
  • RĂ©fĂ©rences aux ADR connexes (notamment celles remplacĂ©es)
  • (Optionnel) RĂ©fĂ©rences documentaires
    • (Optionnel) Cadrage projet (plan d'action, planning, ressources, charges)
    • (Optionnel) Critères de succès (mĂ©triques de suivi, indicateurs de performance)

La structure guide les échanges et sert de livrable final pour documenter la décision.

Une ADR possède un statut et suit un cycle de vie documentaire.
Elle reste valide tant que :

  • La solution associĂ©e existe
  • elle n'est pas remplacĂ©e par une nouvelle ADR

On fait donc référence dans les nouvelles ADR aux ADR qui sont remplacées

Modèles disponibles

J'ai adapté en français des templates anglais que j'appréciais :
ADR simple
ADR avancé
ADR exhaustif

C'est avant tout pour vous montrer des exemples de formes d'ADR.
Vous pouvez librement vous en inspirer selon vos besoins.

Bénéfices des ADR

Transparence et traçabilité

Les ADR, en tant que comptes-rendus, assurent :

  • La transparence des dĂ©cisions prises
  • La traçabilitĂ© des choix effectuĂ©s
  • Un meilleur suivi de la dette technique associĂ©e

Fini les justifications du type "c'est historique" ou "les personnes concernées ont quitté l'entreprise"

Facilitation de la prise de décision

Les ADR :

  • Structurent les discussions
  • Permettent des dĂ©cisions Ă©clairĂ©es
  • Documentent les implications des choix (dettes, contraintes)

La méthode demande d'examiner les différents choix et de justifier
pour le choix fait, quelles sont les raisons qui ont amené à ce choix
pour les autres, les raisons de leur non-sélection

Amélioration de la maintenabilité

Les ADR permettent :

  • La conservation de l'historique dĂ©cisionnel
  • Une meilleure comprĂ©hension du système et de son Ă©volution
  • Une gestion facilitĂ©e de la dette technique

Cette approche implique une gestion documentaire qui permet de retrouver toutes les ADR et de les trier par ordre chronologique.

Intégration simplifiée des nouveaux collaborateurs

Les nouveaux membres comprennent mieux l'historique des choix architecturaux du système.

Cette approche vous retire la difficulté de répondre à la question "Mais pourquoi vous avez fait comme ça ?"

Prise de décision apaisée

Les décisions d'architecture, quand elles sont documentées, se dispersent généralement entre :

  • Les comptes-rendus de comitĂ©s (COPRO/COPIL/COSTRAT)
  • Le DAT qui tente de couvrir tous les aspects (qui, quoi, comment, pourquoi)

Cette dispersion peut créer des situations complexes, comme l'illustre cette expérience personnelle :
J'accompagnais une équipe ayant choisi une migration Cloud type "lift and shift", sans services managés.
Quelques mois plus tard, l'apparition d'un nouveau service managé a créé des doutes dans l'équipe :

  • Devons-nous changer notre approche ?
  • Est-ce trop tard ?
  • Pourquoi ne l'a-t-on pas anticipĂ© ?
  • Quel serait le coĂ»t d'un changement de direction alors qu'on approche de la fin ?

L'organisation d'une ADR nous a permis de :

  • RĂ©Ă©valuer les diffĂ©rents scĂ©narios possibles
  • IntĂ©grer les nouvelles informations sur le service managĂ©
  • Comparer objectivement les coĂ»ts et bĂ©nĂ©fices de chaque option
  • Documenter clairement le raisonnement derrière notre choix final

Ce cadre structuré a permis à l'équipe de prendre une décision éclairée, basée sur des critères objectifs plutôt que sur des impressions ou des craintes.
Faire cette ADR a transformé une situation stressante pour l'équipe en un processus de décision constructif et argumenté.

Voici l'exemple de cette ADR anonymisée :
ADR migration lift and shift

Prenons un autre exemple très parlant, une équipe face à un dilemme :
D'un côté, le standard de l'entreprise à respecter.

De l'autre, une date de mise en production incompatible avec la disponibilité de ce standard.

L'ADR a structuré la décision en deux temps :

  1. Déployer d'abord une solution non-standard pour respecter les délais
  2. Planifier ensuite une migration vers le standard

La dette technique a été précisée : un écart temporaire aux standards, clairement documenté et une remédiation planifiée.

ADR : Le chaînon manquant

Les ADR sont une réponse au besoin de documentation des décisions d'architecture. Leur adoption améliore la qualité et la pérennité des solutions techniques et de leurs dettes techniques.

Elles peuvent être un vrai levier de décision entre priorité métier et obsolescence technique.

Leur dimension temporelle nous permet aussi de :

  • Mieux Comprendre le contexte de l'Ă©poque (comme "Ă  ce moment-lĂ , l'outil Z n'Ă©tait pas encore assez dĂ©veloppĂ©")
  • Evaluer si ces dĂ©cisions sont toujours pertinentes aujourd'hui
  • Éviter de juger les choix passĂ©s avec nos connaissances actuelles

Le plus gros bénéfice selon moi est de permettre d'avoir des discussions plus constructives et apaisées :
Au lieu de critiquer les anciens choix ou les priorités, on peut avoir des échanges plus sereins et objectifs, même sur des sujets difficiles.

La priorité peut être faite au métier en échange d'un engagement de remédiation de la dette technique.

Conclusion

En commençant à utiliser les ADR, j'ai compris que leur usage apportait un autre bénéfice pour le DAT.

En séparant la documentation des décisions, le DAT n'a plus à porter la charge de leur justification :

  • Les dĂ©cisions gagnent en visibilitĂ©.
  • Le DAT perd du poids et gagne en lisibilitĂ©

Vous comprenez à présent pourquoi je voulais vous parler d'ADR dans le cadre de la modernisation du DAT.

Cet article fait partie du "Advent of Tech 2024 Onepoint", une série d'articles tech publiés par Onepoint pour patienter jusqu'à Noël.
Voir tous les articles du Advent of Tech 2024

Merci pour votre lecture.

Featured ones: