Si vous êtes associé directement ou indirectement au développement de logiciels, vous êtes certainement conscient de l’engouement actuel dans l’industrie concernant la « productivité des développeurs ». Même si ce n’est pas le cas, continuez à lire pour en savoir plus.
La productivité des développeurs peut être définie comme la capacité d’une équipe à produire du code de haute qualité efficacement, afin de générer de la valeur pour les clients. L’objectif de la productivité des développeurs est d’augmenter la « vélocité de développement », qui est la somme de tous les points d’effort (par exemple, heures de codage et de tests, points d’histoire complétés et user stories complétées) nécessaires pour développer la fonctionnalité finale en un sprint. Accroître la productivité des développeurs permet d’assurer une mise sur le marché plus rapide pour une organisation, entre autres avantages. Maintenant, si nous devions deviner ce qui permet la productivité des développeurs, il n’y aurait pas de prix pour la bonne réponse. C’est l’IA générative. Selon une étude récente de McKinsey, il y a un gain de productivité significatif allant jusqu’à 30 % pour les tâches simples et jusqu’à 15 % pour les tâches de complexité moyenne grâce à l’IA générative.
Dans cette optique, il y a un peu plus de deux ans, Microsoft et GitHub ont uni leurs forces pour lancer une initiative de recherche conjointe appelée Developer Velocity Lab (DVL) visant à améliorer la productivité des développeurs et le bien-être général des développeurs à l’échelle mondiale. Ce qui est intéressant ici, c’est qu’au-delà de la perspective de la productivité, DVL explore également les angles socio-technologiques, notamment dans les domaines de la création de communautés de développeurs, le partage des connaissances, la durabilité et le bien-être des développeurs – y compris leur bonheur et leur satisfaction.
Est-ce que cela me rend heureux ? Absolument. J’ai toujours eu le sentiment que le développement logiciel a traditionnellement suivi le modèle industriel hérité de la production et manquait d’empathie pour les développeurs. Mais je m’égare. Ce blogue vise à se concentrer sur l’offre de Microsoft sur GitHub Copilot et sur la façon dont il aide les organisations à augmenter la productivité des développeurs grâce à l’IA générative. Alors laissez-moi y aller directement.
GitHub Copilot de Microsoft est un pair programmeur en IA qui aide les développeurs à écrire du code plus rapidement, et avec moins d’efforts. Microsoft a déployé des Copilots pour d’autres segments comme Dynamics 365, Power Platform et d’autres. Vous pourriez donc deviner que ces Copilots sont conçus pour agir comme des assistants pour les développeurs de logiciels.
GitHub Copilot est propulsé par Open AI Codex, un modèle de langage génératif pré-entraîné créé par Open AI. Il est entraîné sur des milliards de lignes de code déjà écrites et disponibles sur Internet. Il aide les développeurs à réduire le temps passé à écrire du code standard en générant des suggestions selon le contexte du code en cours d’écriture. Par exemple, si vous créez une nouvelle classe en C#, GitHub Copilot peut suggérer la structure de base de la classe, y compris le constructeur et les imports nécessaires. Cela permet non seulement d’économiser du temps, mais aussi de réduire les risques d’erreurs dues à des fautes de frappe ou autres erreurs pouvant survenir lors de la rédaction manuelle du même code standard. GitHub Copilot comprend aussi les commentaires rédigés en langage naturel et suggère l’achèvement du code. Prenons, par exemple, un composant Razor d’une application BlazorServer dans Visual Studio. Le Copilot a suggéré le fragment complet de code Razor pour afficher une liste de questions (le modèle) dans un tableau HTML à partir de l’instruction commentée en langage naturel.
Comme tous les modèles d’apprentissage automatique et services d’IA, efficacité et utilisation entretiennent une relation symbiotique. De la même manière, plus vous utilisez les grands modèles linguistiques, plus ils s’améliorent. Dans GitHub Copilot aussi, la qualité des suggestions dépend du volume et de la diversité des données d’entraînement pour ce langage. GitHub Copilot est entraîné sur tous les langages de programmation publiquement disponibles. Plus le langage est populaire, plus l’efficacité de Copilot s’accroît. Par exemple, JavaScript est bien représenté dans les dépôts publics et c’est l’un des langages les mieux pris en charge par GitHub Copilot. En revanche, les langages moins représentés dans les dépôts publics peuvent produire moins de suggestions ou des suggestions moins performantes.
L’équipe GitHub propose des extensions pour certains des environnements de développement (IDE) populaires tels que Visual Studio Code, Visual Studio, Vim et les IDE de JetBrains. Pour commencer avec GitHub Copilot, abonnez-vous à GitHub Copilot, installez l’extension dans votre IDE préféré et ajoutez votre compte GitHub dans l’IDE.
Tout est logique jusqu’ici, n’est-ce pas ? Cela signifie-t-il que vous n’avez rien d’autre à considérer ? Pas vraiment. GitHub Copilot n’est pas gratuit. Du moins, pas au moment de la rédaction de ce blogue. Il n’est accessible qu’aux développeurs qui y sont abonnés. De plus, Copilot ne suggère pas toujours le code le plus sécurisé et il peut comporter des bogues. Symboliquement aussi, c’est au pilote de faire voler l’avion. Le copilote est le second. De même, il revient au développeur de vérifier l’authenticité du code suggéré par Copilot. C’est au développeur de décider s’il accepte ou non la suggestion du Copilot. L’avantage, c’est que nous avons un excellent apprenant dans notre Copilot. Il apprend immédiatement et se corrige. Heureusement, il ne refera pas la même erreur. Copilot ne comprend pas toujours pleinement le contexte du code pour lequel il génère des suggestions, donc les développeurs (les pilotes) doivent écrire quelques lignes de code initiales sur la base de l’instruction commentée afin que Copilot recueille plus d’informations sur le contexte et puisse adapter ses suggestions. De plus, Copilot peut ne pas être capable de générer du code pour des cas d’utilisation très précis ou spécialisés sur lesquels travaillent les développeurs.
Maintenant que j’ai expliqué comment GitHub Copilot peut aider les organisations à accroître la productivité des développeurs, permettez-moi d’ajouter qu’il peut aussi améliorer la qualité du code en suggérant des extraits de code et des conseils sur les meilleures pratiques. Cela permet non seulement aux entreprises de standardiser le code à l’échelle de l’entreprise, mais aussi d’aider les développeurs à réduire leur fatigue mentale, surtout lorsqu’ils doivent respecter des échéances serrées. Pour soutenir les développeurs, les administrateurs peuvent activer GitHub Copilot pour leurs équipes et choisir quelles organisations, équipes et développeurs recevront des licences. Ils peuvent facilement définir des règles pour appliquer les paramètres utilisateur de correspondance de code public au nom de votre organisation. Avec Copilot pour l’entreprise, GitHub ne conservera, n’enregistrera ni ne partagera vos extraits de code, que les données proviennent de dépôts publics, de dépôts privés, de dépôts non GitHub ou de fichiers locaux.
Chez HCLTech, nous travaillons avec plusieurs clients pour les aider à comprendre où et comment GitHub Copilot pourrait être utilisé au mieux. Il en est à ses débuts, mais des temps passionnants s’annoncent, tant pour les fournisseurs de services comme nous que pour nos clients issus d’un large éventail de secteurs partout dans le monde. Selon moi, si l’intelligence artificielle a déjà fait une percée dans le traitement du langage naturel, il ne nous reste plus beaucoup de temps avant que les langages informatiques, qui sont par essence artificiels, ne soient la prochaine forteresse à tomber. S’il est vrai que nous constatons déjà des avantages pour les tâches simples, je suis certain que le point d’inflexion viendra dans quelques années, lorsque même une partie des connaissances de domaine nécessaires à la production de code complexe commencera aussi à être apportée par GitHub Copilot.
Les possibilités sont infinies, et j’ai hâte de voir ce que l’avenir nous réserve, à vous comme à moi.

