Idée principale
Trois situations, un seul mécanisme. Le statut d'une commande déduit de quelques dates et de l'état de ses lignes, recalculé dans chaque écran, sans règle centrale : deux écrans finissent par ne plus dire la même chose, et personne ne sait lequel a raison. Le solde d'un client, qui n'est pas un nombre rangé quelque part mais le résultat d'un calcul sur les factures, les règlements, les avoirs et les écritures d'ajustement : chaque fonctionnalité qui « lit le solde » se trompe d'objet et donne un chiffre légèrement différent selon les mouvements qu'elle a pensé à inclure. Le droit d'accès d'une personne, issu de son rôle, de la formule souscrite, des options activées, d'une restriction de période d'essai, du périmètre de sa filiale et d'une liste d'exceptions, sans aucun endroit qui dise comment il se calcule.
Dans les trois cas, la notion existe pour les utilisateurs et n'existe nulle part comme définition. Elle est donc reconstituée à chaque usage, et chaque reconstitution est légèrement différente — non par négligence, mais parce que rien ne permet de comparer la sienne à une référence.
Trois écrans, trois soldes : l'écart n'est pas un défaut ponctuel, c'est la conséquence normale d'une notion sans endroit.
Pourquoi c'est important
Cela déplace la manière de traiter ces incohérences : corriger l'écran fautif ne règle rien, puisque le suivant recommencera. Ce qui manque est une définition écrite, et le premier livrable est une phrase, pas un correctif.
Cela donne aussi un signal de détection bon marché : une notion dont les utilisateurs parlent tous les jours et qu'aucun endroit du produit ne définit est presque toujours dans ce cas.
Nuances et limites
Écrire la définition ne suffit pas à unifier le comportement : tant que chaque écran garde son propre calcul, la définition n'est qu'une attente, et l'écart devient constatable — ce qui est déjà un progrès, mais pas une correction.
Et certaines variations sont légitimes : un solde comptable et un solde commercial peuvent différer à bon droit. C'est alors deux notions qu'il faut nommer séparément, pas une notion à unifier.
Questions ouvertes
- Une définition écrite hors du code tient-elle dans le temps sans mécanisme qui la confronte au comportement réel ?