Je bosse sur un projet tout le long de l’année pour les cours, et je suis en train de découvrir durement les désastres du "Vibe-coding".

J’ai perso jamais touché à un LLM, mais on nous a fourni une base pour notre appli écrite par IA pour nous aider à nous lancer, après avoir vu au début du projet qu’il existait pratiquement aucune lib pour faire ce qu’on voulait.

J’ai tout de suite détesté, mais fait avec parce que j’étais le seul à être chafouin dans mon groupe et j’avais pas le temps de tout réécrire.

Déjà d’entrée de jeu, la complexité était dingue, alors que j’avais l’impression que ce qu’on faisait devait pas être aussi compliqué.

1 / 4

Vu que le projet est (sensé être) relativement simple, je m’en m’en sortait malgré tout, mais là je passe plus de temps à nager à contre-courant que de faire du code utile. Pourtant j’ai pas l’impression d’avoir touché une grosse partie du code…

Aujourd’hui, la dette technique est en train d’atteindre des proportions que j’ai jamais vu avant. C’est à un stade où on ne *peut pas* faire du code propre, on peut que faire des Hacks à la va-vite tellement y’a juste rien en place.

J’ai décidé d’étudier le détail ce qui a été écrit, pour essayer de comprendre où ça a merdé dans l’affaire, et bordel j’ai ouvert les yeux.

2 / 4

Y’a pratiquement aucune structure de donnée, tout est typé au pif (Python), et à part une lib qui aide au parsing de fichiers, aucune réelle abstraction est proposée.

L’architecture est dégueulasse. La majorité du code est dans un seul fichier de plus de 1 200 lignes, réparties dans quelques fonctions d’environ 100–200 lignes.

Y’a des classes qui servent à rien. Elles ont pas de propriétés, sont jamais dérivées, mais faut quand même instancier un objet pour taper dans une putain de fonction pure.

Y’a des fichiers qui sont ouverts, parsé, patchés, refermé plusieurs fois dans la même fonction,

3 / 4

Y’a du code mort dupliqué. J’ai jamais vu ça. Y’a une fonction qui est écrite, des wrappers qui demandent exactement les même arguments et les passent tel-quels sont défini 3 fois dans le fichier, et *absolument aucun* n’est utilisé dans toute la base de code.

Je crois que ce dernier c’est le pire. Je viens de supprimer 2 fichiers et pratiquement un quart du projet (en terme de volume de code), et j’ai retiré LITTÉRALEMENT AUCUNE feature.

Bref, je vais avoir un gros taff de refacto là, clairement.

Je m’étais contenté de faire du code propre dans les parties trop complexes pour que les autres y contribuent, mais là va falloir tout cramer.

4 / 4

Si je retiens un truc de l’histoire, c’est que si tu met en avant des IA pour du dev, tu devrais pas toucher à la MOINDRE ligne de code. Je veux plus jamais avoir à gérer ce genre de merdes.
@NuclearSquid moi ce que je retiens, c’est qu’il faut cramer les gens qui s’appuient sur cette merde gluante
@geobomatic En vrai ouais, valide. On peut en profiter pour générer un bout d’électricité avec la biomasse, histoire de pas faire de gâchis (c’est important l’écologie ^^)
@NuclearSquid @geobomatic Récemment, une connaissance n’a eu de cesse d’essayer de me convaincre de passer à l’IA, m’expliquant que ça me ferait gagner du temps, que ça me rendrait in fine plus compétitive, etc. La personne m’a également mise en garde (le pire étant qu’avec la mode actuelle, je pense qu’elle a raison) en me disant que trouver du boulot en tant que junior sans utiliser l’IA, désormais, c’est presque peine perdue.

@Poulpette @NuclearSquid @geobomatic autre son de cloche : dans mon équipe après plusieurs stagiaires qui manifestement ne faisaient que laisser copilote coder, un·e junior qui n'utilise pas de llm au quotidien aura un avantage compétitif certain ^^ .

(note: on en a aussi tiré des leçons sur notre façon de (mal) les encadrer)

(On est certainement pas un cas représentatif de l'industrie though)

@corpsmoderne @NuclearSquid @geobomatic Dans mon cas, sans pouvoir rien affirmer, je pense que la personne s’attendait à ce que je sois parfaitement autonome alors qu’elle sait que je débute et que le projet de départ, selon elle, était de prendre un débutant pour le former et lui déléguer une partie de ses tâches au bout d’un certain temps. Sauf que rien qu’à l’idée que je lise de la doc normalement, sans passer par une IA pour « apprendre », j’ai senti que ça coinçait déjà. (1/4)
@corpsmoderne @NuclearSquid @geobomatic En tant que prof de premier métier, c’est là que je rebondis sur ta première parenthèse : la personne dont je parle n’est pas pédagogue et l’a admis. Elle ne savait finalement pas quoi me faire faire, n’a pas anticipé certaines choses que j’ai pu faire. Je pense qu’elle attendait que ce soit une IA qui me « forme », ou plutôt que j’aie « le bon sens » de me « former » en parfaite autonomie avec une IA, ce qui est une aberration. (2/4)
@corpsmoderne @NuclearSquid @geobomatic Tout le monde n’est pas pédagogue, et ce n’est pas un problème en soi (il faut de toute pour faire un monde), mais je pense que l’IA va aussi mettre en exergue des problèmes d’encadrement qui se voyaient peut-être moins avant, ou moins bien, ou moins vite. Vouloir qu’un débutant apprenne correctement dès le départ, c’est une chose (apprentissage de l’autonomie inclus). (3/4)
@corpsmoderne @NuclearSquid @geobomatic Vouloir qu’un débutant ait les mêmes réflexes qu’une personne expérimentée, en revanche, c’est une erreur de jugement doublée d’une possible envie de ne pas effectuer son boulot d’encadrant, de formateur. Or enseigner nous oblige à apprendre nous aussi, à faire des efforts, à préparer des trucs (des cours, typiquement), à se mettre à la place d’autrui, et ça, tout le monde n’a pas envie de le faire. L’IA apparaît alors comme le sauveur. (4/4)
@corpsmoderne @NuclearSquid @geobomatic J’ajouterai que si, en effet, le développeur est responsable de ce qu’il produit (cela vaut aussi pour le développeur débutant), j’ai l’impression, au fil de mes lectures, que l’IA devient aussi une excuse pour reporter toute la responsabilité sur ceux qui maîtrisent le moins le métier. Certains supérieurs peuvent se dédouaner en disant que le débutant ne sait pas gérer l’IA et qu’après tout, il a un bon outil à dispo, à lui de s’assurer que tout est bon.