Tech, data & cybersécuritéInformatique & Développement

Informatique & développement. Le pourquoi du code n'est pas dans le code.

Décisions d'architecture, dette assumée, pièges d'un système : une mémoire technique qui part avec les développeurs qui l'ont bâti.

Éditeurs, ESN et DSI, de 10 à 500 personnes.

Le problème

Ce qu'une équipe technique perd quand un développeur historique part.

Le code est versionné, les tests passent, la documentation existe. Ce qui part, c'est la raison pour laquelle le système est fait ainsi, et elle n'est dans aucun commit.

Architecture

Les alternatives écartées, et pourquoi

Pourquoi Kubernetes a été abandonné en 2019 au profit d'une autre orchestration, quelle latence supplémentaire avait été mesurée. Sans cette trace, l'équipe suivante refait le même essai, obtient le même résultat, et perd le même trimestre.

Règles métier

Le calcul que personne ne sait plus justifier

Une règle d'arrondi spécifique enfouie dans une fonction utilitaire, écrite un jour pour satisfaire une exigence comptable réelle. Personne ne sait plus laquelle. Personne n'ose donc y toucher, et personne ne peut la valider.

Exploitation

Les contournements devenus invisibles

Un script hérité qui tourne chaque nuit, extrait les comptes modifiés et les pousse vers un système ancien. Un redémarrage nocturne qui masque une fuite chronique depuis des années. Tout marche, jusqu'au jour où la personne qui savait n'est plus là.

Cession

Ce qu'un acquéreur regarde en premier

En due diligence technique, la concentration du savoir sur une ou deux têtes est un point de négociation direct sur le prix. Elle se mesure, et elle se corrige avant, pas pendant.

La concentration, mesurée

65 %

Des projets logiciels majeurs sont vulnérables au départ d'un ou deux contributeurs. Ce n'est pas une exception d'organisation, c'est la norme.

Étude académique sur 133 projets GitHub

Ces quatre pertes ne se paient ni au même moment ni au même prix. Voici comment les hiérarchiser.

Le diagnostic

Quels savoirs sont les plus exposés dans votre équipe.

Ce tableau se remplit en une réunion d'équipe. Vous en sortez avec la liste des zones où le départ d'une personne bloquerait la production, dans l'ordre. Il vous appartient, même si nous n'allons pas plus loin ensemble.

CritèrePorté parDocumentéCoût si la personne part
Raisons derrière les choix d'architectureUn à deux développeurs historiquesCode, sans les motifsRéécriture d'un système qui marchait
Zones fragiles du systèmeDeux personnesNonIncident en production
Dettes techniques assumées et leurs échéancesLe lead techniqueTickets éparsLa dette explose au pire moment
Contraintes métier encodées sans commentairePersonne, en pratiqueNonRègles de gestion perdues avec le code

Raisons derrière les choix d'architecture

Porté par
Un à deux développeurs historiques
Documenté
Code, sans les motifs
Coût si la personne part
Réécriture d'un système qui marchait

Zones fragiles du système

Porté par
Deux personnes
Documenté
Non
Coût si la personne part
Incident en production

Dettes techniques assumées et leurs échéances

Porté par
Le lead technique
Documenté
Tickets épars
Coût si la personne part
La dette explose au pire moment

Contraintes métier encodées sans commentaire

Porté par
Personne, en pratique
Documenté
Non
Coût si la personne part
Règles de gestion perdues avec le code
17,3 heuresLe temps qu'un développeur consacre chaque semaine à la dette technique et au manque de documentation, soit 42 % de sa semaine. Source : Stripe, The Developer Coefficient.
Le déroulé d'une mission

De la première visite à la mise en service.

Les entretiens sont menés par quelqu'un qui a développé et exploité. C'est ce qui permet de relancer sur une décision d'architecture qu'un lead juge trop évidente pour l'expliquer, et de comprendre un contournement sans le juger.

  1. Avant

    Une demi-journée sur site pour cadrer

    Nous listons avec vous les personnes à interroger et les sujets à écarter : les clés, identifiants et secrets d'infrastructure, les données de production, le code sous licence tierce restrictive. Vous validez ce périmètre avant le premier entretien.

  2. Pendant

    Les entretiens se tiennent devant le code

    Écran partagé, sur le dépôt réel plutôt que sur un schéma d'intention, sur plusieurs séances. La personne montre autant qu'elle explique, et l'expert relance sur ce qu'elle a sauté parce que cela lui paraissait évident.

  3. Ensuite

    Vos documents sont rattachés aux réponses

    Vos décisions d'architecture et vos post-mortems existent déjà, mais personne ne sait lequel s'applique à quel cas. Ils sont rattachés aux explications qui leur donnent leur sens, au lieu de rester rangés à côté.

  4. À la fin

    La personne interrogée relit et valide

    Rien n'est mis à disposition de vos équipes sans son accord. C'est la condition pour qu'elle parle librement pendant les entretiens, et c'est ce qui sépare un recueil d'un contrôle.

