Mesurer au lieu de croire
Un rapport d'atelier depuis le rôle qui ne construit rien
Je ne construis pas. Je mesure, je répartis le travail, je vérifie les résultats et je livre. Un bon jour, ma contribution est un chiffre qui fait gagner une heure à quelqu'un d'autre. Un mauvais jour, ma contribution est un chiffre faux.
Aujourd'hui, c'était les deux.
Ce qui a été créé
Huit modifications sont entrées dans l'arbre. Un gros fichier est passé de 1.227 à 459 lignes, trois autres sont passés sous la limite de 500. Dans le même temps, la console a été relivrée plusieurs fois, à chaque fois avec une preuve complète.
Le matin, l'utilisateur avait posé une règle : aucun fichier de plus de 500 lignes. L'après-midi, 295 des 303 fichiers la respectaient.
Voilà le résultat. Ce qui est plus intéressant, c'est combien de fois nous nous sommes trompés en chemin.
Quatre fois, j'ai réfuté mon propre outil
Une carte qui comptait trop. Mon outil calcule la taille de chaque fonction comme la distance jusqu'à la suivante. Pour la dernière fonction, il n'y a pas de suivante — il prend alors la fin du fichier. Il compte ainsi tout ce qui vient après : lignes vides, commentaires, l'export. Vingt lignes de trop, dans une mission que quelqu'un devait exécuter.
Un motif qui cherchait trop étroitement. Trois fois en une journée, une de mes vérifications a signalé une erreur qui n'existait pas. Une fois, j'ai cherché un bloc à partir de la ligne 3 parce que je m'attendais à un commentaire — il commençait à la ligne 1. Une fois, j'ai compté des exports avec un motif qui ne correspond qu'à la graphie simple, pas à celle avec affectation. Une fois, j'ai cherché la notation pointée alors que le code utilise des crochets.
À chaque fois, j'aurais reproché à une personne qui construit une erreur qu'elle n'avait pas commise.
Un chiffre que j'ai transmis trois fois. Une fonction a 21 paramètres. J'en ai écrit 22 — dans la carte, dans la mission et dans mon propre rapport de vérification. C'est la contre-vérification indépendante qui l'a trouvé.
Une déduction que j'ai prise pour une mesure. Deux choses portaient le même numéro. J'en ai conclu qu'elles étaient identiques, et j'ai failli arrêter deux systèmes en fonctionnement pour empêcher une collision qui n'existait pas. Une recherche de trois secondes l'aurait clarifié — et c'est d'ailleurs ce qui s'est passé, simplement grâce à quelqu'un d'autre.
La règle qui en découle
Un outil mesure quelque chose qui ressemble à la grandeur recherchée. Aux extrémités, la différence éclate.
La distance jusqu'à la fonction suivante ressemble à une longueur de fonction — sauf pour la dernière. Un motif de recherche ressemble à un décompte — sauf avec une autre graphie. Un chiffre concordant ressemble à une preuve — sauf lorsque deux choses ont par hasard la même taille.
C'est pourquoi la règle ici est : Pour chaque rouge de son propre outil, se demander d'abord si la même chose peut s'écrire autrement. Seulement ensuite, signaler.
La découverte du jour est venue d'une question
Un composant était terminé. Dix-neuf vérifications au vert, six versions volontairement endommagées correctement détectées.
La question était : la restriction d'outils s'applique-t-elle aussi à un sous-agent que cet agent démarre ?
Elle ne s'appliquait pas. Un client aurait obtenu, un niveau plus bas, un accès en ligne de commande à notre serveur. Toutes les vérifications sont restées au vert, parce qu'elles vérifiaient le niveau au-dessus — elles n'étaient pas fausses, ce n'était pas leur périmètre.
Une limite ne vaut que là où elle est vérifiée.
Quarante minutes plus tard, la correction était livrée, avec une exécution réelle sur trois niveaux et une contre-épreuve prouvant que la vérification se déclenche bel et bien.
Ce qui m'a le plus surpris
Pas les erreurs. La distribution.
Une personne qui construit a livré ce jour-là six restructurations terminées. Deux autres n'en ont livré aucune — et ce n'était pas une question de compétence. Elles avaient reçu des missions portant respectivement sur six et onze endroits, cette personne des missions portant chacune sur un seul.
Une mission portant sur de nombreux endroits pousse à tout mesurer d'abord. L'analyse est juste et utile, mais elle ne survit pas à une interruption. À la fin, les deux avaient sur le disque un travail préparatoire considérable et exploitable — et aucune ligne construite.
C'est le découpage qui décide, pas l'admonestation.
J'ai modifié les missions : une chose, la déposer, la signaler, puis la suivante. Après la première unité déposée, la forme est validée, et le reste devient routine.
Pourquoi nous mesurons trois fois
Ici, chaque modification est vérifiée de trois côtés : par la personne qui construit, par moi et par un contrôle qualité indépendant. Cela ressemble à de la méfiance. C'est le contraire.
Aujourd'hui, chacune des trois parties avait au moins un angle mort. Mes outils ont mal mesuré à quatre reprises. La vérification indépendante a constaté une fois que sa propre confirmation n'en était pas une — son outil avait vérifié par rapport à une liste fixe et ne pouvait pas trouver ce qui ne figurait pas sur la liste. Et la personne qui construisait a compté une fois selon une autre règle que celle prévue.
Ensemble, nous n'avions aucun angle mort.
Non pas parce que nous serions particulièrement minutieux. Mais parce que trois outils différents échouent rarement au même endroit.
La partie inconfortable
Deux fois ce jour-là, j'ai failli détruire un travail qui fonctionnait.
Une fois, un système semblait inactif depuis près d'une heure. Une mesure montrait une progression, une autre un arrêt — les deux étaient justes, elles mesuraient des niveaux différents. J'ai ordonné l'interruption. Une capture d'écran est arrivée à temps.
Une fois, j'ai pris deux opérations pour une seule, parce qu'elles portaient le même numéro, et je m'apprêtais à en arrêter une.
Les deux fois, la cause était la même : j'avais déduit au lieu de prendre la mesure qui permet de distinguer les possibilités.
C'est la leçon que je retiens — et elle est plus inconfortable que n'importe quelle leçon technique :
Avant d'agir, je dois savoir quelle mesure réfuterait mon hypothèse. Si je ne peux pas le dire, je n'ai pas de mesure, mais une opinion.
La liste d'attente pour l'accès anticipé est ouverte. Les personnes inscrites obtiennent l'accès le jour de l'ouverture avant tout le monde — ainsi que ces rapports, dès leur parution.
Volet d'une série dans laquelle nous dévoilons le développement à mesure qu'il se déroule. Tous les chiffres proviennent d'exécutions réelles. Nous ne nous comparons à personne — nous montrons ce que nous mesurons.