Vibe coding

J'ai *vibe-codé* une application... Et j'ai pas aimé

Je connais les impacts de l’IA. Je sais ce que son utilisation implique, en termes sociaux, écologiques et financiers. Et j’entrevois le crash financier qui va arriver (dans pas trop longtemps, mais pas tout de suite non plus).

Pour ceux qui me connaissent, je n’ai jamais vraiment eu l’occasion d’avoir du matériel “high-tech” ; j’ai un peu suivi la vague, j’ai économisé pour m’acheter des appareils, des téléphones, … Mais jai aussi tendance à réutiliser ce qui existe, à prendre soin et à faire durer mon matériel et à travailler sur “ce qui fonctionne”. Ma plus grosse machine n’a “que” 16GB de RAM et un processeur d’il y a plusieurs années. Et cela me convient bien : cela fait des années que je préfère une machine endurante, qu’une machine puissante. Je n’achèterai probablement jamais un téléphone qui aspire plus que 5 ou 10% de mon salaire mensuel. Et ce n’est pas le RAMGate ou n’importe quel krash boursier qui me fera changer d’avis.

Petit retour d’expérience.

Mes raisons

Cela fait plusieurs années (littérallement) que j’envisage de développer une petite application de “listes de souhaits”.

Au début, il s’agissait juste de proposer une alternative open source et auto-hébergeable à Kadolog (et équivalents). Finalement, ce développement s’est mué en livret pédagogique, explications sur les 12-factors, principes SOLID, … et état de l’art dans le cadre du développement applicatif - minus les contraintes d’architecture et d’infrastructure que rencontre Google et autres Fortune 500. Mon objectif consistait à rester à taille humaine, pour proposer une architecture scalable (jusqu’à un certain niveau), maintenable (jusqu’à un certain niveau aussi) et sécurisante à déployer.