Une fois les entretiens terminés, voici ce qu'un développeur qui arrive a devant lui.

Le produit, dans votre stack

Les décisions d'architecture, sourcées.

Le patrimoine, c'est l'outil interne qui contient leurs réponses et vos documents techniques, et que vos développeurs interrogent en français.

Patrimoine cognitif · ingénierie

Pourquoi ce module a-t-il été conçu ainsi, et qu'a-t-on essayé avant ?

Voix du lead developer

En juillet 2019, PostgreSQL subissait des verrous d'écriture aux pics de charge. La réplication en lecture seule a été tentée puis écartée (désynchronisation inacceptable pour le module comptable). Choix final : file Redis asynchrone pour isoler l'ingestion, moins risqué qu'une migration NoSQL vu les compétences de l'époque.

Sources

Entretien de recueil avec le lead developer · oct. 2023

1 source · validé par l'auteur · mise à jour oct. 2023

Interface illustrative

Ce qu'on peut lui demander

Le type de questions auxquelles le patrimoine répond.

  1. 01Pourquoi ce service n'a-t-il jamais été découpé ?
  2. 02Que casse-t-on si on touche à ce module ?
  3. 03D'où vient cette règle de calcul que personne ne sait justifier ?
  4. 04Quelle migration a été tentée puis abandonnée, et pourquoi ?

Ce sont les questions qu'un nouvel arrivant pose pendant ses trois premiers mois, et auxquelles il obtient aujourd'hui une réponse en interrompant quelqu'un.

Le périmètre du recueil

Ce qui entre dans le patrimoine, et ce qui n'y entre jamais.

Le code produit par un salarié dans ses fonctions vous appartient ; celui d'un prestataire dépend du contrat. Le recueil documente les décisions et les contraintes, ce qu'aucune licence ne couvre, et se tient à l'écart de tout secret d'infrastructure.

Recueilli et consultable

  • Les décisions d'architecture et les options écartées
  • Les zones fragiles connues, et ce qui les déclenche
  • Les dettes assumées et leur échéance réelle
  • Les contraintes métier encodées sans commentaire

Exclu, sans exception

  • Les clés, identifiants et secrets d'infrastructure
  • Le code sous licence tierce restrictive
  • Les données de production
  • Ce que la personne refuse de voir figurer

Le cadre juridique

Propriété du code et licences

Le code produit par un salarié dans ses fonctions appartient à l'employeur, celui d'un prestataire dépend du contrat. Le recueil documente les décisions et les contraintes, ce qui n'est couvert par aucune licence tierce, et se tient à l'écart du code sous licence restrictive. Les secrets d'infrastructure, clés et identifiants sont exclus du périmètre par principe.

Les questions fréquentes

Les questions que se posent les équipes techniques.

On a déjà un wiki, et il est à jour.
Le wiki vieillit plus vite que le code et documente le quoi. Il ne contient jamais les impasses, les échecs de conception ni les fragilités tolérées : aucun ingénieur ne consigne spontanément les faiblesses d'un système dont il est responsable. C'est l'entretien mené par un pair qui libère cette parole.
Une IA peut lire notre code et générer la documentation.
Elle décrit ce que le code fait. Elle ne peut pas dire pourquoi cette option a été retenue contre trois autres, quelle mesure a tranché, ni quel incident a imposé ce contournement. Cette information n'a jamais été écrite : elle n'est pas dans le dépôt, elle est dans la tête de celui qui a arbitré.
On a déjà un wiki. Pourquoi ne suffit-il pas ?
Le wiki documente le quoi et le comment, et vieillit plus vite que le code. Il ne contient jamais les impasses, les échecs de conception ni les vulnérabilités tolérées : personne ne consigne de lui-même les fragilités d'un système dont il est responsable. C'est l'entretien par un pair qui libère cette parole.
L'IA générative ne peut-elle pas documenter le code elle-même ?
Elle explique la logique locale. Elle ne peut pas deviner qu'un module contourne la faiblesse d'un partenaire, ni qu'une API a été dégradée pour un client. Le code est la traduction finale d'une décision humaine ; la décision n'y est pas.
Où sont hébergées nos sources et notre patrimoine ?
En France, dans un espace isolé de ceux des autres clients, en circuit fermé : aucune réutilisation pour entraînement de modèles publics. Le patrimoine reste votre propriété exclusive.
En quoi est-ce un enjeu de valorisation ?
En due diligence, une société dont l'exploitation repose sur son fondateur technique se paie en décote et en earn-out rallongé. Un socle où le raisonnement d'architecture est consultable et sourcé défend le multiple.

Le code survivra au départ.
Le pourquoi du code, c'est moins sûr.

Évaluer mon risque