19 points par spilist2 2025-05-16 | 4 commentaires | Partager sur WhatsApp

Vibe coding = sous-traiter à l’IA

Le vibe coding consiste, au fond, à confier le développement d’un programme à l’IA.

Quand on repense à l’expérience de la sous-traitance de développement, on remarque que les bons commanditaires font bien les choses suivantes :

  1. définir le travail à réaliser pour résoudre leur problème ;
  2. communiquer de façon à ce que le développeur puisse bien le comprendre ;
  3. fournir les ressources nécessaires pour bien construire le programme ;
  4. vérifier que le programme réalisé exécute bien le travail comme prévu ;
  5. dans ce processus, apprendre du développeur ce qu’ils ne connaissent pas afin de pouvoir progressivement le faire eux-mêmes.

Si on transpose cela du point de vue d’un vibe coder :

  1. définir le PRD et le user flow ;
  2. utiliser de bons prompts et de bonnes consignes (Cursor Rules, etc.) ;
  3. repérer ce qui s’écarte de l’intention et lancer des tests automatisés ;
  4. apprendre en échangeant avec l’IA.

Alors, qu’en est-il du point 3 ? On peut y réfléchir sous deux angles du programme :

  • D’abord, un programme doit être exécuté quelque part. → choix de l’environnement d’exécution et de déploiement
  • Ensuite, un programme est un ensemble de code qui « traite une entrée pour produire une sortie ». → fourniture de données et d’API

Un programme doit être exécuté

  • Dans la sous-traitance de développement, la responsabilité du développeur s’arrête généralement à l’implémentation du code, tandis que le déploiement et l’exploitation relèvent du commanditaire.
    • En revanche, le développeur fournit en général un guide pour permettre au commanditaire d’exécuter le programme.
  • En tant que commanditaire, si l’on indique à l’IA l’environnement dans lequel exécuter et déployer le code, elle s’en sort très bien.
    • C’est encore plus vrai pour du code qui fonctionne dans un navigateur web.
  • Autrefois, même un script très simple comme 'supprimer une partie de la syntaxe d’un document Markdown avec une expression régulière' n’était pas facile à exécuter ou déployer pour un non-développeur.
  • Aujourd’hui, avec Claude Artifacts ou Gemini Canvas, on peut créer et lancer en un instant son propre petit programme. Et si l’on veut que d’autres l’utilisent aussi, il suffit de le créer et le déployer avec Lovable — le tout gratuitement et en quelques instants.
  • Le vibe coding ne signifie pas forcément qu’il faut créer une « app ». Tant qu’un programme résout mon problème et réduit les tâches répétitives, peu importe qu’il s’agisse d’une app, d’un script, de GPTs ou d’un prompt.

Les API qui rendent les programmes plus utiles

  • Mais les petits programmes ont leurs limites.
    • Un Markdown remover n’est connecté ni à une base de données, ni à une API, ni à un LLM.
    • L’utilisateur doit donc saisir lui-même le texte, puis copier lui-même le texte généré pour le coller ailleurs.
  • Et si l’objectif de l’utilisateur était plutôt de « nettoyer un texte rédigé dans Notion pour le publier sur les réseaux sociaux » ?
    • Entrée : il suffit de saisir le lien vers la page Notion
    • Traitement : le texte récupéré est envoyé à un LLM pour être résumé dans un style adapté aux réseaux sociaux, puis la syntaxe Markdown est supprimée
    • Sortie : après vérification et approbation du texte, il est publié automatiquement sur mon compte de réseau social
  • En échange d’un temps de réponse plus lent et d’une moindre polyvalence, cela réduirait fortement le temps et l’énergie que l’utilisateur doit consacrer à cette tâche. En d’autres termes, pour un objectif précis, le programme devient plus « utile ».
  • Au final, l’utilité d’un programme dépend de sa capacité à réduire la part de travail que l’utilisateur doit encore faire lui-même en matière d’entrée, de traitement et de sortie.
    • automatiser l’entrée ;
    • complexifier le traitement ;
    • automatiser la sortie.
  • Dans un programme classique, les API permettent (autrement dit, par connexion à d’autres programmes) d’automatiser les entrées et sorties ainsi que d’enrichir le traitement.
    • Entrée : obtenir l’autorisation Notion, appeler l’API Notion et récupérer le contenu d’une page
    • Traitement : envoyer le contenu de la page Notion à une API de LLM avec un system prompt afin d’obtenir une réponse adaptée aux réseaux sociaux
    • Sortie : obtenir l’autorisation Threads, appeler l’API du réseau social et publier le post
  • Pourtant, ce n’est pas une tâche facile, même pour un développeur expérimenté. L’attribution des autorisations est notamment compliquée.
  • Peut-on rendre cela plus simple ?

