1. Le grand paradoxe de la vélocité par l’IA
L’émergence des agents générateurs de code promet une accélération sans précédent des développements. En pratique, la quantité de code produite explose. Cependant, cette prolifération s’accompagne d’un défi majeur : le rôle des développeurs et développeuses ne consiste plus à rédiger chaque ligne, mais à relire, vérifier et garantir la viabilité et la sécurité d’un système rendu imprévisible par l’usage des LLM. Sans garde-fous stricts, l’illusion de vitesse se transforme rapidement en dette technique et en failles applicatives.
2. L’équation moderne : Agent = Modèle + Harnais
Pour contenir cette masse de code généré, une nouvelle discipline s’impose : le Harness Engineering (ou l’ingénierie du harnais). Dans ce paradigme, un agent IA ne se résume pas à son modèle sous-jacent, mais à l’infrastructure déterministe qui le contrôle et canalise son comportement.
L’Équation du Harness Engineering :
Agent IA Performant = Modèle Probabiliste + Harnais de Sécurité (Skills, Craft & outils déterministes)
Le harnais de sécurité s’appuie sur une réadaptation des pratiques Craft, historiquement appelées pratiques du software Craftsmanship (TDD, BDD, Découper, prioriser, avancer en baby steps). Elles ne servent plus seulement à guider l’humain dans son écriture, elles deviennent un outil de pilotage et de contrôle automatisé sur l’agent IA.
3. La résurrection des techniques oubliées grâce à l’IA
Certaines techniques avancées de vérification étaient délaissées par manque de temps ou en raison de leur coût de mise en œuvre :
- La technique de Mutation Testing : Elle permet de mesurer l’efficacité réelle et la qualité de la suite de tests en injectant des fautes dans le code (appelés mutants de code). Un taux de couverture d’apparence parfait (100%) affiché par une IA masque souvent une couverture effective très faible. Par exemple, lors d’une expérimentation, nous avons obtenu un score à 13,82% pour un code généré par un agent IA sans Harness. Avec le Craft et le Harness Engineering, la couverture effective dépasse les 60% pour le même besoin généré. L’expérimentation est faite avec Github Copilot et Stryker outil de mutation testing.
- Le Property-Based Testing (PBT) : Plutôt que de rédiger manuellement des dizaines d’exemples pour les cas nominaux et ceux aux limites, cette technique génère des centaines d’entrées aléatoires pour vérifier les invariants du domaine métier. Ainsi nous écrivant des tests orientés métier même s’ils sont unitaires. Dans la conférence, je propose un exemple avec CsCheck une librairie de PBT pour les applications en C#.
Ces techniques, datant de plus de 20 ans, trouvaient peu de place dans le quotidien des équipes. Aujourd’hui, l’IA prend en charge l’effort fastidieux de rédaction des invariants et des cas d’usage, rendant ces pratiques extrêmement rentables et immédiatement opérationnelles, le tout en assurant une qualité optimale du code généré par IA.
Conclusion
L’IA ne signe pas la fin des pratiques Craft, elle en constitue au contraire le plus formidable accélérateur. En libérant du temps de rédaction brute, elle permet aux développeurs de se concentrer sur le Harness Engineering.