Comment les équipes d’ingénierie logicielle utilisent l’IA
(refactoring.fm)- Les outils de codage basés sur l’IA se multiplient rapidement et certains développeurs individuels obtiennent des résultats impressionnants grâce à l’IA, mais dans les équipes d’ingénierie réelles, les gains restent souvent modestes
- Deux raisons expliquent cet écart de résultats : « greenfield vs grande base de code », « solo vs multijoueur »
- L’auteur anticipe donc de nouveaux workflows de développement pour l’IA ainsi que les évolutions à venir :
- Beaucoup d’entreprises embauchent davantage d’ingénieurs — c’est particulièrement vrai des bonnes entreprises
- Le plus grand défi est celui des bases de code à grande échelle — là où se crée réellement la valeur
- Robot vs Iron Man — différence philosophique entre les outils IA
- Optimisation du bonheur des développeurs — quelles corvées l’IA peut-elle prendre en charge ?
- Le suivi du code généré par l’IA est un antipattern — ne pas céder à cette tentation
Causes de l’écart de performance
- Greenfield vs grande base de code
- La plupart des outils IA sont optimisés pour les nouveaux projets (greenfield)
- Leur utilité diminue sur des bases de code anciennes
- Solo vs multijoueur
- Les workflows IA actuels sont centrés sur le travail en solo
- Des problèmes apparaissent lors de la collaboration en équipe (conflits de merge, gestion de contexte complexe, etc.)
« Les workflows IA fonctionnent correctement quand on travaille seul, mais en équipe ils provoquent souvent des conflits et deviennent inefficaces. »
Les entreprises les plus performantes embauchent davantage d’ingénieurs
- L’idée selon laquelle les progrès de l’IA feraient baisser la demande en ingénieurs est erronée
- Quand l’IA augmente la productivité, cela entraîne au contraire une hausse des embauches d’ingénieurs, conformément au paradoxe de Jevons
-
Réactions des organisations face à l’adoption de l’IA
- Équipes de tête : l’adoption de l’IA accroît la productivité → embauche d’ingénieurs supplémentaires
- Équipes moyennes : aucun changement dans les embauches en raison de la bureaucratie et des coûts de coordination
- Équipes en bas de classement : la technologie n’est qu’un simple outil → réduction des équipes pour diminuer les coûts
Le plus gros problème : les bases de code à grande échelle
- L’IA excelle dans la résolution de problèmes algorithmiques, mais ses performances restent faibles sur le vrai travail de freelance
- Le principal facteur est le manque de contexte
- Manières de transmettre le contexte d’une base de code :
- Fine-tuning → imprévisible et coûteux
- Extension de la context window → difficile de garantir la précision
- RAG (Retrieval-Augmented Generation) → aujourd’hui l’approche la plus prometteuse
Un bon RAG est la clé du passage à l’échelle des outils de codage IA
Robot vs Iron Man : différence philosophique entre les outils IA
- Outils autonomes → fonctionnent comme des agents indépendants
- Reçoivent des ordres dans Slack et soumettent automatiquement des PR
- Exemples : Devin, Lindy
- Outils augmentés → l’humain pilote le travail et l’outil joue un rôle d’assistance
- Utilisés comme outils d’aide dans l’IDE, la PR finale étant soumise par un humain
- Exemples : Augment, Cursor
-
Quelle stratégie est la plus avantageuse ?
- Boucle de feedback → les outils augmentés corrigent les erreurs plus rapidement
- Scalabilité → les outils autonomes risquent d’accroître la complexité organisationnelle
- Approche centrée sur l’humain → les outils augmentés évoluent dans le sens d’un renforcement de l’humain
« L’IA ne doit pas créer une guerre des clones, mais des Avengers »
Optimiser le bonheur des développeurs
- Les équipes qui réussissent se concentrent non pas sur la productivité, mais sur le bonheur des développeurs
- Elles cherchent à utiliser l’IA pour réduire les tâches simples et pénibles (toil)
- Le toil que l’IA peut prendre en charge
- 1) Automatisation des tests
- L’IA rédige le code de test → réduction de la charge liée au code boilerplate
- La rédaction préalable des spécifications est davantage récompensée → facilite l’adoption du TDD
- 2) Automatisation de la documentation
- L’IA rédige les commentaires de code et les spécifications techniques → réduction de la charge de maintenance documentaire
- L’IA peut expliquer la structure et le fonctionnement du code → mais l’intention derrière l’écriture du code doit toujours être expliquée par un humain
- 3) Amélioration de la qualité du code
- Vérification possible du style de code et des vulnérabilités de sécurité
- Exemples d’outils IA : Augment, Packmind, Codacy
- 1) Automatisation des tests
Le suivi du code généré par l’IA est un antipattern
- Si l’IA travaille de manière autonome, il faut suivre ses résultats
- Mais si l’IA augmente les capacités humaines, distinguer le code IA du code humain n’a pas de sens
- Il est plus efficace de se concentrer sur la productivité et la satisfaction des développeurs
Points clés
- L’adoption de l’IA augmente les embauches d’ingénieurs → avec le paradoxe de Jevons, une hausse de productivité élargit l’emploi
- L’IA doit passer au mode multijoueur → nécessité de renforcer la collaboration en équipe
- Il faut résoudre le problème des bases de code massives → la fourniture de contexte est essentielle
- Les outils augmentés sont plus avantageux que les outils autonomes → l’humain pilote, l’IA assiste
- Optimiser le bonheur des développeurs → le bonheur compte plus que la productivité
- Retour du TDD → l’IA réduit la charge liée à l’écriture des tests
- Réduction de la charge documentaire → l’IA rédige automatiquement commentaires et spécifications techniques
- Amélioration de la qualité du code → l’IA contrôle le style et les problèmes de sécurité
- Le suivi du code IA n’a pas de sens → les résultats doivent être évalués à l’échelle de la productivité et de la satisfaction globales
1 commentaires
J’ai du mal à être d’accord avec le point 1.
C’est très souvent ce que je ressens. En effet, même si nous faisons des efforts pour recruter de bons ingénieurs dans une petite entreprise, ce n’est vraiment pas facile.