GitHub, le dépôt partagé de code pour les développeurs, a remodelé le terrain de jeu des devs avec son offre Copilot. L’organisation estime à présent que de nombreux développeurs utilisent l’outil pour générer entre 30 et 50 % du code qu’ils mettent finalement en production.
Récemment, des chercheurs de Scalefocus ont lancé une expérience de quatre mois, impliquant trois équipes, pour mesurer la valeur et la viabilité de GitHub Copilot.
Leur conclusion est que Copilot « accélère le processus de développement, réduit le temps consacré aux tâches routinières de codage et améliore la productivité. En moyenne, son introduction augmente la productivité de 20% ».
Copilot excelle dans « l’implémentation de composants simples »
Cependant, les chercheurs ajoutent que « des limites ont également été observées. Copilot s’est parfois heurté à des problèmes plus complexes, nécessitant que des humains le guident vers la solution souhaitée ».
Il est essentiel de comprendre les mécanismes et les meilleures pratiques de Copilot « pour maximiser son potentiel », ont-ils averti. « Reconnaître que Copilot peut ne pas être aussi pertinent pour toutes les tâches est essentiel pour éviter les inefficacités. Identifier les domaines dans lesquels Copilot excelle peut considérablement accroître sa valeur. Et reconnaître les domaines dans lesquels il n’est pas à la hauteur permettra d’éviter beaucoup d’efforts inutiles. »
Copilot excelle dans « l’implémentation de composants simples et bien définis en termes de performance et d’autres aspects non fonctionnels. Son efficacité diminue lorsqu’il s’agit de traiter des bogues complexes ou des tâches nécessitant une expertise approfondie ».
« Si les développeurs sont malheureux dans une organisation, il ne se passe pas grand-chose »
GitHub lui-même estime le gain de productivité des développeurs à environ 55 %, a déclaré Mario Rodriguez, vice-président senior des produits chez GitHub, lors d’une récente interview.
Mais la productivité n’est pas le seul critère. « Nous demandons à beaucoup de nos clients de mesurer le bonheur général des développeurs », a déclaré M. Rodriguez. « Si les développeurs sont malheureux dans une organisation, il ne se passe pas grand-chose. Les talents sont rares, il faut donc absolument que les développeurs soient heureux. »
La clé du bonheur réside dans le fait que Copilot est conçu pour être réactif et empathique. « Copilot est très patient », explique-t-il. Il ne s’énerve pas si vous lui dites « J’ai oublié comment écrire ce registre. Pouvez-vous me dire quelle est la meilleure façon de procéder ? »
Le plus grand défi de Copilot est le contexte
En conséquence, poursuit M. Rodriguez, « les personnes qui l’utilisent finissent par être nettement plus productives. On voit parfois la différence au niveau de la qualité du code. Mais on voit aussi la différence au niveau de leur bonheur parce qu’ils n’ont pas besoin d’écrire 10 000 lignes de tests quand Copilot peut les aider à le faire ».
Le plus grand défi de Copilot est le contexte, a-t-il souligné. « Le code et son développement dépendent beaucoup du contexte dans lequel vous évoluez. Êtes-vous dans une base de code héritée ou non ? Êtes-vous en COBOL ou en C++ ou en JavaScript ou TypeScript ? Il y a beaucoup de contextes à prendre en compte pour que la qualité du code soit élevée ».
GitHub Copilot, le premier Copilot à émerger en tant qu’assistant de développement alimenté par l’IA, est incorporé dans une division appelée GitHub Next.
Les LLM « ne sont pas déterministes »
Et selon M. Rodriguez, l’utilisation de l’IA change tout. Le code classique de GitHub est vérifié, testé et déterministe. « Nous savons si quelque chose fonctionne ou non. S’il y a un bogue ou non. Nous savons comment corriger, souvent, ce bogue. Nous pouvons même voir l’erreur que nous commettons en développant la fonctionnalité ».
Les grands modèles de langage, en revanche, « ne sont pas déterministes », poursuit-il.
« Il faut donc repenser la façon dont on envisage la qualité. Il faut repenser la façon dont on aborde les fonctionnalités. Chez GitHub, « nous avons toutes ces évaluations et évaluations hors ligne que nous faisons pour GitHub Copilot. Et c’est ainsi que nous déterminons la qualité de ce qu’il vous donne dans quelque chose comme la complétion de code » ».