Idée principale
Comment écrit-on une API dans cette équipe ? Comment gère-t-on les erreurs ? Comment écrit-on un job asynchrone ? Comment teste-t-on un appel à un service externe ? Tant que ces réponses restent implicites, elles sont reconstituées à chaque fois — et un assistant de développement, qui n'a aucune raison de préférer la convention locale à une autre, en propose une différente à chaque fonctionnalité.
Le résultat n'est pas un défaut de qualité fonctionnalité par fonctionnalité : chaque solution peut être correcte isolément. Le résultat est une équipe qui maintient plusieurs architectures dans un seul produit, sans qu'aucune décision n'ait acté cette pluralité.
Ce qui manque est un catalogue des patterns autorisés, décidé par l'équipe et écrit. Décidé, parce qu'un inventaire de ce que le code contient déjà ne fait qu'entériner la dispersion ; écrit, parce que la convention non formulée ne se transmet ni à un nouvel arrivant ni à un outil.
Pourquoi c'est important
Cela déplace la cible de l'effort d'homogénéité : la relecture au cas par cas ne rattrape pas un débit de génération, un référentiel en amont si.
Cela révèle aussi un coût que l'accélération dissimule. La lenteur imposait une homogénéité de fait — réinventer à chaque fois coûtait trop cher, on recopiait le module d'à côté. Ce frein tombe quand produire ne coûte plus rien, et rien ne le remplace tant que la convention n'est pas devenue une décision.
Nuances et limites
Un catalogue trop fourni devient un handicap : il fige des choix que le contexte devrait pouvoir rouvrir, et il finit ignoré parce que personne ne le tient à jour. Sa valeur tient à la petite liste de questions récurrentes, pas à l'exhaustivité.
Et l'homogénéité n'est pas une fin. Sur un périmètre exploratoire, laisser plusieurs manières de faire coexister quelque temps est un moyen légitime de comparer — à condition que le choix soit ensuite tranché et inscrit.
Questions ouvertes
- Qui arbitre l'entrée d'un nouveau pattern dans le catalogue, et à quel signal une équipe reconnaît-elle qu'une entrée existante a cessé de convenir ?