Raison pour laquelle ce que j’ai écrit se tournait naturellement vers Python (https://xkcd.com/353/), Django, uv et en containeur.

Nous sommes maintenant 13 ans plus tard; le livret est publié, mais toujours un peu à l’état de brouillon - https://dev.grimbox.be/ - et l’application, bien que réécrite 14 fois, n’a jamais quitté le dépôt de ma forge logicielle perso. Autant dire qu’en termes de visibilité, de pédagogie et d’utilité, on est proche du zéro absolu (-273.15, donc).

Mon point de vue

L’IA permet ici de (littérallement) profiter du travail des autres : on arrive à un résultat plus que correct, exploitable, avec très peu d’effort, en ayant exploité ce que d’autres ont réalisé - l’IA n’ayant aucune conscience ou volonté artistique, son résultat n’est jamais qu’un assemblage “Frankensteinien” (et un brin statistique) de ce que le modèle contient déjà. Selon ma compréhension - et je peux évidemment me tromper - aucune IA ne “déduit” quelqu’information que ce soit.

Boulet en parlait il y a une dizaine d’années, avec un succulent “Ha ha super ce que tu fais ! Hé ! Venez tous voir ce que JE fais” (https://bouletcorp.com/notes/2006/09/25) ; ce que le LLM aura généré pourra être “intéressant”, mais nous sommes tellement noyés sous une telle quantité de similarités, qu’il devient difficile de s’en extasier. Gee abordait ce point sous le même angle, à savoir que les affiches en “Comic Sans MS” et “Wordart” manquaient, et peut-être qu’elles étaient assez dégueulasses, mais au moins, leurs auteurs avaient fait l’effort de s’intéresser au sujet (https://grisebouille.net/affichages-amateurs/).

En termes de Quality Assurance, il devient également compliqué - voire impossible - de tout contrôler ; le résultat d’un prompt est tellement complet et “visuellement appétant” que le cerveau prend immédiatement un raccourci, pour “faire confiance”. J’en arrivais à envoyer mon prompt, à attendre bêtement (si !) que le résultat apparaisse sous mes yeux, à grossièrement revoir les lignes modifiées, et à valider via un commit tout aussi grossier. Après tout, ce que l’IA raconte est tellement crédible, qu’on a le sentiment de pouvoir lui faire aveuglément confiance1.

Mais le plaisir a disparu.

Avec mes connaissances en Django, uv, Docker et CSS, le même résultat m’aurait pris quelques jours, voire une grosse semaine, tout au plus. On parle d’un CRUD relativement basique, avec quelques interactions, des filtres sur les pages et du login. Clairement, l’IA m’a fait gagné du temps pour certaines fonctionnalités et pour ce que je n’avais pas envie de faire mais que je sais que je dois faire (qui a parlé des tests ?), ou pour me sortir un Dockerfile en tenant compte des caveats habituels. J’ai gagné un résultat rapide, statistiquement acceptable et normé, mais j’ai perdu le frisson du bug pourri du vendredi soir, de la documentation à éplucher, du placement de style CSS sur lequel plancher dans mon canapé plutôt que de regarder une bête série.

Ploum en parlait très récemment (https://ploum.net/2026-09-14-ecrire_et_ia.html) : ce que l’IA ne peut pas faire, c’est communiquer. Elle peut générer une réponse plausible, mais le temps qui est gagné pour l’un des intervenants est systématiquement perdu pour le ou les autres, qui doivent démystifier l’intention initiale, perdue dans un gloubiboulga de phrases savantes et à rallonge. Bien sûr, il est possible de définir des acteurs, des persona, des skills, … Mais est-ce que tout ceci aide réellement, ou donne juste l’impression d’aller plus vite ?

En discutant encore récemment avec un ami, il est possible de mesurer l’output du travail accompli individuellement, mais la vélocité globale (= de l’équipe), elle, ne change pas. L’IA ne développe aucune culture, n’améliore pas la communication, ne fluidifie pas les processus métiers. Elle n’a pas de prise sur le monde réel ; ce n’est pas elle qui doit assumer les responsabilités d’un crash, pas elle qui doit gérer la mauvaise humeur d’un collègue, la déception liée à une décision ou la tristesse d’une situation. La courbe du deuil n’est qu’un concept pompé sur Wikipedia, pas une suite d’évènements vécus et ressentis.

Côté développement (puisqu’il s’agit du sujet de ce billet), j’ai “gagné du temps” et j’ai “fait travailler quelqu’un d’autre”, mais je n’ai pas été époustouflé. J’ai dû recadrer le LLM pour certaines décisions qu’il prenait, et bien que la “discussion” restait intéressante (certaines réponses étaient pertinentes, même si j’aurais pu les éviter en étant plus attentif), j’ai surtout gagné du temps à ne pas refaire quelque chose que j’ai déjà fait des centaines de fois.

Je peux résumer cette position de cette manière-ci : utiliser un squelette de conception d’une application aurait suffit. Les technologies que j’ai choisies sont délibérément “simples” (PicoCSS, Django, Docker - parce que je les connais, que je sais où cela pourra faire mal, et je sais aussi comment les maintenir si mes tokens venaient à expirer). une librairie bien fichue, bien documentée, et avec des exemples pratiques à copier/coller, le résultat aurait été le même. Après tout, nous sommes “CRUD Monkeys” (https://kyrylo.org/software/2025/08/17/im-a-proud-crud-monkey.html) : prenez n’importe quelle idée, saupoudrez-la d’un modèle relationnel correct, d’un contrôle d’accès sur base de rôles (RBAC) et d’une jolie interface, et vous pouvez représenter 95% des applications existantes. Entre 1995 et maintenant, peu de choses ont été mises en place que pour améliorer cette partie-là, raison pour laquelle des plateformes comme SharePoint et des méthodologies de type “low-code/no-code” ont tellement de succès2.

En conclusion

Je pense être un “bon développeur”, pas une rock star, mais pas un amateur non plus ; j’ai pas mal de connaissances, je connais plusieurs concepts architecturaux, je comprends souvent les objectifs cachés derrière ce que l’on me demande, et j’ai généralement des idées concrètes et correctes lorsque je mets quelque chose en place… mais mes forces résident ailleurs que dans le développement et la mise en place technique de solutions applicatives.

J’en comprends les implications, les règles de sécurité et d’hygiène informatiques, je peux orienter des choix techniques, mais la solution effective n’est plus dans mes mains, et ne m’intéresse probablement plus autant qu’il y a quelques années. Mes collègues ingénieurs aiment beaucoup trouver des trucs compliqués “au cas où”, des patterns architecturaux que “tu comprends, on sera parés”, … Mais au final, ce n’est pas cela qui fait réellement la différence.

Ce dont je me rends compte, c’est que l’IT, c’est 10% de mon temps réel de concentration. Le reste, c’est de la coordination, de l’empathie, de l’écoute, de l’analyse, de la structuration, des liens et du feeling. J’ai de (très ?) bonnes capacités rédactionnelles et de synthèses, de communication et de pédagogie, compétences qu’une IA peut concurrencer, voire “sembler de faire mieux”, mais ne peut pas encore égaler.

Elle pourra m’aider à structurer ma pensée et mes réflexions, mais elle ne remplacera pas la gentillesse, la douceur et les liens humains que je tisse à chaque fois que je rends service.


  1. Spoiler : non↩︎

  2. Avec l’énorme risque que vos utilisateurs, via leurs nouveaux accès de citizen-developers finissent par câbler la plateforme de facturation de vos utilisateurs avec une liste SharePoint exposée sur le web, sans authentification. ↩︎