Retour d’expérience : Kiro IDE testé en conditions réelles
Intégration dans un projet existant : résultat mitigé
La première mise à l’épreuve a consisté à intégrer Kiro dans un projet existant sans lui donner d’explication particulière. L’outil a correctement détecté l’architecture générale ( un backend en FastAPI, un frontend Angular, une base de données et un déploiement orchestré ), mais a échoué à reconstituer le fonctionnel à partir du code seul. Les spécifications produites étaient vagues, souvent hors sujet, et la liste de tâches contenait des actions déjà réalisées dans le projet. En clair, Kiro essayait de remplir son pipeline, quitte à inventer des besoins.
Lors d’un deuxième test, le même projet lui a été présenté avec un briefing détaillé. Cette fois, le design technique généré était précis et fidèle à la réalité. Les spécifications étaient plus pertinentes, mais le problème de la création compulsive de tâches persistait : même avec un contexte clair, Kiro continue à produire des items inutiles, simplement parce que son pipeline l’exige.
Un troisième test a consisté à reprendre les spécifications produites par Kiro, les enrichir, supprimer les redondances et préciser les besoins, puis à lui demander de régénérer la liste des tâches. Le résultat était plus structuré, mais encore trop volumineux. Certaines tâches restaient déjà implémentées, et l’agent, en les déroulant, se rendait parfois compte en cours de route qu’elles étaient inutiles… tout en poursuivant quand même, installant par exemple des dépendances en doublon ou choisissant des versions obsolètes.
Ajout de fonctionnalités ciblées : intégration d’une authentification Google
Parmi les tâches demandées, l’intégration d’une authentification Google côté frontend et la sécurisation des routes côté backend ont servi de bon test. Kiro a été capable de modifier le design et la liste des tâches pour y intégrer cette fonctionnalité, mais plusieurs problèmes sont apparus : il a remplacé des bibliothèques récentes par des versions datées, a réécrit des blocs déjà corrects, et a généré des diffs Git disproportionnés par rapport aux changements réels.
Cette tendance à “refactorer” tout un fichier pour une modification mineure complique la relecture et la gestion du code. Elle révèle aussi un comportement typique des LLMs actuels : ils privilégient la cohérence interne du fichier généré à la minimisation de l’impact dans un projet existant.
Création d’un projet from scratch : quand l’IA sur-produit
Le cinquième test a été réalisé sur un projet vide, avec pour objectif de créer une application Next.js intégrant React et Chart.js. L’agent a compris la demande, mais a produit des spécifications disproportionnées pour un simple proof-of-concept, générant plusieurs pages non demandées, ajoutant des formulaires et du texte inutile, et installant des bibliothèques qui n’étaient pas prévues.
Le code produit était très défensif, avec des vérifications partout, même là où elles n’étaient pas nécessaires dans le contexte du projet. Ce comportement reflète probablement l’entraînement sur des librairies open source, où le code doit être robuste pour des usages variés, mais devient inutilement lourd dans des projets dont le périmètre est maîtrisé.