Qu'est-ce que le Spec-Driven Development ?
La plupart des développements avec l'IA commencent de la même manière. Vous donnez un prompt court à un agent. Vous le regardez écrire du code. Cela semble rapide. Puis, vous réalisez que l'agent a construit la mauvaise chose. Vous passez une heure à corriger le tir.
L'agent n'a pas eu de mal à écrire le code. Il a eu du mal à comprendre votre intention.
Le Spec-Driven Development résout ce problème. Au lieu de demander du code par un prompt, vous créez d'abord une spécification. Cette spécification est un plan écrit. Vous corrigez le plan jusqu'à ce qu'il soit correct. Ce n'est qu'à ce moment-là que vous laissez l'agent construire.
De nouveaux outils comme AWS Kiro et GitHub spec-kit facilitent cette approche. Mais l'idée est ancienne. C'est simplement de la bonne ingénierie.
Une bonne spécification comprend trois parties :
• Exigences : Ce que fait la fonctionnalité et comment mesurer le succès. Cela décrit le comportement, pas le code. • Conception : Le plan technique. Cela inclut l'architecture, les modèles de données et les contraintes. • Tâches : De petites unités testables. Elles sont suffisamment simples pour qu'un agent puisse les terminer en une seule fois.
Chaque partie alimente la suivante. Les exigences guident la conception. La conception crée les tâches. Les tâches guident l'agent.
Par le passé, écrire du code était lent. Écrire des spécifications semblait être une perte de temps. Aujourd'hui, l'IA écrit du code en quelques minutes. Le goulot d'étranglement n'est plus la saisie. Le goulot d'étranglement est de décider exactement ce qu'il faut construire.
Une spécification déplace vos erreurs vers un stade peu coûteux. Une phrase erronée dans un document est facile à corriger. Une implémentation erronée dans une base de code est coûteuse à annuler.
Réviser du code est difficile. Vous devez faire de la rétro-ingénierie pour comprendre ce que l'auteur voulait dire. Réviser une spécification est facile. Vous vous mettez d'accord sur l'intention avant même que le moindre code n'existe.
Cette méthode vous aide également à passer à l'échelle. Vous pouvez confier différentes tâches à différents agents. La spécification agit comme un contrat pour les maintenir alignés.
Cette approche n'est pas toujours la solution.
- C'est excessif pour de petites corrections. Ne rédigez pas une spécification pour un changement d'une seule ligne.
- Les spécifications peuvent devenir obsolètes. Si le code change mais pas la spécification, celle-ci devient mensongère.
- Les agents n'obéissent pas toujours. Une spécification réduit la confusion, mais vous devez toujours réviser le résultat.
Utilisez une spécification pour clarifier votre intention. Utilisez-la pour détecter les erreurs tant qu'elles ne sont que des mots.
Source: https://dev.to/jcamarate/what-is-spec-driven-development-with-ai-coding-agents-56mc
Optional learning community: https://t.me/GyaanSetuAi