DEV Community

Cover image for Moderniser son Dossier d'Architecture Technique : Guide pratique pour 2024
Arnaud Gaches for Onepoint

Posted on

Moderniser son Dossier d'Architecture Technique : Guide pratique pour 2024

🎁 Enfin ce guide tant attendu !

Mes articles précédents vous ont démontré que :

  • Le DAT est un dinosaure numĂ©rique
  • Les mĂȘmes erreurs se rĂ©pĂštent dans les DAT
  • Diataxis peut structurer une documentation dĂ©sorganisĂ©e
  • Les Architecture Decision Records (ADR) complĂštent efficacement le DAT

J'imagine que vous avez déjà des idées qui commencent à germer, et je vais vous accompagner dans cette réflexion.

J'espĂšre ĂȘtre parvenu Ă  vous faire prendre conscience que la modernisation du DAT ne peut se faire de maniĂšre isolĂ©e.
Elle s'inscrit dans une démarche plus large de modernisation de toute notre documentation technique.

Cette prise de conscience est importante : moderniser son DAT, c'est d'abord moderniser son organisation et sa documentation.
C'est pour cela qu'avant toute action concrÚte, il est essentiel de poser les bases d'une transformation réussie.

Vous connaissez l'histoire des cordonniers mal chaussés.

Sommaire :

1. Poser les bases : L'ADR fondatrice

La premiÚre étape consiste à créer une ADR fondamentale pour votre transformation :

ADR : DĂ©finir une organisation documentaire

Rassemblez toutes les parties prenantes pour définir collectivement :

  • L'Ă©tat actuel de la documentation
  • Les problĂšmes Ă  rĂ©soudre
  • Les besoins des diffĂ©rentes Ă©quipes
  • Les contraintes techniques et organisationnelles

Puis choisir collectivement parmis les scénarios possibles :

  • La structure hiĂ©rarchique de la documentation
  • Les outils et technologies Ă  utiliser
  • Les rĂŽles et responsabilitĂ©s de chaque Ă©quipe
  • Le processus de mise Ă  jour et de validation

2. Mettre en place une gouvernance documentaire

Planification des revues

La documentation doit redevenir une activité réguliÚre :

  • Revue (mensuelle?) des guides et procĂ©dures
  • Revue *(trimestrielle?) *de la documentation de rĂ©fĂ©rence
  • CrĂ©ation d'ADR pour chaque dĂ©cision majeure
  • Mise Ă  jour des schĂ©mas lors des changements d'architecture

La documentation se met Ă  jour en mĂȘme temps que les sujets techniques
La charge des actions techniques inclue la documentation (ne la sous-estimez pas)

Recommandation : En contexte agile, intégrez la revue documentaire dans la préparation des PI Planning.

Gestion de la dette documentaire

Traitez la documentation comme vous traitez le code code :

  • CrĂ©ez des tickets pour la dette documentaire
  • Lors des incidents, indiquer aussi la dette documentaire
  • Priorisez les mises Ă  jour nĂ©cessaires
  • Planifiez les tĂąches de documentation dans les sprints
  • Mesurez la progression

3. Mise en Ɠuvre

La prĂ©paration peut ĂȘtre complexe.
La mise en oeuvre, elle, reste simple.

MĂ©thode de mise en oeuvre

Pour chaque solution/socle technique dont vous voulez revoir la documentation :

  1. Inventorier la documentation existante
  2. Classifier le contenu selon Diataxis :
    • Tutoriels
    • Guides
    • RĂ©fĂ©rences
    • Concepts
  3. Identifier la cible pour le contenu dans la structure documentaire
  4. Identifier la dette documentaire
  5. Planifier les actions nécessaires (responsable, périmÚtre)
  6. RĂ©aliser les actions de mise Ă  jour

Migration progressive

La migration doit ĂȘtre progressive et planifiĂ©e :

  1. Commencer par les documents les plus consultés
  2. Migrer en parallĂšle de l'existant
  3. Valider avec les utilisateurs
  4. Mettre à jour les références

Conseil : Demandez aux nouveaux membres de l'équipe de relire et critiquer la documentation. Leur regard neuf est précieux.

4. Les aides pour cette migration

Bonnes pratiques et piĂšges Ă  Ă©viter

✅ Bonnes pratiques

  • Former les Ă©quipes aux nouveaux outils
  • Maintenir un glossaire commun
  • VĂ©rifier rĂ©guliĂšrement les liens
  • Documenter au fil de l'eau
  • Communiquer sur les changements

❌ PiĂšges Ă  Ă©viter

  • Vouloir tout migrer d'un coup
  • NĂ©gliger la formation des Ă©quipes
  • Oublier de vĂ©rifier l'accessibilitĂ©

Outillage : Documentation-as-code

Le concept est simple :

S'appuyer sur des langages à faible balisage (Markdown, AsciiDoc) pour gérer le contenu riche comme du code et pouvoir y appliquer toutes les bonnes pratiques que l'on connait (versioning, publication, revue, merge, ...)

Pour une présentation détaillée de la Documentation-as-code, consultez la série d'articles de Nicolas Giraud :
https://dev.to/onepoint/Documentation-as-code-petit-guide-illustre-pour-mieux-se-lancer-2m2k

