GitHub a publié une étude montrant que son outil de complétion de code Copilot, récemment mis en service, est réellement en corrélation avec l’amélioration de la productivité des développeurs.
GitHub Copilot, un service de programmation par paires d’IA, a été mis à la disposition du public il y a un mois pour un coût de 10 dollars par utilisateur et par mois ou de 100 dollars par utilisateur et par an.
Il s’agit d’une extension de l’éditeur Visual Studio Code de Microsoft qui suggère aux développeurs du code qu’ils peuvent accepter, rejeter ou modifier. Les suggestions de code sont générées par le modèle d’IA en langage naturel basé sur le Codex d’OpenAI, lui-même une version de GPT-3, et a été entraîné sur des milliards de lignes de code source publiquement disponibles, y compris le code publié sur GitHub.
Copilot a suscité une certaine controverse car tous les développeurs ne sont pas satisfaits de l’utilisation de leur code pour l’entrainement du modèle. Mais GitHub a publié une étude visant à vérifier sa théorie selon laquelle Copilot permet un taux de productivité plus élevé chez les développeurs.
Ses chercheurs ont analysé 2 631 réponses à des enquêtes menées auprès de développeurs utilisant Copilot et ont fait correspondre leurs réponses aux mesures recueillies dans l’IDE (environnement de développement intégré). Le défi consistait à trouver la meilleure méthode pour mesurer l’effet de Copilot sur la productivité des développeurs.
« Nous avons constaté que le taux d’acceptation des suggestions présentées est un meilleur indicateur de la productivité que les autres mesures », expliquent les auteurs.
La délicate mesure de la productivité
La méthode de mesure utilisée par GitHub est différente de celle d’une autre étude publiée en avril par GitHub concernant l’impact de Copilot sur la productivité des développeurs et mesurant les temps d’exécution de tâches répétitives. Les auteurs de l’étude ont conclu que Copilot n’améliorait pas nécessairement le temps de réalisation des tâches ou le taux de réussite, mais que la plupart des 24 participants préféraient utiliser Copilot parce qu’il fournissait souvent un point de départ utile et leur évitait de faire des recherches en ligne.
L’un des auteurs de l’étude GitHub, Albert Ziegler, compare le service à « un développeur en binôme avec un calculateur attaché », très douée pour les petites taches mais suffisamment fiable pour fermer toutes les parenthèses dans le bon ordre.
Mais le mot « productivité » dans le développement contient un large éventail de significations pratiques possibles. Les développeurs souhaitent-ils idéalement économiser des frappes de clavier ou éviter les recherches sur Google et StackOverflow ? » se demande Ziegler dans un billet de blog. « GitHub Copilot doit-il les aider à rester dans le flux en leur donnant des solutions très précises pour des tâches mécaniques, semblables à celles d’une calculatrice ? Ou doit-il les inspirer avec des propositions qui pourraient les aider à se dégager lorsqu’ils sont bloqués ?
Les trois questions clés que l’étude de GitHub a posées aux développeurs sont les suivantes :
- Les sondés ont-ils le sentiment que GitHub Copilot les rend plus productifs ?
- Ce sentiment se traduit-il par des mesures d’utilisation objectives ?
-
Quelles mesures d’utilisation reflètent le mieux ce sentiment ?
M. Ziegler note que les résultats de l’étude montrent que Copilot » est en corrélation avec une meilleure productivité des développeurs « . La corrélation la plus forte a été obtenue en divisant le nombre de suggestions acceptées par le nombre de suggestions affichées.
« Ce taux d’acceptation indique combien de suggestions de code produites par GitHub Copilot sont jugées suffisamment prometteuses pour être acceptées », note-t-il.
En outre, les développeurs qui déclarent les gains de productivité les plus élevés avec Copilot acceptent également le plus grand nombre de suggestions de code affichées.
Tous les langages ne sont pas égaux
L’étude a révélé des niveaux de taux d’acceptation différents selon les langages.
« Nous sommes conscients qu’il existe des différences significatives pour la façon dont GitHub Copilot se comporte pour différents langages de programmation », notent les auteurs de GitHub. « Les langages les plus courants parmi notre base d’utilisateurs sont TypeScript (24,7 % de toutes les réalisations affichées dans la période observée, 21,9 % pour les utilisateurs sondés dans l’enquête, JavaScript (21,3 %, 24,2 %) et Python (14,1 %, 14,5 %). Les deux derniers bénéficient de taux d’acceptation plus élevés, ce qui pourrait indiquer une force relative des outils neuronaux par rapport aux outils déductifs pour les langages non typés. Indépendamment du langage, les participants à l’enquête avaient un taux d’acceptation légèrement plus élevé que l’ensemble des utilisateurs », notent les auteurs dans le rapport.
Les auteurs indiquent également que leurs mesures de la persistance, le nombre de suggestions retenues au fil du temps, ne correspondaient pas à la productivité déclarée.
« En accord avec les travaux antérieurs, nous avons recueilli des mesures sur l’acceptation des propositions, mais nous avons également développé des mesures de la persistance. Ces mesures sont basées sur l’idée que pour les propositions de completion de code les plus longues, un développeur pourrait avoir à effectuer plus d’actions correctives après avoir accepté une proposition, comme la suppression ou la correction d’une proposition erronée.
« Nous avons été surpris de constater que le taux d’acceptation (nombre d’acceptations normalisé par le nombre de complétions affichées) était mieux corrélé avec la productivité déclarée que nos mesures de la persistance. »
Cependant, ils estiment que la valeur de Copilot ne réside pas dans le nombre de lignes de code qu’il automatise correctement, mais dans le fait de donner aux utilisateurs un modèle à modifier.
« Mais avec le recul, cela a du sens. Coder n’est pas taper, et la valeur centrale de GitHub Copilot ne réside pas dans la manière dont l’utilisateur saisit le plus grand nombre possible de lignes de code. Elle consiste plutôt à aider l’utilisateur à progresser au mieux vers ses objectifs », notent-ils.
Source : « ZDNet.com »
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/fr_FR/all.js#appId=243265768935&xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));
Cliquez ici pour lire l’article depuis sa source.