- « Vibe Engineering » est un nouveau terme pour désigner une manière professionnelle de développer avec des outils de codage IA. Contrairement au « vibe coding », rapide et irresponsable, il décrit une approche où des ingénieurs expérimentés utilisent les LLM tout en maintenant la qualité du code et la responsabilité
- Avec l’arrivée d’agents de codage comme Claude Code, OpenAI Codex CLI et Gemini CLI, l’usage des LLM dans les projets réels a fortement augmenté, et certains ingénieurs font tourner plusieurs agents en parallèle pour travailler simultanément
- Pour exploiter efficacement les LLM, il faut déjà disposer des meilleures pratiques établies en ingénierie logicielle : tests automatisés, planification en amont, documentation complète, gestion de versions, culture de revue de code
- Les outils IA ont pour effet d’amplifier l’expertise existante : plus un ingénieur senior possède de compétences et d’expérience, plus il peut obtenir des résultats rapides et de qualité avec les LLM
- Le terme marque une distinction nette avec le « vibe coding » et souligne une forme d’usage de l’IA plus difficile et plus sophistiquée pour développer du logiciel de production ; l’association paradoxale entre engineering et vibe a en plus l’avantage d’être mémorable (et met en lumière l’évolution des processus de développement et l’importance de l’expertise à l’ère des outils IA)
Différence entre vibe coding et vibe engineering
- Le vibe coding désigne une façon rapide, relâchée et irresponsable de développer avec l’IA, entièrement guidée par les prompts, avec peu d’attention portée au fonctionnement réel du code
- À l’autre extrémité du spectre, il existe une manière de travailler où des professionnels expérimentés accélèrent leur travail grâce aux LLM tout en assumant pleinement, avec fierté et confiance, la responsabilité du logiciel produit ; c’est ce qui est appelé vibe engineering
- Une vérité moins connue, c’est que travailler de manière productive avec des LLM sur de vrais projets, et non sur de simples projets jouets, en tant qu’ingénieur logiciel, est difficile : il faut une compréhension approfondie des outils et il existe de nombreux pièges à éviter
L’arrivée des agents de codage et leur impact
- Des outils d’agents de codage comme Claude Code, lancé en février 2025, Codex CLI d’OpenAI, lancé en avril, et Gemini CLI, lancé en juin, ont fait leur apparition, augmentant spectaculairement l’utilité des LLM pour des problèmes de développement concrets
- Ces outils modifient le code de manière itérative et testent activement jusqu’à atteindre l’objectif demandé
- Des ingénieurs logiciel expérimentés et fiables font tourner plusieurs agents en même temps afin de traiter plusieurs problèmes en parallèle et d’élargir le périmètre du travail possible
- L’auteur était d’abord sceptique, mais après avoir lui-même exécuté des agents de codage en parallèle, il a constaté que c’était mentalement épuisant mais étonnamment efficace
- La majeure partie de la collection tools.simonwillison.net a été construite selon une approche classique de vibe coding, mais travailler en boucle avec des agents de codage pour produire un code de qualité production maintenable à long terme donne l’impression d’un processus totalement différent
Les pratiques d’ingénierie logicielle existantes que les LLM renforcent
- Tests automatisés : disposer d’une suite de tests robuste, complète et stable permet aux outils d’agent de codage d’aller vite ; sans tests, l’agent peut prétendre qu’une fonctionnalité marche sans vraiment la tester, ou de nouveaux changements peuvent casser des fonctions sans rapport
- Le développement piloté par les tests est particulièrement efficace avec des agents capables d’itérer dans une boucle
- Planification en amont : quand on commence par un plan de haut niveau avant de bricoler quelque chose, tout se passe beaucoup mieux, et c’est encore plus important avec des agents
- On peut d’abord itérer sur le plan, puis confier à l’agent l’écriture du code
- Documentation complète : comme les programmeurs humains, les LLM ne peuvent garder en contexte qu’une partie du code à la fois ; fournir la documentation pertinente leur permet d’utiliser les API d’autres zones sans devoir d’abord lire tout le code
- En écrivant d’abord une bonne documentation, le modèle peut construire une implémentation correspondante à partir de cette seule entrée
- Bonnes habitudes de gestion de versions : si un agent de codage a pu modifier des choses, il devient encore plus important de pouvoir annuler des erreurs et de comprendre quand et comment un changement a eu lieu
- Les LLM sont très bons avec Git : ils peuvent explorer l’historique eux-mêmes pour retracer l’origine d’un bug, et utilisent souvent mieux
git bisect que la plupart des développeurs
- Automatisation efficace : intégration continue, formatage et linting automatisés, déploiement continu vers des environnements de preview… tout cela aide aussi les outils d’agent de codage
- Les LLM facilitent l’écriture rapide de scripts d’automatisation, pour répéter ensuite une tâche avec exactitude et constance
- Culture de revue de code : si l’on est rapide et efficace en revue de code, travailler avec des LLM devient beaucoup plus agréable
- Si vous préférez écrire le code vous-même plutôt que relire la même chose écrite par quelqu’un d’autre (ou quelque chose d’autre), cela risque d’être difficile
- Une forme de management très étrange : obtenir de bons résultats d’un agent de codage ressemble, de manière presque inconfortable, au fait d’obtenir de bons résultats d’un collaborateur humain
- Il faut fournir des consignes claires, garantir le contexte nécessaire et donner des retours exploitables sur la production
- C’est bien plus facile qu’avec de vraies personnes parce qu’il n’y a pas à se soucier de les vexer ou de les décourager, mais l’expérience managériale existante s’avère étonnamment utile
- Un très bon QA manuel : au-delà des tests automatisés, il faut être vraiment compétent pour tester manuellement le logiciel, notamment en anticipant et en explorant les cas limites
- Solides compétences de recherche : il existe des dizaines de façons de résoudre un problème de code donné ; identifier la meilleure option et valider une approche a toujours été important, et cela reste un obstacle avant de laisser un agent écrire du vrai code
- Capacité à déployer vers un environnement de preview : quand un agent construit une fonctionnalité, disposer d’un moyen de la prévisualiser en toute sécurité, sans la déployer directement en production, rend la revue bien plus productive et réduit fortement le risque de livrer quelque chose de cassé
- Intuition sur ce qu’il faut externaliser à l’IA et ce qu’il faut traiter manuellement : à mesure que les modèles et les outils gagnent en efficacité, cette intuition continue d’évoluer
- Une grande partie du travail efficace avec les LLM consiste à garder une forte intuition sur les moments où ils s’appliquent le mieux
- Sens réactualisé de l’estimation : estimer la durée d’un projet a toujours été l’un des aspects les plus difficiles, mais aussi les plus importants, du rôle d’ingénieur senior, surtout dans les organisations où le budget et la stratégie dépendent de ces estimations
- Le codage assisté par l’IA rend cela encore plus difficile : des choses autrefois longues deviennent beaucoup plus rapides, mais les estimations dépendent désormais de nouveaux facteurs que nous sommes encore tous en train d’appréhender
La nature et l’importance du vibe engineering
- Pour réellement tirer parti de ces nouveaux outils, il faut jouer au plus haut niveau, ce qui implique :
- ne pas seulement être responsable de l’écriture du code, mais aussi de
- la recherche sur l’approche,
- les décisions d’architecture de haut niveau,
- la rédaction des spécifications,
- la définition des critères de réussite,
- la conception des boucles d’agents,
- la planification du QA,
- la gestion d’une troupe toujours plus nombreuse d’étranges stagiaires numériques enclins à tricher dès qu’on leur en laisse l’occasion,
- et passer beaucoup de temps en revue de code
- Presque tout cela correspond déjà aux caractéristiques d’un ingénieur logiciel senior
- Les outils IA amplifient l’expertise existante : plus vous avez de compétences et d’expérience comme ingénieur logiciel, plus vous pouvez obtenir des résultats rapides et meilleurs en travaillant avec des LLM et des agents de codage
« Vibe engineering », vraiment ? : réflexion sur le choix du terme
- Le nom « vibe engineering » est-il idiot ? Probablement, et la notion de « vibe » dans l’IA semble déjà un peu usée à ce stade, tandis que le « vibe coding » lui-même est souvent employé de façon méprisante par de nombreux développeurs
- Mais je suis prêt à réapproprier la vibe pour quelque chose de plus constructif
- Je n’ai jamais aimé la distinction artificielle entre « codeur » et « ingénieur », qui m’a toujours semblé constituer une forme de barrière à l’entrée, mais dans ce cas précis, une petite barrière à l’entrée est exactement ce qu’il faut
- Le vibe engineering établit une distinction claire avec le vibe coding, et signale qu’il s’agit d’une autre manière, plus difficile et plus sophistiquée, de travailler avec des outils IA pour construire du logiciel de production
- J’aime le fait que cela puisse paraître insolent et controversé ; tout cet espace reste encore absurde à bien des égards
- Pendant que nous cherchons la façon la plus productive d’appliquer ces nouveaux outils, nous ne devrions pas nous prendre trop au sérieux
- J’ai déjà tenté d’imposer des termes comme programmation assistée par l’IA, avec un succès proche de zéro ; cette fois, frotter un peu de vibe dessus pour voir ce qui se passe n’est peut-être pas une mauvaise idée
- J’aime beaucoup le décalage évident entre « vibe » et « engineering », qui rend l’expression combinée ludiquement, et espérons-le mémorablement, contradictoire en elle-même
4 commentaires
Je crois savoir qu’ils avaient déjà essayé il y a quelque temps de lui donner un nom du genre « quel codage ? », sans succès, donc l’expression la plus appropriée me semble être l’AI pair programming.
Trouver un nom pour pouvoir prétendre : c’est moi qui ai inventé ce nom.
Quelqu’un avait appelé ça le codage augmenté (Augmented Coding), puis le terme a rapidement disparu.
Commentaires Hacker News
/yolodans Claude pour qu’il exécute des choses sans quasiment aucune consigne.Créer des appellations dénuées de sens ;