Documentation is what makes software maintainable by someone other than its author. It is also the most commonly skipped deliverable, because it is invisible when the project works.
Why it matters
- Continuity: if the developer is unavailable, someone else can continue
- Cost: a new developer's first week is far cheaper with documentation
- Freedom: you can change provider without being held hostage
- Resilience: recovery after an incident is faster
- Value: documented systems are worth more when the business is sold or audited
Documentation is not about volume. A short, accurate, current document beats a long, outdated one.
The essential set
1. README (the front door)
A short file at the root of each repository:
- What the project does, in a few lines
- How to run it locally, step by step
- How to run the tests
- Where to find other documentation
- Who to contact
A test: a competent developer who has never seen the project should be able to run it in under an hour.
2. Architecture overview
One or two pages, with a diagram:
- The main components (application, database, queue, external services)
- How they communicate
- Where each one runs
- Key technical choices and the reasons for them
This is the document a new developer reads first to understand the whole.
3. Infrastructure and hosting
- Providers and accounts used, with the owner of each (see the 30-minute account ownership audit)
- Servers and services, with their purpose
- Domains, DNS records and certificates
- Network layout, firewall rules, access paths
- Costs per month or year, and renewal dates
4. Deployment procedure
- How code goes from the repository to production
- Steps, commands and tools
- How to roll back to the previous version
- Database migration process
- Who is allowed to deploy
If deployment depends on one person's laptop, document it and then fix it.
5. Configuration and secrets
- List of environment variables and settings, with their purpose and example values (never real secrets)
- Where the real secrets are stored and who can access them
- How to rotate each key (see the offboarding checklist)
- Third-party services and the credentials they need
6. Data
- Database structure (a schema diagram and descriptions of important tables)
- What personal data is stored, where and why (useful for your GDPR register, see GDPR and test environments)
- Backups: what, how often, where, how to restore, and the date of the last successful test (see backups that actually restore)
- Retention and deletion rules
- How to export your data in a usable format
7. Integrations
For each connected system:
- Purpose and direction of data flow
- Authentication method and where credentials live
- Schedule or triggers
- Known limitations, rate limits and failure behaviour
- Who to contact at the other end
- How to check it is working (see syncing two systems: the five ways it breaks)
8. Business rules
The logic that encodes decisions your company made: pricing rules, discount thresholds, validation steps, approval flows, tax handling. Write them in plain language. This is often the most valuable documentation, because it is the hardest to recover from code.
9. Operations and runbook
- What to monitor, and where
- Alerts, and what each one means
- Common problems and how to fix them
- Routine tasks (renewals, updates, cleanups) and their schedule
- Emergency procedures and contacts
- How to turn off specific features safely (including any AI feature, see adding AI without handing over the keys)
10. Dependencies and licences
- List of third-party libraries, frameworks and services
- Licence type for each, and any restrictions
- Paid licences, with the name they are registered under and renewal dates
11. User documentation
For the people who use the system:
- A short guide for each role
- Screenshots of the main tasks
- Answers to frequent questions
- Who to ask for help
12. Handover note
A final, dated summary: known issues, unfinished items, recommendations, and where everything is.
Need help defining what to demand?
We can turn this list into acceptance criteria for your next delivery, or review what you already received.
Quality criteria
Good documentation is:
- Accurate: matches what actually exists
- Current: updated when the system changes, with a date and version
- Findable: in a known place, with an index
- Written for the reader: a new developer or an administrator, not the author
- Concrete: commands, examples, screenshots, not vague descriptions
- Maintained: someone is responsible for updating it
- Stored under your control: in a repository or document space you own
How to get it
Ask early. Put documentation in the quote and contract as a deliverable (see contract clauses to demand from any tech provider), with the list above or a subset, and an acceptance criterion.
Deliver it progressively. Documentation written at the end is rushed and incomplete. Ask for the README and architecture overview at the first milestone, and the rest as the system takes shape.
Test it. Ask someone who did not build the system to follow it:
- Can they run the project locally from the README?
- Can they deploy to a test environment using the procedure?
- Can they restore a backup into a clean environment?
Every step where they get stuck is a gap to fix.
Keep it with the code where possible. Documentation stored in the repository, in text files, is versioned and travels with the project. A wiki is fine, but it must be in an account you own.
Include time for it. If you want documentation, it must be in the estimate. If it is an afterthought, it will not happen.
Documentation for small projects
You do not need twelve documents for a small website. A reasonable minimum:
- A README (how to run and deploy)
- A list of accounts, owners and renewal dates
- Configuration variables and where secrets are stored
- Backup and restore notes
- A short user guide
One or two pages can be enough, as long as they are accurate.
Documentation and AI tools
AI tools can help draft documentation from code, and can summarise existing systems. The same rules apply as for code: a person must review it for accuracy, since generated documentation sounds confident even when it is wrong or out of date. Ask your provider whether and how they use such tools, and whether your code is sent to external services (see contract clauses).
Common mistakes
- Treating documentation as optional or "for later"
- Accepting a delivery with no README
- Documentation that describes the plan, not what was built
- Secrets written into documents or repositories
- Documentation locked in the provider's tools or accounts
- No owner after delivery, so it drifts out of date
- Writing for experts only, with no user guide
- Never testing it
Checklist
- Documentation listed as a deliverable in the contract
- README: run, test, deploy
- Architecture overview with a diagram
- Infrastructure, accounts and owners listed
- Deployment and rollback procedure written
- Configuration documented, secrets stored in our vault
- Data structure, backups and restore procedure documented
- Integrations documented
- Business rules written in plain language
- Runbook for operations and emergencies
- Dependencies and licences listed
- User guide for each role
- Tested by someone who did not build it
- Stored in an account we own, with someone responsible for updates
From delivery to something you can maintain
If a project landed without usable docs, or you want acceptance criteria before the next go-live, write us.
La documentation, c'est ce qui rend un logiciel maintenable par quelqu'un d'autre que son auteur. C'est aussi le livrable le plus souvent sauté, parce qu'il est invisible tant que le projet fonctionne.
Pourquoi c'est important
- Continuité: si le développeur devient indisponible, quelqu'un d'autre peut continuer
- Coût: la première semaine d'un nouveau développeur coûte bien moins cher avec de la documentation
- Liberté: vous pouvez changer de prestataire sans être otage
- Résilience: la reprise après incident est plus rapide
- Valeur: un système documenté vaut plus lors d'une vente ou d'un audit
La documentation n'est pas une question de volume. Un document court, exact et à jour bat un long document périmé.
L'essentiel à exiger
1. README (la porte d'entrée)
Un fichier court à la racine de chaque dépôt:
- Ce que fait le projet, en quelques lignes
- Comment le lancer en local, étape par étape
- Comment lancer les tests
- Où trouver le reste de la documentation
- Qui contacter
Un test: un développeur compétent qui n'a jamais vu le projet doit pouvoir le lancer en moins d'une heure.
2. Vue d'ensemble de l'architecture
Une ou deux pages, avec un schéma:
- Les composants principaux (application, base de données, file, services externes)
- Comment ils communiquent
- Où chacun tourne
- Les choix techniques clés et leurs raisons
C'est le document qu'un nouveau développeur lit en premier pour comprendre le tout.
3. Infrastructure et hébergement
- Fournisseurs et comptes utilisés, avec le propriétaire de chacun (voir l'audit de propriété des comptes en 30 minutes)
- Serveurs et services, avec leur rôle
- Domaines, enregistrements DNS et certificats
- Schéma réseau, règles de pare-feu, chemins d'accès
- Coûts mensuels ou annuels, et dates de renouvellement
4. Procédure de déploiement
- Comment le code passe du dépôt à la production
- Étapes, commandes et outils
- Comment revenir à la version précédente
- Processus de migration de base de données
- Qui a le droit de déployer
Si le déploiement dépend du laptop d'une seule personne, documentez-le, puis corrigez-le.
5. Configuration et secrets
- Liste des variables d'environnement et réglages, avec leur rôle et des valeurs d'exemple (jamais les vrais secrets)
- Où sont stockés les vrais secrets et qui y a accès
- Comment faire tourner chaque clé (voir la checklist d'offboarding)
- Services tiers et les identifiants dont ils ont besoin
6. Données
- Structure de la base (schéma et description des tables importantes)
- Quelles données personnelles sont stockées, où et pourquoi (utile pour votre registre RGPD, voir RGPD et environnements de test)
- Sauvegardes: quoi, à quelle fréquence, où, comment restaurer, et la date du dernier test réussi (voir des sauvegardes qui restaurent vraiment)
- Règles de conservation et de suppression
- Comment exporter vos données dans un format utilisable
7. Intégrations
Pour chaque système connecté:
- Objectif et sens des flux de données
- Méthode d'authentification et où vivent les identifiants
- Planning ou déclencheurs
- Limites connues, plafonds de débit et comportement en cas d'échec
- Qui contacter de l'autre côté
- Comment vérifier que ça fonctionne (voir synchroniser deux systèmes: les cinq façons de casser)
8. Règles métier
La logique qui encode les décisions de votre entreprise: règles de prix, seuils de remise, étapes de validation, circuits d'approbation, traitement fiscal. Écrivez-les en langage clair. C'est souvent la documentation la plus précieuse, parce que c'est la plus dure à reconstruire depuis le code.
9. Exploitation et runbook
- Quoi surveiller, et où
- Alertes, et ce que chacune signifie
- Problèmes fréquents et comment les corriger
- Tâches de routine (renouvellements, mises à jour, nettoyages) et leur calendrier
- Procédures d'urgence et contacts
- Comment couper des fonctions particulières en sécurité (y compris une fonction IA, voir brancher une IA sans lui donner les clés)
10. Dépendances et licences
- Liste des bibliothèques, frameworks et services tiers
- Type de licence pour chacun, et restrictions éventuelles
- Licences payantes, avec le nom sous lequel elles sont enregistrées et les dates de renouvellement
11. Documentation utilisateur
Pour les personnes qui utilisent le système:
- Un guide court par rôle
- Captures d'écran des tâches principales
- Réponses aux questions fréquentes
- Qui demander de l'aide
12. Note de passation
Un résumé final daté: problèmes connus, points non terminés, recommandations, et où se trouve chaque chose.
Besoin d'aide pour définir ce qu'il faut exiger ?
On peut transformer cette liste en critères d'acceptation pour votre prochaine livraison, ou relire ce que vous avez déjà reçu.
Critères de qualité
Une bonne documentation est:
- Exacte: elle correspond à ce qui existe vraiment
- À jour: mise à jour quand le système change, avec une date et une version
- Trouvable: à un endroit connu, avec un index
- Écrite pour le lecteur: un nouveau développeur ou un administrateur, pas l'auteur
- Concrète: commandes, exemples, captures, pas des descriptions vagues
- Maintenue: quelqu'un est responsable de la mettre à jour
- Stockée sous votre contrôle: dans un dépôt ou un espace documentaire que vous possédez
Comment l'obtenir
Demandez tôt. Mettez la documentation dans le devis et le contrat comme livrable (voir les clauses de contrat à exiger de tout prestataire tech), avec la liste ci-dessus ou un sous-ensemble, et un critère d'acceptation.
Livrez-la progressivement. Une documentation rédigée à la fin est bâclée et incomplète. Demandez le README et la vue d'architecture dès le premier jalon, et le reste au fur et à mesure que le système prend forme.
Testez-la. Demandez à quelqu'un qui n'a pas construit le système de la suivre:
- Peut-il lancer le projet en local à partir du README ?
- Peut-il déployer sur un environnement de test avec la procédure ?
- Peut-il restaurer une sauvegarde dans un environnement propre ?
Chaque étape où il bloque est un trou à combler.
Gardez-la avec le code autant que possible. Une documentation dans le dépôt, en fichiers texte, est versionnée et voyage avec le projet. Un wiki convient, à condition qu'il soit dans un compte à votre nom.
Prévoyez du temps pour elle. Si vous voulez de la documentation, elle doit être dans l'estimation. Si c'est une idée de dernière minute, elle n'arrivera pas.
Documentation pour les petits projets
Vous n'avez pas besoin de douze documents pour un petit site. Un minimum raisonnable:
- Un README (comment lancer et déployer)
- Une liste de comptes, propriétaires et dates de renouvellement
- Les variables de configuration et où sont stockés les secrets
- Des notes de sauvegarde et de restauration
- Un court guide utilisateur
Une ou deux pages peuvent suffire, tant qu'elles sont exactes.
Documentation et outils d'IA
Les outils d'IA peuvent aider à rédiger une documentation à partir du code, et résumer des systèmes existants. Les mêmes règles s'appliquent que pour le code: une personne doit relire pour vérifier l'exactitude, car une documentation générée sonne confiante même quand elle est fausse ou périmée. Demandez à votre prestataire s'il utilise de tels outils, comment, et si votre code part vers des services externes (voir les clauses de contrat).
Erreurs fréquentes
- Traiter la documentation comme optionnelle ou « pour plus tard »
- Accepter une livraison sans README
- Une documentation qui décrit le plan, pas ce qui a été construit
- Des secrets écrits dans des documents ou des dépôts
- Une documentation enfermée dans les outils ou comptes du prestataire
- Pas de propriétaire après livraison, donc elle dérive
- Écrire seulement pour les experts, sans guide utilisateur
- Ne jamais la tester
Checklist
- Documentation listée comme livrable dans le contrat
- README: lancer, tester, déployer
- Vue d'architecture avec un schéma
- Infrastructure, comptes et propriétaires listés
- Procédure de déploiement et de retour arrière rédigée
- Configuration documentée, secrets dans notre coffre
- Structure des données, sauvegardes et restauration documentées
- Intégrations documentées
- Règles métier écrites en langage clair
- Runbook pour l'exploitation et les urgences
- Dépendances et licences listées
- Guide utilisateur pour chaque rôle
- Testée par quelqu'un qui n'a pas construit le système
- Stockée dans un compte à notre nom, avec une personne responsable des mises à jour
D'une livraison à quelque chose de maintenable
Si un projet est arrivé sans docs utilisables, ou si vous voulez des critères d'acceptation avant le prochain go-live, écrivez-nous.