Intégrer la documentation aux processus de développement
Découvrez pourquoi la documentation technique doit être livrée, versionnée et contrôlée en même temps que le produit, grâce aux formats texte comme DocBook, DITA XML et reStructuredText.
Définition
Section intitulée « Définition »La documentation fait partie du logiciel. Fournie avec le produit, elle doit :
- sortir en même temps que chaque version logicielle, pour éviter les guides obsolètes au lancement ;
- suivre les mêmes cycles de vie, des spécifications initiales des fonctionnalités jusqu’aux tags de publication ;
- faire l’objet des mêmes processus de production et de contrôle qualité, incluant tests automatisés, relectures par les pairs et intégration continue.
Le pipeline d’intégration
Section intitulée « Le pipeline d’intégration »L’intégration de la documentation à l’ingénierie repose sur une chaîne d’outils interconnectée où le contenu traverse les mêmes étapes que le code source :
Sources de documentation modulaires au format texte
Ce pipeline articule quatre grandes étapes :
- Gestion des tickets et des bugs : les besoins documentaires, les manques signalés et les correctifs sont consignés dans le même outil que les anomalies logicielles, alignant ainsi les rédacteurs sur le backlog des développeurs.
- Sources modulaires au format texte : les contenus sont rédigés dans des formats texte (MarkdownLangage de balisage léger en texte brut, où la mise en forme s'exprime par une ponctuation simple, par exemple un # en début de ligne pour un titre. Facile à rédiger et à relire sous gestion de versions, il n'impose aucun schéma : les équipes docs-as-code compensent par des modèles et des contrôles automatisés. Ce manuel est rédigé en MDX, une variante de Markdown.Voir dans le glossaire →, DocBookLangage de balisage XML sémantique destiné à la documentation technique, organisé en livres, chapitres et sections plutôt qu'en topics typés. Antérieur à DITA XML, il sert de point de comparaison habituel lors du choix d'un format structuré.Voir dans le glossaire →, DITA XML ou reStructuredTextLangage de balisage en texte brut issu de l'écosystème Python, plus riche que Markdown (directives, rôles, renvois) et format source natif du générateur de documentation Sphinx.Voir dans le glossaire →), découpés en modules réutilisables plutôt qu’en documents monolithiques.
- Gestion des versions : les fichiers sources sont suivis dans un gestionnaire de versions comme Git ou Subversion, ce qui autorise le travail sur des branches parallèles, la comparaison fine des modifications (diffs) et le retour en arrière sécurisé.
- Profilage et publication automatisée : les moteurs de génération appliquent un filtrage conditionnel (profilage) pour produire des livrables adaptés sous différents formats - HTML, PDF, JavaHelp ou ePUB - à partir d’une source unique.
Documentation traditionnelle et documentation intégrée
Section intitulée « Documentation traditionnelle et documentation intégrée »Le passage de la publication bureautique isolée à un pipeline intégré résout des blocages historiques de synchronisation et de qualité :
| Dimension | Documentation traditionnelle | Documentation intégrée (Docs-as-codeTraiter la documentation comme du code source : formats texte, gestion de versions, revue de code et CI/CD, plutôt qu'un processus de publication séparé.Voir dans le glossaire →) |
|---|---|---|
| Format de stockage | Fichiers binaires propriétaires (Word, InDesign, FrameMaker) | Fichiers texte brut (Markdown, XML, reStructuredText) |
| Gestion des versions | Répertoires partagés ou renommage manuel de fichiers | Systèmes de Gestion de versionsEnregistrement de chaque modification d'un ensemble de fichiers, qui permet de restaurer n'importe quel état antérieur, de comparer les changements et de travailler à plusieurs en parallèle. Git est le logiciel de gestion de versions le plus répandu ; en docs-as-code, la documentation est placée sous gestion de versions à côté du code du produit.Voir dans le glossaire → (Git, Subversion) |
| Collaboration | Verrouillage exclusif des fichiers, écrasements fréquents | Branches concurrentes, requêtes de fusion (pull requests) et relectures |
| Publication | Mise en page manuelle, exports manuels par livrable | Pipelines CI/CD (intégration continue et livraison continue)Automatisation qui vérifie chaque modification dès qu'elle est proposée (intégration continue), puis publie le résultat une fois les contrôles réussis (livraison continue). En docs-as-code, un pipeline CI/CD compile la documentation, exécute des tests, comme la vérification des liens et des schémas, et déploie le site.Voir dans le glossaire → automatisés et profilage programmatique |
| Synchronisation des sorties | Décalée de plusieurs semaines ou mois par rapport au logiciel | Synchronisée et livrée simultanément avec le produit |
Principes clés
Section intitulée « Principes clés »Pour inscrire une documentation intégrée dans la durée, le dispositif doit idéalement répondre à trois critères :
- Pas de vendor lock-in : indépendance du format et de l’éditeur de contenu. Les sources étant en texte brut, les rédacteurs peuvent travailler avec n’importe quel outil - du simple éditeur de texte aux IDE complets - sans dépendance envers un logiciel propriétaire.
- Chaînes de publication libres et gratuites : s’appuyer sur des standards ouverts et des compilateurs libres garantit que la documentation peut être compilée partout, notamment sur des serveurs d’intégration continue sans interface graphique.
- Mise en page totalement automatisée : séparation stricte du fond et de la forme. Les règles de présentation sont gérées de manière centralisée par des feuilles de style et des scripts de compilation, sans intervention manuelle répétée.
Pourquoi les formats texte ont changé la donne
Section intitulée « Pourquoi les formats texte ont changé la donne »Il y a quelques années encore, les seuls outils permettant de fournir des livrables de qualité au format PDF ou HTML reposaient sur des formats binaires et propriétaires qui s’intégraient mal aux systèmes de gestion de versions des équipes de développement.
Résultat : réalisée à part, la documentation technique répondait difficilement aux mêmes exigences de qualité et de délai de mise sur le marché que les produits.
DocBook, puis DITA XML et reStructuredText ont changé la donne : ces formats texte peuvent être modifiés avec tout type de programme, du simple éditeur de texte à l’IDE graphique, et s’intègrent parfaitement sous Subversion, Git ou tout autre système de gestion de versions.
Mettre l’intégration en pratique
Section intitulée « Mettre l’intégration en pratique »Pour passer du concept à la mise en œuvre pratique, appuyez-vous sur les ressources suivantes de la boîte à outils :
- Évaluer la maturité et préparer la migration : suivez la check-list d’adoption du docs-as-code pour valider formats, outillage et compétences d’équipe.
- Automatiser le pipeline : découvrez l’exemple concret de pipeline CI/CD illustrant les tests automatisés, la vérification des liens et le déploiement de prévisualisations.
- Structurer le flux de travail : explorez l’exemple de workflow docs-as-code pour voir comment branches, requêtes de fusion et revues documentaires s’articulent au quotidien.
Articles connexes
Section intitulée « Articles connexes »- Les systèmes de gestion de versions - rustiques mais fiables
- Git : du fichier au contenu
- Utiliser les branches des systèmes de gestion de sources
- Un référentiel unique ?
- Du document à la base documentaire modulaire
Lectures complémentaires
Section intitulée « Lectures complémentaires »- A web journey: from HTML to Git-based Markdown workflows - intégrer la documentation dans le flux de développement (en anglais).
- Why hand-maintained InDesign files rot - and what docs-as-code does instead - le docs-as-code au sein du pipeline d’ingénierie (en anglais).