IA générative dans la programmation : des bénéfices surestimés ?
Une société spécialisée dans l'analyse des projets d'ingénierie ne voit pas d'avantages majeurs à l'usage de l'IA dans la programmation. D'autres sont plus optimistes soulignant les apports des assistants, lorsqu'ils sont bien employés.
PublicitéLes assistants de programmation ont été un cas d'utilisation précoce de l'IA générative en entreprise, mais les améliorations de productivité promises ne sont pas à la hauteur - si tant est qu'elles existent. En effet, se nombreux développeurs affirment que les assistants de codage les rendent plus productifs, une étude récente, basée sur la mesure précise de ces gains supposés, se montre bien plus réservée. Ne décelant aucun progrès significatif. Selon cette étude d'Uplevel, société qui fournit des analyses pour les responsables d'équipes d'ingénierie, l'utilisation de GitHub Copilot introduit également 41 % de bogues supplémentaires.
L'étude a mesuré le temps de cycle des pull requests, c'est-à-dire le temps nécessaire pour fusionner le code dans un dépôt, et leur nombre. Et ne décèle aucune amélioration significative pour les développeurs utilisant Copilot. En utilisant les données générées par ses clients, Uplevel a comparé la production d'environ 800 développeurs utilisant GitHub Copilot sur une période de trois mois à un niveau de référence, basé sur une période de trois mois avant l'adoption de cet outil.
Des assistants à l'usage déjà généralisé
En plus d'évaluer la productivité, l'étude examine les facteurs de burn-out des développeurs et estime que GitHub Copilot n'améliore en rien la situation sur ce terrain. Le temps de travail passé en dehors des heures normales a diminué à la fois tant pour le groupe de contrôle et les utilisateurs de l'assistant, mais il a diminué davantage lorsque les développeurs n'utilisaient pas Copilot.
L'étude d'Uplevel a été motivée par la curiosité suscitée par les affirmations selon lesquelles les assistants de codage à base d'IA sont appelés à devenir omniprésents, explique Matt Hoffman, chef de produit et analyste de données au sein de l'entreprise. Selon une enquête de GitHub, publiée en août, 97 % des ingénieurs logiciels et développeurs utilisent déjà des assistants de programmation.
Un représentant de GitHub Copilot n'a pas commenté l'étude d'Uplevel, mais a fait référence à une autre enquête montrant que les développeurs étaient capables d'écrire du code 55 % plus rapidement en utilisant un assistant. Uplevel s'attendait également à des gains de productivité en lançant son étude, souligne Matt Hoffman. « Nous pensions que le temps de cycle des pull requests diminuerait, explique-t-il. « Nous pensions que les développeurs seraient en mesure d'écrire davantage de code, et que le taux de défauts pourrait diminuer du fait de l'utilisation de ces outils d'IA générative pour aider à réviser le code avant publication ». Le responsable d'Uplevel reconnaît toutefois qu'il existe peut-être d'autres moyens de mesurer la productivité des développeurs que le temps de cycle et le débit des pull requests, mais considère que ces paramètres constituent une mesure solide de la productivité des développeurs. Pour autant, Uplevel ne suggère pas aux entreprises de cesser d'utiliser les assistants de programmation, car ces outils progressent rapidement.
PublicitéPlus de temps pour vérifier le code généré
Sur le terrain, les équipes de développement font état de résultats mitigés. Les développeurs de Gehtsoft USA, une société de développement de logiciels, n'ont pas constaté de gains de productivité importants avec les assistants basés sur des grands modèles de langage (LLM), explique Ivan Gekht, Pdg de la société. Gehtsoft a testé les assistants de codage dans des environnements de type bac à sable, mais ne les a pas encore utilisés pour les projets de ses clients. « Il devient de plus en plus difficile de comprendre et de déboguer le code généré par l'IA, et cette révision devient si gourmande en ressources qu'il est plus facile de réécrire le code à partir de zéro que de le réparer », dit Ivan Gekht. Selon lui, lorsque différentes parties du code sont développées à l'aide de différents prompts, chaque nouvelle itération du code généré par l'IA devient de moins en moins cohérente.
« L'utilisation des LLM pour améliorer la productivité nécessite à la fois que le LLM soit compétitif par rapport aux capacités humaines et que l'utilisateur sache comment utiliser le LLM le plus efficacement possible. Le LLM ne possède ni pensée critique, ni conscience de soi, ni capacité de réflexion », souligne le Pdg. Et d'ajouter qu'il existe une réelle différence entre l'écriture de quelques lignes de code et le développement de logiciels à part entière. « Coder, c'est comme écrire une phrase, alors que développer, c'est comme écrire un roman », illustre Ivan Gekht.
« Le développement de logiciels est constitué à 90 % de fonctions cérébrales - comprendre les exigences, concevoir le système et prendre en compte les limites et les restrictions, reprend le dirigeant. Convertir toutes ces connaissances et cette compréhension en code n'est que la partie la plus simple du travail. » À l'instar de l'étude d'Uplevel, Ivan Gekht considère également que les assistants d'IA introduisent des erreurs dans le code.
Des gains mesurables pour certains
L'expérience des assistants de codage chez Innovative Solutions, un fournisseur de services cloud, est très différente. L'entreprise constate des gains de productivité importants grâce à des assistants de codage tels que Claude Dev et GitHub Copilot, explique Travis Rehl, son directeur technique. La société utilise également une intégration maison d'Anthropic pour surveiller les pull requests et valider la qualité du code.
Travis Rehl a constaté que la productivité des développeurs a été multipliée par deux ou trois, en fonction de la rapidité avec laquelle les tickets des développeurs ont été traités, du délai de traitement des livrables aux clients et de la qualité des tickets, mesurée par le nombre de bogues dans le code. L'équipe du CTO a récemment achevé un projet client en 24 heures en utilisant des assistants, alors que le même projet lui aurait pris environ 30 jours auparavant, selon ses estimations.
Toutefois, selon Travis Rehl, une partie du battage médiatique autour des assistants de programmation - comme la suggestion qu'ils remplaceront des équipes de développement entières au lieu de simplement les compléter ou les remodeler - n'est pas réaliste. Les assistants peuvent être utilisés pour sous-traiter rapidement du code ou optimiser certains pans en retravaillant des segments, détaille-t-il. « Les attentes à l'égard des assistants doivent être tempérées. Ces outils n'écriront pas tout le code, ni même un code correct du premier coup. Il s'agit d'un processus itératif qui, lorsqu'il est bien maîtrisé, permet à un développeur de multiplier par deux ou trois sa vitesse de production de code. »
Article rédigé par
Grant Gross, CIO US (adapté par Reynald Fléchaux)
Commentaire
INFORMATION
Vous devez être connecté à votre compte CIO pour poster un commentaire.
Cliquez ici pour vous connecter
Pas encore inscrit ? s'inscrire