paint-brush
L'IA dans le développement de logiciels : exploration de GitHub Copilot avec les informations de l'équipe R&D d'ELEKSpar@elekssoftware
553 lectures
553 lectures

L'IA dans le développement de logiciels : exploration de GitHub Copilot avec les informations de l'équipe R&D d'ELEKS

par ELEKS6m2024/02/06
Read on Terminal Reader

Trop long; Pour lire

Découvrez le rôle de l'IA dans le développement de logiciels alors qu'ELEKS explore les capacités innovantes de GitHub Copilot.
featured image - L'IA dans le développement de logiciels : exploration de GitHub Copilot avec les informations de l'équipe R&D d'ELEKS
ELEKS HackerNoon profile picture
0-item
1-item

L'IA révolutionne le développement de logiciels, le rendant plus efficace, productif et innovant. Dans cet article, nous explorons l'impact de l'IA dans le développement de logiciels, en approfondissant les informations tirées de notre enquête sur GitHub Copilot réalisée par l'équipe R&D d'ELEKS.


À mesure que le monde du développement logiciel continue d’évoluer, le rôle de l’IA devient de plus en plus important. Avec des avantages tels que la possibilité de réduire le temps et les efforts nécessaires au codage, il n’est pas étonnant que l’IA dans le développement de logiciels soit un sujet brûlant de nos jours.


92 % des développeurs basés aux États-Unis utilisent déjà des outils de codage d’IA au travail et en dehors. -GitHub


70 % des développeurs estiment que les outils de codage d'IA leur donneront un avantage distinct dans leurs efforts professionnels, notamment une qualité de code améliorée, un temps de réalisation réduit et des capacités améliorées de résolution d'incidents. -GitHub


4 développeurs sur 5 s'attendent à ce que les outils de codage d'IA rendent leur équipe plus collaborative. -GitHub


Bien que l’IA n’ait pas atteint le stade où elle peut créer, tester et lancer des produits logiciels de manière indépendante sans intervention humaine, par rapport au passé, elle a considérablement accéléré le délai d’exécution global.


De nombreux outils basés sur l'IA sont disponibles pour aider au développement d'applications personnalisées en générant et en complétant automatiquement du code, ainsi qu'en détectant et en corrigeant les bogues. L'équipe de recherche et de développement d'ELEKS a évalué en profondeur l'un de ces outils, GitHub Copilot, pour évaluer son influence sur les tâches des développeurs, la durée d'exécution et les normes de qualité des recommandations fournies. Regardons de plus près.

Qu’est-ce que GitHub Copilot ?

GitHub Copilot est un outil de saisie semi-automatique et de génération de code. Il est construit sur la base d'OpenAI Codex et formé sur des référentiels publics GitHub. En conséquence, il suggère du code pour n’importe quel langage de programmation. Cependant, la qualité des propositions dépend du nombre de référentiels publics basés sur un langage et un cadre de programmation spécifiques.


GitHub Copilot fonctionne avec le code du programme à l'aide des plugins Integrated Development Environment (IDE). Seuls les IDE suivants sont actuellement pris en charge :

  • Code de Visual Studio
  • Visual Studio
  • Néovim
  • tous les IDE de JetBrains

Aperçu de l'enquête GitHub Copilot d'ELEKS

Cette enquête visait à explorer l'impact de l'utilisation de Copilot sur la vitesse et la qualité du développement.


Pour mener cette étude, un petit projet animalier a été lancé afin de tester diverses hypothèses. Avec une équipe composée de quatre développeurs intermédiaires qualifiés et possédant une expertise en React, Redux, TypeScript, Jest, Vite, PHP, Symfony et Codeception, nous avons commencé l'enquête et défini nos objectifs et nos approches comme suit.

But

Approche

Évaluer la dépendance entre la compétence et les performances du développeur lors de l'utilisation de Copilot

Nous avons sélectionné le framework Symfony pour le développement back-end. L’équipe back-end n’avait aucune expérience substantielle avec ce framework.
Pour évaluer la qualité de la solution back-end, un expert Symfony a été impliqué dans une revue de code. L'expert a également développé une structure de projet de base qui allait au-delà de la structure typique et a été utilisée dans un grand projet commercial.

Étudier l'impact sur les tâches typiques des développeurs

Avant le démarrage du projet, nous avons créé un WBS qui couvrait le travail typique d'un développeur sur un projet commercial. Nous avons également mené une séance d’estimation des tâches.

Étudier l'impact sur les langages et les frameworks de programmation par popularité

Nous avons développé une application web avec couverture de tests.

Évaluer l’impact sur le temps de réalisation des tâches

Nous avons fait une estimation préliminaire des tâches individuelles du projet.

Améliorer l’efficacité de la recherche

Nous avons mené des sessions de partage de connaissances au sein de l'équipe lors de synchronisations quotidiennes.

Explorez la qualité des suggestions

Nous avons testé comment Copilot gère une structure de projet non classique et plus complexe.