Cette approche permet de :

  1. Partager et intégrer des documents dans des structures complexes
  2. Documenter en parallÚle du développement (code applicatif ou infrastructure)
  3. Versionner et publier selon des stratégies documentaires élaborées
  4. Propager automatiquement les mises à jour grùce aux références

Point clé : La documentation suit les évolutions du code.

Les documents peuvent ĂȘtre publiĂ©s ou intĂ©grĂ©s pour gĂ©nĂ©rer de nouvelles documentations.

Documentation des Flux Ă©changes inter-applicatifs

Identifier la solution ou le socle responsable de ces Ă©changes.

C'est son Ă©quipe qui portera la documentation de ces Ă©changes.

Les autres pourront faire référence à cette documentation.

Exemples de structures documentaires

Diataxis propose quatre types de documentation fondamentaux.
Cette structure peut servir de base, mais doit s'adapter aux besoins des utilisateurs.

L'organisation doit rester logique pour les utilisateurs, qu'elle soit simple ou complexe.

Les fonctionnalités de documentation collaborative (tags, labels) permettent des vues multiples.

Structure simple alignée sur Diataxis

Exemple de structure documentaire simple

📁 Documentation technique
├── 📁 Concepts et ADR
│   ├── Vue d'ensemble
│   └── DĂ©cisions d'architecture
├── 📁 RĂ©fĂ©rences techniques
│   ├── Architecture fonctionnelle
│   ├── Architecture applicative
│   ├── Architecture technique
│   └── SchĂ©mas et descriptions
├── 📁 Guides
│   ├── Installation
│   └── Exploitation
└── 📁 Onboarding
    └── Premiers pas
Enter fullscreen mode Exit fullscreen mode

Lien vers exemple concret

Structure complexe basé sur un modÚle de dossier applicatif

Pour des besoins plus spécifiques, le modÚle de documentation applicatif propose une structure plus élaborée, basée sur différentes vues :

📁 Documentation
├── 📁 Vue MĂ©tier
│   ├── 🎓 Tutoriels
│   │   └── DĂ©couverte des processus mĂ©tier
│   ├── 📚 RĂ©fĂ©rence
│   │   ├── Exigences mĂ©tier dĂ©taillĂ©es
│   │   ├── SLAs et niveaux de service
│   │   └── VolumĂ©trie attendue
│   ├── 📖 Guides
│   │   └── Comment dĂ©finir de nouvelles exigences
│   └── 💡 Concepts
│       └── Principes mĂ©tier structurants
│
├── 📁 Vue Applicative
│   ├── 🎓 Tutoriels
│   │   └── Premier dĂ©veloppement sur l'application
│   ├── 📚 RĂ©fĂ©rence
│   │   ├── Architecture technique dĂ©taillĂ©e
│   │   ├── Interfaces et APIs
│   │   └── Composants logiciels
│   ├── 📖 Guides
│   │   ├── Comment ajouter un nouveau composant
│   │   └── Comment modifier une interface
│   └── 💡 Concepts
│       └── Patterns d'architecture utilisĂ©s
│
├── 📁 Vue Infrastructure
│   ├── 🎓 Tutoriels
│   │   ├── Premier dĂ©ploiement
│   │   ├── Configuration initiale supervision
│   │   └── Mise en place sauvegarde
│   ├── 📚 RĂ©fĂ©rence
│   │   ├── Composants et versions
│   │   ├── Matrice des flux techniques
│   │   ├── SpĂ©cifications timeouts
│   │   ├── CaractĂ©ristiques environnements
│   │   └── Configuration supervision
│   ├── 📖 Guides
│   │   ├── DĂ©marrage/ArrĂȘt des composants
│   │   ├── Sauvegarde/Restauration
│   │   ├── Mise en maintenance
│   │   ├── Gestion des logs
│   │   └── DĂ©ploiement nouvelle version
│   └── 💡 Concepts
│       ├── ModĂšle de disponibilitĂ©
│       ├── Principes de rĂ©silience
│       ├── StratĂ©gie de sauvegarde
│       └── Architecture supervision
│
└── 📁 Vue Transverse
    ├── 🎓 Tutoriels
    │   ├── Mise en place sĂ©curitĂ©
    │   └── Configuration performance
    ├── 📚 RĂ©fĂ©rence
    │   ├── Exigences sĂ©curitĂ©
    │   ├── MĂ©triques performance
    │   └── Standards techniques
    ├── 📖 Guides
    │   ├── Audit sĂ©curitĂ©
    │   ├── Optimisation performance
    │   └── Gestion charge
    └── 💡 Concepts
        ├── Principes de sĂ©curitĂ©
        ├── StratĂ©gie performance
        └── Écoconception
Enter fullscreen mode Exit fullscreen mode

Vous avez ici le meilleur des 2 mondes. Le modÚle DA et ses vues, redécoupé dans une structure Diataxis et qui évite des documents trop longs.

A RETENIR :
DiĂĄtaxis n'est pas un schĂ©ma de 4 boites dans lequel la documentation doit ĂȘtre placĂ©e.

