La plupart des développeurs explorent l'intégration de la GenAI dans leurs processus, avec une majorité ayant déjà investi dans des outils tels que GitHub Copilot, Amazon CodeWhisperer, Codium.ai, Tabnine, etc. Le rapport aborde la question cruciale de mesurer l'impact de cette initiative. LinearB décompose l'évaluation en trois catégories principales : l'adoption, les avantages et les risques. Pour évaluer l'adoption, le suivi du nombre de Pull Requests générées par GenAI est suggéré comme point de départ, tandis que les avantages peuvent être mesurés en évaluant le temps de codage, la fréquence de fusion, les histoires terminées, et la précision de la planification.
Presque toutes les équipes d'ingénieurs se penchent sur l'intégration de la GenAI dans leurs processus, et un grand nombre d'entre elles ont déjà franchi le pas. Elles ont investi dans des outils tels que GitHub Copilot, Amazon CodeWhisperer, Codium.ai, Tabnine, et d'autres outils similaires pour concrétiser cette initiative. En effet, l'enquête menée par LinearB a révélé qu'un pourcentage significatif, soit 87%, des participants sont susceptibles ou très susceptibles d'investir dans un outil de codage GenAI d'ici 2024.
Quelle est la probabilité que votre organisation investisse dans un outil de codage de l'IA générative en 2024 ?
Note moyenne 3.8/5
L'IA générative ou l'intelligence artificielle générative fait référence à l'utilisation de l'IA pour créer de nouveaux contenus, comme du texte, des images, de la musique, de l'audio et des vidéos. L'IA générative s'appuie sur des modèles de base (grands modèles d'IA) qui peuvent effectuer plusieurs opérations en même temps et réaliser des tâches prêtes à l'emploi, telles que la synthèse, les questions/réponses, la classification, etc. De plus, les modèles de base ne nécessitent qu'un entraînement minimal et peuvent être adaptés à des cas d'utilisation ciblés avec très peu d'exemples de données.
L'IA générative s'appuie sur un modèle de ML pour apprendre les schémas et les relations dans un ensemble de données de contenus créés manuellement. Elle utilise ensuite les schémas appris pour générer de nouveaux contenus. La méthode la plus courante pour entraîner un modèle d'IA générative consiste à utiliser l'apprentissage supervisé. Le modèle se voit attribuer un ensemble de contenus créés manuellement et des étiquettes correspondantes. Il apprend ensuite à générer du contenu semblable au contenu créé par un humain et doté des mêmes étiquettes.
L'IA générative traite un grand volume de contenus, générant des insights et des réponses sous forme de texte, d'images et de formats conviviaux. Voici des exemple d'utilisations de l'IA générative :
- Améliorer les interactions client grâce à des fonctionnalités optimisées de chat et de recherche ;
- Explorer de grandes quantités de données non structurées via des interfaces de conversation et des résumés ;
- Faciliter les tâches répétitives en répondant aux appels d'offres, en localisant le contenu marketing dans cinq langues et en vérifiant la conformité des contrats client, etc.
Le rapport de LinearB souligne également les risques associés à l'adoption de la GenAI, tels que la taille des Pull Requests, le taux de reprise, la profondeur de révision, et d'autres indicateurs. Il met en lumière l'importance d'évaluer comment les processus des équipes sont impactés pour prévenir les risques avant qu'ils n'affectent la livraison.
En parallèle à l'adoption et aux avantages de la GenAI, il existe des risques significatifs à prendre en considération. Outre les préoccupations liées à la sécurité, à la conformité et à la propriété intellectuelle, l'adoption de la GenAI pour le codage annonce un changement fondamental dans la « forme » de la base de code et dans la manière dont elle est mise à jour.
Le rapport propose également une approche pratique pour mesurer l'adoption, les avantages, et les risques du code GenAI en utilisant des métriques spécifiques telles que les demandes d'extraction ouvertes, les demandes de retrait fusionnées, la fréquence de fusion, le temps de codage, les histoires terminées, la précision de la planification, la taille des Pull Requests, le taux de reprise, la profondeur de révision, et d'autres.
De nombreux responsables de l'ingénierie sont chargés de superviser des dizaines, voire des centaines de développeurs, ce qui rend pratiquement impossible le contrôle manuel de l'utilisation d'un nouvel outil, en particulier un outil aussi complet que la GenAI.
Selon LinearB, une fois que vous avez entamé l'utilisation d'un produit tel que Copilot, ou même si vous envisagez encore de le déployer, trois questions principales doivent être abordées :
- Quels sont les cas d'utilisation que nous résolvons avec la GenAI ?
- Quelles parties de ma base de code sont écrites par une machine ? Le nouveau code ? Les tests ?
- Mon équipe utilise-t-elle effectivement cet outil ? Si oui, dans quelle mesure ? Et comment évolue notre utilisation au fil du temps ?
À titre de référence, le suivi du nombre de Pull Requests (PR) ouvertes dont le code est généré par la GenAI constitue un bon point de départ pour évaluer l'adoption de cette technologie.
Risques et stratégies pour utiliser l'IA générative dans le développement de logiciels
En parallèle de l'adoption et des avantages liés à la GenAI, il existe des risques significatifs à prendre en compte. Outre les préoccupations relatives à la sécurité, à la conformité et à la propriété intellectuelle, l'adoption de la GenAI pour le codage annonce un changement fondamental dans la "forme" et la manière dont la base de code est mise à jour. Bien que la GenAI permette une création de code beaucoup plus rapide, il est crucial de déterminer si les pipelines de révision et de livraison sont prêts à gérer cette évolution. Il est essentiel d'évaluer l'impact de ces changements sur les processus des équipes afin de prévenir les risques avant qu'ils n'affectent la livraison.
Dans de nombreux cas, le code généré peut s'avérer plus difficile à réviser. L'auteur des Pull Requests (PR) trouve souvent plus ardu de raisonner à son sujet et de le défendre, étant donné qu'il n'a pas réellement rédigé le code. Pour garantir une inspection adéquate des PR générées par la GenAI, utilisez la profondeur de révision et le suivi des PR fusionnés. Les mesures telles que le temps d'approbation et le temps de révision sont également utiles pour identifier les éventuels goulots d'étranglement dans le processus de développement.
Enfin, le recours au taux de reprise peut aider à comprendre s'il existe un besoin de réécriture fréquente du code, tandis que le suivi des bogues échappés permet de surveiller l'évolution des tendances générales en matière de qualité.
Comme certains développeurs l'ont découvert l’année dernière, il n'est pas toujours simple ou sûr de faire appel à l'IA générative pour gérer un peu de codage, mais il existe des moyens pour les équipes de développement de la faire travailler avec plus de confiance. En avril dernier, des employés de Samsung ont introduit une partie du code propriétaire de l'entreprise dans ChatGPT, réalisant par la suite que l'IA générative conservait ce qu'on lui donnait à lire pour s'entraîner. Cela a provoqué un tollé, avec des craintes d'exposition, bien que cela ait sensibilisé d'autres entreprises aux risques qui peuvent survenir lors de l'utilisation de l'IA générative dans le développement et le codage.
L'idée est assez simple : laisser l'IA créer du code pendant que les développeurs se concentrent sur d'autres tâches qui requièrent leur attention. L'astrophysicien Neil deGrasse Tyson a évoqué en juin certains des avantages de l'utilisation de l'IA pour traiter des données sur le cosmos et lui permettre de se consacrer à d'autres tâches. Il semble qu'une stratégie bien pensée puisse permettre à l'IA générative de jouer un rôle productif dans le développement de logiciels, à condition que des garde-fous soient mis en place.
Josh Miramant, PDG de la société de données et d'analyse Blue Orange Digital, estime que l'utilisation de l'IA par les développeurs est de plus en plus inévitable. « Nous nous trouvons à un carrefour intéressant pour ce qui est de l'avenir des LLM (grands modèles de langage) et de l'IA générative en vue d'une adoption massive. » Selon Miramant, les entreprises peuvent mettre l'IA au service du développement de logiciels à condition de respecter certaines lignes directrices. « L'un des types de transition qui se produira est que ces entreprises commenceront à utiliser des modèles en libre accès qu'elles formeront et utiliseront en interne avec un accès beaucoup plus restrictif, explique-t-il. Les murs doivent être très hauts pour qu'une entreprise se lance dans la formation sur des données d'entreprise très exclusives. »
« En tant que vice-président de la R&D chez SOLIDUS Labs, le suivi des indicateurs de performance en ingénierie m'a permis d'engager des discussions éclairées tant avec mes collaborateurs directs qu'avec le PDG. Cela me permet de repérer rapidement les points de blocage, d'évaluer l'efficacité de l'équipe et l'expérience des développeurs, puis d'apporter des améliorations ciblées en fonction des données recueillies », Idan Lavy, vice-président de la R&D, SOLIDUS Labs.
Controles et mesures de securite dans l'integration de l'IA generative dans le developpement de logiciels
Parmi les risques liés à l'utilisation de l'IA dans le développement de logiciels, il y a la possibilité qu'elle reproduise le mauvais code qui a fait le tour du monde dans le domaine des logiciels libres. « Il y a du mauvais code qui est copié et utilisé partout », déclare Muddu Sudhakar, PDG et cofondateur d'Aisera, développeur d'une plateforme d'IA générative pour les entreprises. « C'est un risque important. Le risque n'est pas seulement que du code mal écrit soit répété - le mauvais code peut être mis en jeu par des acteurs malveillants qui cherchent à introduire des vulnérabilités qu'ils pourront exploiter ultérieurement. »
Selon Sudhakar, les organisations qui font appel à l'IA générative et à d'autres ressources libres devraient mettre en place des contrôles pour repérer ces risques si elles ont l'intention d'intégrer l'IA dans l'équation de développement. « C'est dans leur intérêt, car il suffit d'un mauvais code », explique-t-il en évoquant la longue campagne de piratage à l'origine de la violation des données de Solar Winds.
L'attrait croissant de l'IA pour le développement semble l'emporter sur les inquiétudes concernant les risques de fuite de données ou d'autres problèmes. « L'utilité de l'IA est telle qu'il vaut la peine d'être conscient des risques et de le faire quand même », déclare Babak Hodjat, directeur technique de l'IA et directeur de Cognizant AI Labs.
Selon lui, il faut tenir compte du fait qu'un code accessible au public ne signifie pas qu'il n'est pas protégé par des droits d'auteur, ce qui pourrait être problématique si une entreprise intégrait ce code dans une ligne de ses propres produits logiciels. « Nous devons vraiment, vraiment être attentifs et veiller à ne pas tomber dans ce piège », déclare Hodjat.
En plus de surveiller le mauvais code, il ajoute que les organisations devraient vérifier que le code de l'IA générative n'est pas protégé par des droits d'auteur ou des droits de propriété, un processus qui pourrait en fait être assisté par d'autres formes d'IA. « Ces éléments sont en fait bien meilleurs pour critiquer que pour produire, et ils sont déjà très bons pour produire du texte ou du code », explique Hodjat.
Sudhakar est d'accord pour dire qu'un outil d'inspection à code open source devrait être mis en place pour inspecter le code provenant de l'IA afin de détecter d'éventuels droits d'auteur ou de propriété intellectuelle, « si vous disposez de personnel logiciel pour inspecter cela et en fonction de votre niveau d'investissement ».
Selon Hodjat, il existe également des moyens de tirer parti de l'IA générative accessible au public, tout en réduisant certains risques.
Il peut s'agir par exemple de télécharger un modèle de langage large open source et de l'exécuter localement. De cette manière, les données et le code sensibles ne quittent pas l'organisation. « Le fait de pouvoir exécuter ces modèles sur place va nous permettre d'utiliser ces systèmes pour améliorer le codage de manière beaucoup plus importante », explique-t-il. Pour certains codes propriétaires, cependant, l'IA pourrait être complètement interdite.
Voici un tableau de bord GenAI personnalisé
Tous les Pull Requests (PR) arborant l'étiquette "Copilot" dans GitHub ont été inclus dans la définition du filtre du tableau de bord. Dans cette représentation visuelle, la ligne bleue inférieure illustre l'ensemble des PR avec l'étiquette "Copilot", tandis que la ligne grise représente tous les autres PR, servant ainsi de référence de base dans ce contexte.
Plongeons maintenant en détail dans les Pull Requests (PR) fusionnés sans examen. À titre d'exemple, au sein de l'équipe d'ingénieurs chez LinearB, une décision collective a été prise pour ne pas intégrer de PR générés par GenAI sans qu'ils aient fait l'objet d'une révision.
Dans le graphique, on observe un pic de PR fusionnés sans révision lors de la semaine 50, constituant une anomalie. Chaque fois que LinearB détecte une tendance dans les données qui ne correspond pas aux attentes, elle approfondit l'analyse en cliquant sur le pic du graphique. Cela permet d'afficher une liste de tous les PR qui ont contribué à ce point de données, permettant ainsi d'examiner de près tous les PR GenAI qui ont été fusionnés sans examen.
En principe, un outil de GenAI conçu pour générer des morceaux de code pour une équipe devrait logiquement entraîner une réduction du temps de codage et des coûts de développement en accélérant les tâches simples. Pour évaluer si les avantages attendus de la GenAI se concrétisent, LinearB suggère d'analyser les performances et la vélocité de l'équipe.
Diverses mesures peuvent être suivies à cet égard, notamment le temps de codage, défini comme la période entre le premier commit et l'émission d'une Pull Request (PR). Cette métrique peut être utile pour déterminer si la GenAI contribue effectivement à réduire le temps de codage des développeurs.
La fréquence de fusion, qui indique à quelle fréquence les développeurs peuvent intégrer du code dans la base de code, revêt également une importance particulière. Elle ne se limite pas seulement au temps de codage, mais englobe également la dynamique de révision du code, fournissant ainsi un aperçu de l'efficacité de la GenAI pour accélérer l'ensemble du processus.
« La nature imprévisible des projets logiciels, due à divers facteurs tels que des défis techniques inattendus et des problèmes de sécurité, peut poser des défis considérables. Les mesures d'ingénierie, notamment la précision de la planification et l'utilisation d'outils d'automatisation du flux de travail, ont été des catalyseurs essentiels pour accroître notre productivité. Ces outils ont par ailleurs contribué à renforcer la prévisibilité de nos calendriers de publication et des délais associés », souligne Marko T., Directeur Technique chez ASSIGNAR.
Les développeurs utilisent déjà des outils de codage de l'IA au travail
Selon une enquête de GitHub auprès des développeurs, 92 % des développeurs travaillant dans de grandes entreprises déclarent utiliser un outil de codage de l'IA, que ce soit au travail ou pendant leur temps libre, et 70 % d'entre eux affirment que l'utilisation de ces outils leur apporte des avantages significatifs.
L'IA est là pour rester et elle transforme déjà la façon dont les développeurs abordent leur travail quotidien. Il est donc essentiel que les entreprises et les responsables de l'ingénierie adoptent des outils d'IA de qualité professionnelle afin d'éviter que leurs développeurs n'utilisent des applications non approuvées. Les entreprises devraient également établir des normes de gouvernance pour l'utilisation des outils d'IA afin de s'assurer qu'ils sont utilisés de manière éthique et efficace.
Presque tous les développeurs (92 %) utilisent des outils de codage de l'IA au travail - et une majorité (67 %) a utilisé ces outils à la fois dans un cadre professionnel et pendant son temps libre. Curieusement, seuls 6 % des développeurs interrogés dans le cadre de notre enquête déclarent n'utiliser ces outils qu'en dehors du travail.
Les développeurs pensent que les outils de codage basés sur l'IA amélioreront leurs performances
La plupart des développeurs expérimentant les outils d'IA sur leur lieu de travail, les résultats de notre enquête suggèrent que ce n'est pas seulement un intérêt futile qui pousse les développeurs à utiliser l'IA. Il s'agit plutôt d'une reconnaissance du fait que les outils de codage de l'IA les aideront à atteindre les normes de performance.
Dans notre enquête, les développeurs affirment que les outils de codage basés sur l'IA peuvent les aider à respecter les normes de performance existantes en améliorant la qualité du code, en accélérant les résultats et en réduisant le nombre d'incidents au niveau de la production. Ils estiment également que ces paramètres devraient être utilisés pour mesurer leurs performances au-delà de la quantité de code.
Évaluation de la pertinence et de la fiabilité du rapport d'étude de LinearB
LinearB explique comment son approche, basée sur l'étiquetage des Pull Requests, permet aux responsables de l'ingénierie de suivre l'adoption, les bénéfices, et les risques de la GenAI, offrant une visibilité claire à tout moment, du déploiement à l'utilisation complète.
La méthodologie de collecte des données présentée par LinearB n'est pas explicitement détaillée dans la description du rapport. L'absence de détails sur la manière dont les réponses ont été obtenues rend difficile l'évaluation de la représentativité de l'échantillon et la validité des conclusions tirées. De plus, la source des données, composée de plus de 150 directeurs techniques et vice-présidents de l'ingénierie, pourrait potentiellement introduire un biais, ces individus pouvant avoir des perspectives spécifiques basées sur leurs rôles et leurs expériences. Une enquête plus vaste et diversifiée aurait renforcé la crédibilité des résultats.
Les prévisions quant à la part de l'IA générative dans le code d'ici à la fin de 2024, représentant environ 20 %, reposent sur des projections sujettes à des variables inconnues. Ces prévisions nécessitent une interprétation prudente en raison de la nature évolutive du domaine de l'IA et du codage génératif.
Bien que le rapport de LinearB présente des informations intrigantes, il est crucial de considérer ces données avec discernement en raison du possible biais de l'échantillon, du manque de détails sur la méthodologie et de la nature spéculative des prévisions avancées. Une analyse approfondie et une compréhension des limites de l'étude sont nécessaires pour formuler des conclusions informées.
Source : LinearB
Et vous ?
Est-ce que les conclusions de l'étude publiée par LinearB sont pertinentes ?
Dans quelle mesure les résultats de cette étude peuvent-ils être généralisés à l'ensemble de l'industrie, étant donné la diversité des organisations et de leurs besoins ?
Quelle est votre opinion concernant l'adoption des outils de codage Gen AI par les départements d'ingénierie logiciels ?
Estimez-vous que les conclusions tirées par LinearB ont une signification pour l'ensemble des développeurs ?
Voir aussi :
Les développeurs écrivent-ils plus de code non sécurisé avec des assistants IA ? Oui, selon une étude, qui note que les assistants IA les conduisent à produire du code plus susceptible d'être boggué
92 % des développeurs utiliseraient des outils d'intelligence artificielle, selon une enquête de GitHub auprès des développeurs
Les assistants de programmation basés sur l'IA incitent à repenser l'enseignement de l'informatique, selon des chercheurs