Ça fait plusieurs heures que je pense en boucle à un truc qu’on m’a remonté au travail cet après-midi. Un développeur (pas dans mon équipe) a poussé il y a plusieurs semaines une PR que j’ai validée. Et c’est plusieurs semaines après qu’on se rend compte qu’elle ne fonctionne pas.

Bon, c’est pas mon habitude de valider des choses sans rien commenter et pourtant c’est ce que j’ai fait. Pourquoi ? Parce que de « bonnes raisons ». Mais aussi de moins bonnes. Parce que ce bout de code peut être copié-collé d’une autre partie de l’application en changeant deux trois trucs. Parce que le code était testé unitairement et que les tests étaient copié-collés de cette autre partie de l’application qui est la même. Parce que j’ai leadé ce dev pendant plus d’un an, et je l’ai forcé pendant tout ce temps à faire des tests d’intégration pour vérifier que ça marche dans le réel.

En regardant le code, de manière purement théorique, à part à un endroit, tout est raisonnable. Si le dev a lancé son service sur sa machine pour le faire fonctionner, si le test d’intégration est en cours, pas vraiment de raison d’aller au-delà. Enfin si. Mais j’avais de « bonnes » raisons.

Et j’en avais de moins bonnes. J’ai réprimandé très sèchement publiquement ce développeur il y a quelques mois. Je n’aurais pas dû. Oh, j’avais motif, et c’était pas la première fois, mais j’aurais dû amener le sujet avant la 25e occurrence, et calmement, et à part. Mais là j’ai craqué. Trop, trop souvent, et apprendre que ma mère crevait à côté. Mais bref. La conséquence ? Une perte de la confiance de sa part, en moi, en lui. Un bris de communication. Et une peur de donner l’impression de harcèlement.

Alors est-ce que j’évite les commentaires sur PR qui ne me semblent pas essentiels ? En vrai oui. Un peu consciemment, un peu inconsciemment. Est-ce que « tu as testé en lançant le service ? » me semblait hautain, l’ai-je évité ? Oui. Et pour autant. Les tests passaient. Le service tourne.

Mais le code en question n’était appelé nulle part. Premier foutage de gueule de la part du dev qui me l’a remonté cet après-midi. Et il avait raison de se moquer de moi. Il appelle donc le code où il devait être appelé, et là, le service plante. Deuxième foutage de gueule. Dans le code que j’ai validé il y avait un appel à une fonction qui n’existait pas. Mon analyse a posteriori : du code produit par un LLM et collé par le dev en mode rien à foutre.

Et j’ai une boule dans le ventre depuis cet après-midi. J’ai validé un truc absolument idiot, et ça n’arrive normalement pas. J’ai des développeurs qui ne lancent même pas leur code sur leur machine et vérifient « à la main » qu’il fait ce qu’il veut faire. J’ai des développeurs qui utilisent l’IA sans esprit critique. J’ai des développeurs que je n’ose même plus challenger par peur des apparences.

4 points qui tournent en boucle dans ma tête. 4 échecs. Je me sens une fraude. Tout ça pour une ligne de code que j’ai pas vue. Bref, y a des jours.