- Il existe deux grands schémas d’utilisation de l’IA chez les développeurs
- Bootstrappers :
- Ils utilisent des outils comme Bolt, v0 ou des IA de type screenshot-to-code pour générer rapidement un prototype initial.
- En partant d’un design ou d’un concept, ils s’appuient sur l’IA pour créer une base de code initiale et développer un prototype fonctionnel en quelques heures ou quelques jours
- Itérateurs :
- Ils utilisent au quotidien des outils comme Cursor, Cline, Copilot ou WindSurf pour l’autocomplétion de code, les refactorings complexes, les tests et la génération de documentation
Différences d’usage de l’IA entre développeurs expérimentés et débutants
- Développeurs expérimentés : ils refactorisent en continu le code proposé par l’IA, gèrent les cas limites, renforcent les définitions de types et réexaminent les choix d’architecture
- Développeurs débutants : ils ont tendance à accepter telle quelle la sortie de l’IA, avec le risque de produire un code « château de cartes » susceptible de s’effondrer en conditions réelles
Le paradoxe des outils d’IA : le paradoxe de la connaissance
- Développeurs expérimentés : ils utilisent l’IA pour accélérer des tâches qu’ils maîtrisent déjà
- Développeurs débutants : ils essaient d’utiliser l’IA pour apprendre quoi faire
- Résultat : l’efficacité de l’usage de l’IA varie fortement selon le niveau de compétence
Le problème des 70 % quand des non-spécialistes utilisent des outils de code par IA
- Progression initiale : avec des outils d’IA, il est possible d’implémenter rapidement 70 % des fonctionnalités voulues
- Les 30 % restants : en essayant de corriger de petits bugs, de nouveaux problèmes apparaissent, et la tentative de les résoudre peut déclencher un cercle vicieux qui en crée encore davantage
Stratégies pour utiliser efficacement les outils d’IA
- Le modèle du brouillon IA : générer une implémentation de base avec l’IA, puis la relire et la refactoriser manuellement
- Utiliser l’IA comme outil d’apprentissage : comprendre le code généré par l’IA grâce à un dialogue continu, apprendre en parallèle les concepts fondamentaux de la programmation et construire progressivement ses connaissances
- Reconnaître les limites de l’IA : les outils d’IA sont utiles pour prototyper, faciliter l’apprentissage et valider des idées, mais développer un logiciel maintenable et prêt pour la production exige toujours de véritables connaissances en ingénierie
L’essor de l’ingénierie logicielle agentique
- Systèmes agentiques : ils évoluent au-delà de la simple réponse à des commandes, vers des systèmes capables de planifier, d’exécuter et d’itérer
- Perspectives d’avenir : l’IA ne remplace pas les développeurs ; elle évolue vers un rôle de collaborateur de plus en plus proactif, capable de résoudre des problèmes de manière autonome tout en respectant l’orientation et l’expertise humaines
- L’IA est déjà utile pour implémenter des schémas connus, prototyper rapidement des idées et explorer différentes approches
- Elle automatise les tâches de code répétitives et routinières, ce qui permet de se concentrer sur des problèmes plus intéressants
Points de vigilance lors de l’utilisation d’outils d’IA
- Importance de l’expérience utilisateur : l’IA permet de créer rapidement une démo, mais si l’on ne traite pas avec soin les messages d’erreur, les cas limites ou les états de l’interface rencontrés par les utilisateurs réels, cela peut nuire à leur expérience
- Le retour de l’artisanat :
- L’IA a accéléré le développement logiciel, mais il existe un risque de perdre l’art de créer des expériences d’une vraie qualité grand public.
- Les outils d’IA peuvent prendre en charge les tâches de code routinières afin d’aider les développeurs à se concentrer sur les détails qui comptent vraiment.
Conclusion
- Rôle de l’IA :
- L’IA ne sert pas seulement à écrire plus de code plus vite ; elle aide à construire de meilleurs logiciels
- L’IA n’améliore pas de façon spectaculaire la qualité logicielle.
- Les aspects les plus difficiles du développement logiciel requièrent toujours le jugement humain.
- L’IA permet d’explorer rapidement de meilleures solutions, mais elle ne peut pas remplacer de bonnes pratiques logicielles.
- Responsabilité humaine : utiliser l’IA avec discernement pour préserver les principes d’ingénierie et améliorer la qualité des logiciels reste une responsabilité humaine
12 commentaires
C’est bien d’utiliser la technologie, mais il y a beaucoup trop de gens qui lui délèguent jusqu’à leur réflexion ; ça se voit encore davantage, surtout quand on intervient dans des formations, et ça m’inquiète. Honnêtement, je n’ai pas vraiment envie de travailler avec des gens comme ça.
C’est peut-être proche du débat selon lequel les IDE rendent les développeurs moins bons…
J’en ai assez de corriger le code IA généré par les clients
Quand l’IA commence à prendre des décisions, il semble ne plus y avoir de réponse.
Quand on donne du feedback à l’IA, on a l’impression qu’elle s’améliore… puis, à un moment, elle se met à tout casser. Il faut savoir repérer cet instant. Et quand il arrive, il faut choisir entre abandonner l’IA ou repartir de zéro.
Comment traduire naturellement « production-ready » ?
au niveau de préparation pour un service en production
au niveau d’un produit fini
Prêt pour le lancement !
J’ai tendance à traduire cela par « publiable » ou « prêt à être publié ».
« Prêt à être lancé », ça me paraît bien !
« prêt pour le déploiement » (par exemple pour un usage réel ou à destination des clients), ça vous semblerait approprié ?
Qu’en est-il de celui qui a été validé en conditions réelles ?
Il me semble qu’on utilise souvent l’expression « battle tested » pour parler d’une validation en conditions réelles.
Avis Hacker News
L’IA, comme de nombreux outils par le passé, a cherché à remplacer une partie de la programmation. Mais le travail essentiel exige toujours un cerveau humain
L’IA ressemble à un développeur junior enthousiaste dans l’équipe
Il a été possible de développer rapidement de nouveaux outils en utilisant des outils d’IA
Pour les développeurs juniors, l’IA est une arme à double tranchant
Le principe « faire confiance, mais vérifier » est important
csscolorparserde Rust à PythonL’IA peut écrire du code rapidement, mais elle n’accélère pas le processus d’apprentissage
Copilot échoue sur les tâches complexes
La GenAI peut fournir des résultats approfondis pour des solutions avec des exigences bien connues
Il est important de vérifier le travail de l’IA
Il est en pratique difficile de rencontrer des personnes dont la productivité a fortement augmenté grâce à l’IA