Les outils d’automatisation et MCP qui simplifient les intégrations API complexes

  • Avec des outils d’automatisation comme Zapier ou Make, il n’est pas nécessaire d’intégrer soi-même les API.
    • Exemple : lorsqu’un nouvel élément est ajouté à une base Notion -> lancer ChatGPT -> puis publier sur Instagram via un Zap
  • À l’origine, pour appeler l’API de publication d’Instagram, il faut créer une application dédiée et même la faire valider.
  • Dans Zapier ou Make, l’application de publication Instagram existe déjà, et tout le flux d’autorisation et d’échange de données est déjà implémenté. Il n’est donc plus nécessaire de gérer soi-même cette complexité des permissions.
  • Mais pour certaines personnes, même construire ce type de séquence « ceci puis cela » peut rester difficile ou fastidieux. C’est là qu’interviennent des choses comme MCP/A2A, qui permettent à ces personnes de tout faire via un chatbot LLM.
  • De la même manière qu’un programme classique peut faire plus qu’une logique simple grâce aux API, un programme de type chatbot LLM peut lui aussi, via MCP, se connecter à d’autres programmes et faire plus qu’une simple sortie de texte, d’image ou de voix.
    • Cela veut dire que, dans Claude, on peut demander : « récupère ma page Notion, résume-la, puis publie-la sur Instagram ».
  • Bien sûr, pour cela, il faut connecter les serveurs MCP appropriés (Notion, Instagram) au client MCP (Claude).
    • Le rôle principal d’un serveur MCP est d’appeler à la place de l’utilisateur les API via des tools. Or Notion dispose déjà d’un serveur MCP officiel, mais pas Instagram.
    • Dans ce cas, comment Claude appelle-t-il l’API Instagram ?
  • C’est là que Zapier revient en scène. En passant par le serveur MCP fourni par Zapier ou Make, il devient possible de publier sur Instagram.
  • Autrement dit, connecter à un chatbot LLM un outil d’automatisation via MCP — surtout un outil disposant déjà de nombreuses intégrations — le rend extrêmement puissant.

Le potentiel et les limites de MCP

  • Vu sous cet angle, on pourrait se demander pourquoi utiliser MCP.
    • Car presque toutes les tâches réalisables aujourd’hui avec un chatbot + MCP peuvent aussi être faites avec un outil d’automatisation.
  • Mais l’auteur estime que le potentiel de MCP est énorme pour trois raisons :
    1. une interface pratique (un assistant chatbot qui s’occupe de tout, n’est-ce pas le programme ultime ?) ;
    2. une intervention de l’utilisateur plus pratique pour les tâches sensibles ;
    3. la possibilité non seulement d’automatiser des actions à effectuer sur son PC local, comme le contrôle du système de fichiers ou du navigateur, mais aussi de fournir davantage d’informations, comme des ressources ou des modèles de prompt.
  • L’usage de MCP implique aussi plusieurs points d’attention.
    • Plus on délègue de choses à MCP, plus il faut être vigilant sur la sécurité. C’est pourquoi un serveur MCP distant officiel est plus sûr qu’un serveur local.
    • Si l’on donne trop d’outils MCP au LLM, l’outil souhaité risque de ne pas être exécuté, et comme toutes les définitions d’outils passent dans les tokens d’entrée, le coût et le temps des appels au LLM augmentent aussi.
    • La part d’aléatoire propre aux LLM doit également toujours être prise en compte dans les services commerciaux.
  • Au fond, qu’il s’agisse de connecter des API à son programme, de concevoir un flux d’automatisation ou d’ajouter MCP à un chatbot LLM, on fait toujours la même chose : « fais mon travail à ma place ».
  • Inutile de stresser parce que des mots-clés comme Make ou MCP explosent en popularité. Il suffit de créer, avec la méthode qui nous convient, un programme qui fasse notre travail à notre place, en comprenant progressivement les avantages et limites de chaque approche.

En résumé

  • Le vibe coding consiste à confier à l’IA la sous-traitance du développement d’un programme.
  • Dès lors qu’il exécute correctement mon travail à ma place, une web app, un snippet de code ou un prompt peuvent tous devenir des programmes utiles.
  • Pour qu’un programme devienne plus utile, il faut des connexions API afin d’automatiser les entrées/sorties et d’enrichir le traitement.
  • Les outils d’automatisation résolvent à notre place la complexité des connexions API.
  • Un programme de type chatbot LLM peut lui aussi devenir plus utile grâce à une connexion MCP. En particulier, connecter un serveur MCP fourni par un outil d’automatisation est très puissant.
  • Il n’est pas nécessaire d’utiliser uniquement l’API, l’automatisation ou MCP ; les combiner rend les choses plus simples et plus puissantes (ex. : n’ajouter à Claude que le MCP Notion, puis configurer dans Zapier un flux Notion vers Instagram pour automatiser la publication).
  • En tenant compte des avantages et des limites, construisons, avec l’IA, des programmes adaptés à nos besoins pour résoudre nos propres problèmes.

4 commentaires

 
iolothebard 2025-05-17

Avec le vibe coding seul, on ne peut pas vraiment parler de sous-traitance. En sous-traitance, on valide à l’échelle d’un projet, alors qu’avec les agents de codage IA actuels, il faut valider à une échelle plus fine, celle de la tâche.

S’il s’agissait vraiment de sous-traitance, je devrais pouvoir confier le travail et passer à autre chose… mais pour l’instant, il faut encore les surveiller beaucoup trop souvent. Comme un développeur junior intelligent mais maladroit…

D’ici peu… sans aller jusqu’à la sous-traitance, je me dis qu’ils pourront peut-être travailler comme une petite équipe de développement… Donner des consignes, relire régulièrement, corriger… mais j’ai l’impression qu’on n’en est pas encore là.

Ou peut-être que c’est simplement moi qui manque de vibe…

 
ifmkl 2025-05-16

https://tech.kakao.com/posts/700 En lisant ce billet, j’avais trouvé que c’était un bon exemple de Vibe Coding, et j’ai l’impression que le contexte est assez similaire. Je partage moi aussi votre point de vue sur ce que vous avez écrit.

 
spilist2 2025-05-16

Merci, ça m’a permis de lire un article intéressant !

 
spilist2 2025-05-16

Alors, le 3 ? -> Il s’agit du support des ressources.

J’avais numéroté ci-dessus 1, 2, 4, 5, mais en Markdown cela a été automatiquement converti en 1, 2, 3, 4.