IA, TDD et pair programming - kata game of life
OĂč je fais un kata game of life en TDD et en pair programming avec l'IA
Le week-end du 10 novembre, c'Ă©tait Global Day Of Code Retreat. Impossible pour moi dây participer : jâai beaucoup trop dâenfants et dâoccupations đ .
Mais le 11 novembre, jâavais un peu de temps, et jâavais envie dâexpĂ©rimenter un truc qui me trottait en tĂȘte depuis un moment : faire du pair programming en TDD avec une IA gĂ©nĂ©rative.
đĄ Setup
- Kata Game of Life
- Cursor + Claude-Sonnet 3.5 (avec un abonnement pro, les quotas gratuits nâont pas tenu longtemps)
- Python
- Contraintes strictes : je pilote, lâIA code. Objectif : respecter au maximum les principes TDD (baby steps, fake it, refactoring systĂ©matique).
đĄ DĂ©roulĂ©
AprĂšs avoir prĂ©parĂ© lâenvironnement Python, jâai dĂ©marrĂ© avec Composer pour analyser le README et poser les contraintes. On a dĂ©fini une TODO list, puis attaquĂ© les premiers items en TDD.
đĄ Retour dâexpĂ©rience
â
Le résultat est plutÎt bon. On est allés au bout du kata et le code est fonctionnel.
â
LâIA force Ă ĂȘtre ultra-clair dans nos exigences. Il faut analyser, expliciter, reformuler⊠et tout ça par Ă©crit. Un excellent exercice.
â
Grosse nĂ©cessitĂ© de cadrage. LâIA a tendance Ă partir en roue libre et Ă proposer des solutions fonctionnelles mais mĂ©diocres. Sans recadrage constant (baby steps, petits tests, implĂ©mentations minimales), ça devient vite du spaghetti code.
â
QualitĂ© du code : ça dĂ©pend⊠Si on ne sait pas oĂč on va en termes dâarchitecture et de maintenabilitĂ©, le code dĂ©gĂ©nĂšre vite. Sans refactoring systĂ©matique, on accumule rapidement des dĂ©fauts qui rendent le tout ingĂ©rable (mĂȘme pour lâIA).
â
Elle ne sait pas toujours rĂ©soudre ses propres bugs. Ă plusieurs reprises, elle sâest enfermĂ©e dans une boucle oĂč elle corrigeait un test⊠sans vraiment le corriger. Il a fallu intervenir manuellement pour en sortir.
â
Erreurs basiques. Import manquants, réintroduction de bugs précédemment corrigés⊠des petites fautes qui peuvent ralentir la progression.
â
ProductivitĂ© ? Difficile Ă dire si jâaurais Ă©tĂ© plus rapide seul. Mais il y a une vraie plus-value Ă dĂ©lĂ©guer Ă lâIA tout ce qui est âboringâ ou rĂ©pĂ©titif, pour se concentrer sur le fond : les bons test cases, lâamĂ©lioration du designâŠ
đĄ Conclusion
Ce n'est qu'un kata, et un kata est assez peu représentatif de notre quotidien.
Mais j'ai apprécié l'exercice, et avec mon expérience, je me sens en contrÎle. L'outil m'aide, il ne me domine pas.
Mais je sens aussi que cela pourrait ĂȘtre assez facilement l'inverse. Comment gĂ©rer un contexte technique que je ne maĂźtrise pas ? Un contexte mĂ©tier qui n'est pas clair pour moi ? Si je n'ai pas d'idĂ©es claires sur l'architecture ou les exigences de qualitĂ© sur le code produit ?
Publié sur Linkedin https://www.linkedin.com/posts/remihuguet_quand-je-fais-un-kata-en-pair-programming-activity-7295705764273287169-f8e7