Diataxis n'impose pas une structure rigide Ă  quatre compartiments.
Il définit quatre types de documentation à organiser selon les besoins.

5. Mesures et retours d'expérience

Mesurer le succĂšs de la transformation

Définissez des indicateurs clés :

  • MĂ©triques quantitatives

    • Temps moyen de recherche d'information
    • Taux de consultation de la documentation
    • Nombre de mises Ă  jour par pĂ©riode
    • DĂ©lai entre un changement technique et sa documentation
  • MĂ©triques qualitatives

    • Satisfaction des Ă©quipes (sondages rĂ©guliers)
    • QualitĂ© des retours des nouveaux arrivants
    • RĂ©duction des questions rĂ©currentes
    • Autonomie accrue des Ă©quipes

Conseil : Mesurez une baseline avant la transformation pour mesurer la progression de l'amélioration

Exemple de Planning détaillé de migration sur 6 mois

Mois 1-2 : Préparation

  • Semaine 1-2 : ADR fondatrices
  • Semaine 3-4 : Audit documentation existante
  • Semaine 5-6 : Formation des Ă©quipes
  • Semaine 7-8 : Mise en place des outils

Mois 3-4 : Migration pilote

  • Documentation d'un composant critique
  • Tests des processus de mise Ă  jour
  • Retours d'expĂ©rience et ajustements
  • Nouvelles ADR selon dĂ©cisions

Mois 5-6 : Déploiement général

  • Migration progressive des autres composants
  • Mise en place des revues rĂ©guliĂšres
  • Formation continue des Ă©quipes

Conseil : Adaptez ce planning selon votre contexte et vos contraintes

Exemple concret de transformation réussie

Prenons l'exemple d'une équipe gérant une application métier avec un éditeur :

Avant

  • 2 versions de DAT monolithique Word de 200 pages (un Ă©diteur, un client) stockĂ©s chacun dans un endroit diffĂ©rent
  • Un DEX monolithique Word stockĂ© dans un autre endroit
  • Pas de schĂ©ma ni description de l'architecture technique
  • Pas de documentation d'installation

AprĂšs

  • Documentation structurĂ©e selon Diataxis
  • Un seul point d'entrĂ©e
  • SchĂ©mas globaux en draw.io
  • SchĂ©mas spĂ©cifiques gĂ©nĂ©rĂ©s depuis le code infrastructure (markdown mermaid)
  • ADR pour chaque dĂ©cision majeure
  • RĂ©fĂ©rences entre documentation et Infra-as-code

Bénéfices constatés

  • Revue d'architecture validĂ©e simplement (infrastructure et sĂ©curitĂ©)
  • Retour positifs sur documentation claire et complĂšte
  • AmĂ©lioration des actions techniques sur la plateforme (rĂ©fĂ©rence aux procĂ©dures plus facile)
  • Documentation complĂšte du pĂ©rimĂštre technique et applicatif
  • Les autres Ă©quipes profitent de la documentation sur l'installation technique des composants pour prendre exemple dessus (ce sont les premiers rĂ©sultats dans l'outil de gestion documentaire interne)

Défauts constatés

  • Encore trĂšs loin d'ĂȘtre parfait
  • Plusieurs documents dont les schĂ©mas d'architecture ont Ă©tĂ© stockĂ©s sur du Google Drive derriĂšre : pas d'accĂšs pour les autres Ă©quipes. (ça va ĂȘtre corrigĂ©)

Que devient le DAT ?

Le DAT traditionnel se fond dans la documentation générale. Trois approches sont possibles si on vous le demande :

  1. Fournir les liens vers les références techniques
  2. Générer une documentation à partir des éléments existants
  3. Extraire les sections pertinentes du systĂšme documentaire

Conclusion

Cela va faire cliché mais la modernisation du DAT est un voyage, pas une destination. Elle demande :

  • Une vision claire de l'objectif
  • L'implication de toutes les Ă©quipes
  • Une approche progressive et structurĂ©e
  • Un suivi rĂ©gulier

L'important n'est pas d'avoir une documentation parfaite, mais une documentation vivante et utile qui Ă©volue avec vos besoins.

J'espĂšre avoir :

  • ÉclairĂ© votre comprĂ©hension du DAT
  • RĂ©conciliĂ© les approches modernes avec les besoins documentaires
  • Fourni des rĂ©ponses pratiques pour vos transformations

De mon cÎté, je réfléchis déjà à l'impact des LLM sur l'évolution de la documentation technique en 2025.
Pensez-y : Qui mieux qu'un LLM (une IA) pour comprendre un langage informatique et le convertir en une documentation claire et simple ?
Imaginez des schémas d'architecture et des matrices de flux qui se mettent à jour automatiquement au fil des évolutions de notre code Terraform...
Moi je n'imagine plus, je l'ai testé.
Tiens, ça me donne une idĂ©e pour un prochain article : hummm "Documentation technique et IA : le DAT en 2025" 😉

Merci beaucoup de votre lecture jusque lĂ ,
Je serais ravi que vous me partagiez vos retours et critiques.

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

Top comments (0)