14 points par davespark 2025-10-27 | 1 commentaires | Partager sur WhatsApp

Ce billet soutient que le développement piloté par les spécifications, bien qu’il soit prometteur pour les tâches de codage avec des agents IA, échoue lorsqu’on tente de le déployer à grande échelle dans le contexte de produits globaux, en raison de l’ambiguïté des spécifications en langage naturel. Pour résoudre ce problème, l’auteur propose un système hiérarchique et évolutif de "spécifications vivantes" intégrant le code et l’IA conversationnelle, afin de créer une boucle de rétroaction autour des décisions produit, de réduire les divergences et de permettre un développement assisté par IA réellement efficace à grande échelle.

Principales raisons de l’échec du développement piloté par les spécifications à grande échelle

Le développement piloté par les spécifications traditionnel pose problème pour les spécifications de produits globaux pour les raisons suivantes :

  • Ambiguïté des spécifications en langage naturel : à grande échelle, les spécifications sont rédigées en langage naturel, donc imprécises et ambiguës. L’IA peut générer du code de manière cohérente à partir de ces spécifications, tout en s’écartant de l’intention du développeur. Par exemple, si l’on rédige la spécification d’un site web complet et qu’un agent IA le construit en deux jours, le résultat peut être conforme à la spécification tout en étant à côté de l’intention initiale. Si l’on tente de résoudre cela en ajoutant sans fin des sections détaillées pour lever chaque ambiguïté, le document devient excessivement verbeux, perd l’intérêt même de l’écriture d’une spécification et finit par ressembler à un langage formel qui ne diffère guère du code.

  • Absence de contexte partagé et de compréhension du monde : l’IA dispose d’un vaste savoir issu de données publiques, mais elle ne comprend pas les pratiques propres à l’entreprise, les règles de la codebase ni les "manières de travailler" internes. Les humains, eux, accumulent cela par essais et erreurs, revues de PR, réunions et conversations informelles. Un document de contexte unique ne suffit pas à capturer cette réalité.

  • Inefficacité du traitement des clarifications : les humains résolvent efficacement uniquement les ambiguïtés pertinentes grâce à leur contexte partagé — par exemple, ils ne demandent pas de précisions sur des éléments déjà évidents comme le choix d’une bibliothèque. L’IA, faute de percevoir ces nuances de contexte, pose soit des questions inutiles, soit dispose encore de capacités de clarification trop immatures. Cela la transforme en "stagiaire trop ambitieux", qui a besoin d’un guidage constant.

À cause de ces problèmes, le développement piloté par les spécifications à l’échelle globale est irréaliste sans mécanismes supplémentaires et ne parvient pas à égaler la fluidité de la collaboration humaine.

Exemples concrets
  • Scénario extrême de développement entièrement piloté par les spécifications : un développeur rédige la spécification d’un site web complet, puis une IA produit le produit fini en deux jours, mais le résultat ne correspond pas à l’intention à cause des ambiguïtés.
  • Processus d’apprentissage humain : un développeur apprend les normes de l’entreprise via ses premiers changements de code, les revues de PR, les réunions et les conversations de couloir, alors que l’IA n’accumule pas ce savoir implicite.
  • Codebase vieillissante : dans un workflow traditionnel, les développeurs lisent et modifient le code sans spécifications, ce qui finit par produire des "patchwork quilts" incohérents, tandis que des décisions produit perdues se font "piétiner".

L’auteur renvoie à un billet précédent (à propos du roaming RAG) pour souligner que l’IA est habile pour naviguer dans des structures hiérarchiques de liens. Il ne présente pas d’étude de cas formelle, mais surtout des exemples hypothétiques et explicatifs.

Solution proposée

Le billet propose une solution connectée centrée sur la gestion de l’ambiguïté, la construction du contexte et l’intégration du code :

Activer la clarification par un échange conversationnel
  • Mettre en place des interactions de va-et-vient entre l’IA et le développeur (par exemple via une expérience de chat) pour identifier et clarifier les ambiguïtés des spécifications. Sur les petites tâches, l’IA peut générer plusieurs versions d’implémentation à partir de la spécification afin de faire apparaître les ambiguïtés, puis les comparer et en discuter avec le développeur.
Construire la vision du monde de l’agent grâce à des spécifications hiérarchiques
  • Utiliser des spécifications globales à structure hiérarchique pour comprendre les normes de l’entreprise et de la codebase. Au lieu d’un unique document géant, relier une spécification principale à des sous-spécifications :
    • Des spécifications par fichier, strictement liées à la structure du code, comme une version agrégée par répertoire.
    • Un style wiki en forme libre, tout en évitant une complexité excessive.
  • Tirer parti de la capacité de l’IA à explorer les liens (comme mentionné dans le billet précédent).
Le rôle du code comme spécification ultime
  • Traiter le code existant comme une spécification claire de niveau feuille pour les hypothèses de bas niveau. Au lieu de viser une régénération complète depuis une spécification maître, orienter les changements à partir de la codebase actuelle. Cela revient à reconnaître que le langage naturel ne peut pas garantir exactement le même résultat à chaque fois, et à éviter d’exiger une précision impossible.
Spécifications vivantes : usage et évolution
  • Faire des spécifications des "documents vivants" qui évoluent avec la codebase :
    • L’IA explore les spécifications globales pour aligner l’implémentation, et peut mieux préserver les décisions produit qu’un workflow humain.
    • Les développeurs extraient les informations pertinentes des spécifications en dialoguant avec l’IA, sans avoir à tout lire ; les divergences sont signalées lors du cadrage.
    • Les changements de code déclenchent des mises à jour des spécifications : les modifications sont comparées à la spécification existante puis éditées, et les changements de spécification sont inclus dans la PR.
  • Avantages : meilleure compréhension de l’impact des changements pour les ingénieurs, participation accrue des product managers grâce à des spécifications plus lisibles et modifiables, et possibilité pour la direction d’interroger l’évolution du produit. L’IA automatise ainsi le principal problème de la documentation traditionnelle : elle n’est pas mise à jour.
Conclusion et recommandation

L’avenir du développement piloté par les spécifications ne réside pas dans la perfection de spécifications en langage naturel, mais dans des systèmes capables de gérer l’ambiguïté grâce au dialogue, au contexte hiérarchique et au code. La véritable percée, ce sont des spécifications vivantes maintenues par l’IA, qui créent une boucle de rétroaction permettant de préserver les décisions produit, de maintenir le contexte et d’effacer l’écart entre spécification et implémentation. Recommandation : adopter des spécifications hiérarchiques et évolutives intégrées au code et à l’IA conversationnelle, pour mettre en place des workflows IA extensibles capables de dépasser le développement humain traditionnel.

1 commentaires

 
raykim 2025-10-28

On a vraiment l’impression d’un post pondu en faisant tourner GPT.