Mark Russinovich, directeur technique de Microsoft Azure, et Scott Hanselman, vice-président de la communauté des développeurs, ont rédigé un article affirmant que les ingénieurs logiciels seniors doivent encadrer les développeurs juniors pour empêcher les agents de codage d’IA de vider la future base de compétences de la profession.

L’article, intitulé Redefining the Engineering Profession for AI, repose sur plusieurs hypothèses, dont la première est que les assistants de codage agent « donnent aux ingénieurs seniors un coup de pouce à l’IA… tout en imposant un frein à l’IA aux développeurs en début de carrière (EiC) pour piloter, vérifier et intégrer les résultats de l’IA ».

Dans un précédent podcast sur le sujet, Russinovich a déclaré que ce principe de base – selon lequel l’IA augmente la productivité uniquement pour les développeurs seniors tout en la réduisant pour les juniors – est un « sujet brûlant dans tous nos engagements clients… ils disent tous qu’ils le voient dans leur entreprise ».

Le problème est que les agents IA peuvent prétendre avoir réussi alors qu’en réalité le code est mauvais, avec des problèmes tels que :

  • Bogues importants
  • Implémenter des algorithmes inefficaces
  • Duplication du code commun dans toute la base de code
  • Rejeter les plantages et les blocages comme étant non pertinents
  • Laisser le code de débogage derrière
  • Faire fonctionner le code pour des tests spécifiques mais pas généralement

Le document cite une condition de concurrence critique qu’un agent a tenté de résoudre en insérant un délai dans le code avec un Thread.Sleep, ce qui pourrait au mieux masquer le problème. Seul un ingénieur familiarisé avec le code de synchronisation a la confiance nécessaire pour « signaler les erreurs de l’agent », indique le journal.

Le problème est que l’action naturelle des organisations observant ce problème est d’embaucher moins de développeurs EiC. Un article de l’Université Harvard, cité par Rusinovich et Hanselman, a étudié l’impact de l’adoption de l’IA générative sur les offres d’emploi et a conclu que « l’emploi des juniors diminue fortement dans les entreprises adoptantes par rapport aux non-adoptantes, tandis que l’emploi des seniors reste largement inchangé ».

Le résultat logique est que « si les organisations se concentrent uniquement sur l’efficacité à court terme – en embauchant ceux qui peuvent déjà diriger l’IA – elles risquent d’évincer la prochaine génération de leaders techniques », affirment Russinovich et Hanselman dans le document.

Les deux dirigeants soutiennent que les grandes entreprises doivent continuer à embaucher des développeurs EiC, en acceptant qu’ils réduisent initialement la productivité, et en faisant de leur encadrement et de leur formation un objectif explicite. Dans une « organisation basée sur les précepteurs », des ingénieurs seniors s’associent aux développeurs EiC pour diriger les agents de codage de l’IA.

Une autre suggestion est que les assistants de codage pourraient avoir un « mode EiC » dans lequel l’agent effectue le coaching – bien que, étant donné les types d’erreurs agents identifiées par Russinovich et Hanselman, cela pourrait ne pas toujours fonctionner comme prévu.

Dans leur podcast, les deux dirigeants affirment également que les universités ne disposent pas du bon modèle pour enseigner l’informatique aux étudiants de premier cycle. « Il faut (certains) cours où l’utilisation de l’IA est considérée comme de la triche », a déclaré Russinovich.

Le document est présenté comme une opinion de Russinovich et Hanselman, et non comme une recherche officielle de Microsoft. « Alors que l’IA stimule le développement de logiciels, des exemples d’agents de codage frontalier présentant des comportements de type interne démontrent leurs limites », déclarent les deux hommes, reflétant une vision plus nuancée que celle donnée par la promotion incessante de l’IA de la part de leur entreprise.

Il n’est pas clair si Microsoft lui-même a suivi ces recommandations. En mai de l’année dernière, la société a révélé son intention de réduire ses effectifs, le génie logiciel subissant les réductions les plus importantes, et dans son podcast, Russinovich a fait remarquer « nous lançons un projet pilote à ce sujet chez Microsoft ». On a demandé à Hanselman sur LinkedIn si les ingénieurs seniors seraient désormais évalués sur leur impact humain ainsi que sur leur impact sur les produits, ce à quoi il a répondu : « C’est notre objectif ».

Pendant ce temps, les choses évoluent rapidement dans l’espace. Les agents de codage de l’IA sont susceptibles de s’améliorer et, selon un récent atelier sur le développement de l’IA organisé par Thoughtworks, les développeurs juniors bénéficient de certains avantages lorsqu’ils utilisent l’IA, car ils ont moins d’idées préconçues sur la manière dont le codage doit être effectué. ®

A lire également