Le post LinkedIn d'Addy Osmani, intitulé "Vibe-coding is not the same as AI-Assisted engineering", traite d'une distinction sémantique critique dans le paysage en pleine évolution du développement logiciel. Osmani soutient que confondre le "vibe coding" avec l'"AI-assisted engineering" professionnel risque de dévaloriser la discipline d'ingénierie et de donner aux nouveaux venus une image incomplète de ce qu'exige la construction de logiciels robustes et prêts pour la production.

Définir le Vibe Coding

Il définit le "vibe coding" comme une approche très créative et fluide où les développeurs interagissent avec l'IA via du prompting de haut niveau, en acceptant souvent les suggestions sans revue approfondie. Cette méthode privilégie la vitesse et l'expérimentation itérative, ce qui la rend idéale pour générer des prototypes, des MVP, des exercices d'apprentissage ou des "throwaway weekend projects". C'est un moyen puissant de construire une intuition et d'aplanir la courbe d'apprentissage des débutants, en privilégiant l'exploration plutôt que la correction et la maintenabilité essentielles aux applications professionnelles.

AI-Assisted Engineering : l'approche disciplinée

En contraste marqué, l'"AI-assisted engineering" est présentée comme l'intégration méthodique de l'IA dans un cycle de vie de développement logiciel mature. Ici, l'IA fonctionne comme un "multiplicateur de force", assistant les ingénieurs sur des tâches comme la génération de boilerplate ou l'ébauche de cas de tests. Point crucial : l'ingénieur humain conserve le contrôle total et la responsabilité de l'architecture, en relisant et comprenant méticuleusement chaque ligne de code généré par l'IA. Cette approche garantit un produit final sécurisé, scalable et maintenable, en augmentant des processus solides existants plutôt qu'en les remplaçant. Une augmentation de 30% de la vitesse de développement rapportée dans une équipe FAANG, citée dans un post Reddit ayant lancé la discussion, est attribuée à cette augmentation disciplinée, et non à l'abandon des principes d'ingénierie.

Risques et déformation

Osmani avertit qu'étiqueter des workflows disciplinés et augmentés par l'IA comme du "vibe coding" déforme la compétence et la rigueur du métier d'ingénieur. Pour les nouveaux entrants dans le domaine, cela nourrit l'illusion dangereuse qu'on peut simplement "prompter" son chemin vers un produit viable sans compréhension fondamentale du code ni des fondamentaux de l'ingénierie.

Enseignements clés et bonnes pratiques

Les enseignements du post et des commentaires renforcent le message : toujours partir d'un design solide, soumettre tout code généré par l'IA à une revue humaine rigoureuse, et traiter l'IA comme un outil incroyablement puissant de la boîte à outils d'ingénierie, pas comme une baguette magique. Comme l'a justement formulé un commentateur : "Utilisez l'IA comme un développeur junior : utile, mais jamais sans supervision." La charge de vérification du code généré par l'IA est significative et exige une supervision attentive pour prévenir dette technique, vulnérabilités de sécurité et problèmes de maintenabilité.

Une autonomie technique redéfinie

Au final, le post plaide pour une approche équilibrée et informée de l'IA dans le développement logiciel, où l'expertise humaine et les pratiques d'ingénierie établies restent primordiales, en exploitant l'IA pour améliorer la productivité dans un cadre structuré et responsable. La véritable autonomie technique consiste désormais à comprendre quand, quoi et pourquoi coder, plutôt que seulement comment coder.