Principales conclusions de l'enquête GitHub Copilot d'ELEKS

L'enquête d'ELEKS sur GitHub Copilot a donné plusieurs résultats clés qui mettent en lumière les capacités et les avantages de l'outil. Voici une description plus détaillée :


Veuillez noter que les résultats de l'enquête sont basés sur les commentaires subjectifs de l'équipe, les observations de leur travail et les révisions de code de leurs solutions.

Le GitHub Copilot a deux modes de fonctionnement :

  1. Mode de saisie semi-automatique du code – affecte presque toujours positivement les performances.
  2. Mode de génération de code basé sur un commentaire avec une invite – ne fonctionne bien que pour les structures de code typiques. Cela peut s'avérer contre-productif lors de la génération de logique métier ou de solutions atypiques, car l'analyse des variantes de code proposées prend beaucoup de temps.

La qualité des suggestions de code GitHub Copilot dépend des éléments suivants :

  • Popularité de la pile technologique sélectionnée dans les référentiels publics. Plus la technologie ou le langage est populaire, plus la qualité des suggestions de GitHub Copilot est élevée.
  • Structure du code et architecture des applications. Plus votre solution est typique, plus les suggestions proposées par GitHub Copilot sont efficaces. Ceci est particulièrement visible au début du développement du projet.

Autres avantages de GitHub Copilot :

  • Au fil du temps, la qualité des suggestions de code augmente. GitHub Copilot apprend et s'adapte à la structure du projet, au style de code et aux approches typiques des solutions techniques du projet.
  • Influence positivement la satisfaction professionnelle des développeurs. GitHub Copilot prend en charge une partie des tâches routinières, typiques et ennuyeuses. Le rapport entre le développement de tâches intéressantes et de tâches routinières change, ce qui augmente le confort des développeurs.

Conclusions générales de l’équipe :

  • L'outil n'a montré aucun impact sur la qualité du code, ni positif ni négatif. Nous pensons que pour l’instant, cela ne peut pas remplacer le processus de révision du code, les tests manuels du code effectués par le développeur, l’exécution des autotests, les tests de sécurité, etc.
  • L'efficacité dépend de la compétence du développeur dans la pile technologique donnée. Plus le développeur est compétent, plus cet outil s'avère efficace.
  • La valeur de GitHub Copilot pour l'apprentissage de nouvelles technologies est très douteuse.
  • L'équipe a eu l'impression que les suggestions de code s'améliorent si tous les fichiers liés au code sont ouverts dans l'EDI.
  • Comme tout autre outil, GitHub Copilot nécessite certaines compétences. Plus l’équipe s’entraînait, plus les retours étaient positifs.
  • Les retours concernant l'augmentation des performances varient en fonction de la pile technologique, du niveau de compétence du spécialiste et de raisons subjectives.


5 à 10 % de l'augmentation moyenne de la productivité des membres de l'équipe. - L'équipe R&D ELEKS


Par ailleurs, au cours du projet, l'équipe a rencontré plusieurs bugs dans GitHub Copilot. Par exemple, Copilot a proposé des suggestions de code basées sur le code d'un autre projet ouvert dans une autre fenêtre de l'EDI. Il proposait un code syntaxiquement incorrect. Copilot entre en conflit avec les fonctionnalités de certains plugins (intégrés ou ajoutés par un tiers) qui disposent également d'une fonctionnalité de saisie semi-automatique du code.

Conclusions

GitHub Copilot est un outil puissant qui a un impact positif sur la vitesse de développement et la satisfaction professionnelle des développeurs. Comme tout autre outil de développement, sa maîtrise demande du temps.


À l’heure actuelle, une licence mensuelle individuelle ne coûte que 10 $, tandis que le plan commercial coûte 19 $ par mois. GitHub Copilot sera sans aucun doute financièrement avantageux pour une utilisation sur les projets, en particulier pour les spécialistes de niveau de compétence intermédiaire et supérieur.


L'équipe prédit qu'avec la croissance de l'expérience avec GitHub Copilot, la vitesse de développement peut augmenter de 5 à 25 %, en fonction de la popularité de la technologie et du niveau de compétence du développeur. GitHub Copilot est assuré de ne pas ralentir le développement, car les développeurs acquerront progressivement l'expertise et la compréhension des moments où il est avantageux d'utiliser l'outil et des moments où il ne l'est pas.


En conclusion, l’impact de l’IA dans le développement de logiciels, illustré par des outils comme GitHub Copilot, est indéniable. Dans l'ensemble, des outils tels que GitHub Copilot ne peuvent pas remplacer un développeur mais constituent des outils précieux pour améliorer le confort et la productivité des développeurs, contribuant ainsi à l'évolution du développement logiciel dans un monde de plus en plus axé sur l'IA.


Ouvrez la voie à un processus de développement logiciel efficace et à des résultats réussis, contactez les experts ELEKS .


Également publié ici .