Alan Zeichick | Senior Writer | 8 octobre 2024
L'IA générative peut aider à écrire des sonnets dans le style de Shakespeare, mais aussi à changer de vitesse et à rédiger un business plan exploitable basé sur des données brutes et des analyses. Compte tenu des bons intrants et de la bonne formation, la GenAI peut même permettre de créer un concept de produit, un jingle publicitaire accrocheur, un logo et un plan marketing complet avec des conseils en matière de prix. Il n'est donc pas étonnant que la GenAI aide les équipes de développement logiciel tout au long du cycle de développement ou même écrive du code en Java, C++, JavaScript, SQL ou dans le langage que votre organisation préfère.
Pour le système de GenAI, le codage n'est pas différent de l'écriture d'un poème avec un schéma de rimes et une métrique spécifiques en anglais, espagnol ou latin. Et l'utilisation de la GenAI pour assister le processus de développement de logiciels représente une formidable opportunité : les analystes de PwC affirment qu'en travaillant avec les outils de génération de code de GenAI, une équipe de développement peut constater des avantages en termes de performances de 20 à 50 % en ce moment. Voyons comment ça marche.
L'intelligence artificielle générative, ou la GenAI, est une technologie en évolution rapide qui peut aider à créer de nouveaux contenus en extrapolant à partir des données d'entraînement. Les modèles de GenAI fonctionnent en créant puis en utilisant un réseau neuronal artificiel codé dans le logiciel. De nombreux réseaux neuronaux comprennent des milliards, voire des billions, de paramètres spécifiques, ou valeurs, qui sont "entraînés" par le traitement d'énormes quantités de matériaux. Heureusement, les modèles plus efficaces peuvent s'avérer être d'excellents programmeurs une fois qu'ils sont entraînés avec un ensemble raisonnablement large et diversifié d'exemples de code fonctionnel, sûr et efficace.
Lorsqu'il apprend à écrire du code pendant le processus d'entraînement, ce qui entraîne un grand modèle de langage, ou LLM, le système de GenAI tente de prédire la prochaine commande. Il teste ensuite cette prédiction : si elle est bonne, les paramètres neuronaux sont ajustés d'une manière. Si la prédiction est mauvaise, les paramètres sont ajustés d'une autre manière. Avec suffisamment d'itérations, le système de GenAI permet de générer des résultats en fonction de ses données d'entraînement. Ensuite, lorsque la précision est suffisante, le système de GenAI est chargé de générer un nouveau code en fonction des paramètres d'entrée ou des invites. Si elle fait du bon travail, vous êtes prêt pour décoller. Sinon, il est temps pour les scientifiques de l'IA de comprendre ce qui s'est mal passé.
La bonne nouvelle : vous n'avez pas besoin de créer votre propre LLM axé sur le code. Cela a déjà été fait pour vous par les principaux fournisseurs d'outils.
Principaux points à retenir
Lors de cette écriture, ne vous attendez pas à décrire un programme complexe et à ce qu'un système de GenAI génère une application complète et prête à l'emploi en fonction de l'invite. Nous n'y sommes pas encore. Cependant, des outils de GenAI sont utilisés pour augmenter le travail des équipes de développement d'entreprise, les aidant à améliorer la qualité du code ainsi que la productivité individuelle. Vous pouvez considérer la GenAI comme un membre de l'équipe occupant un ou plusieurs rôles.
L'IA générative est importante pour le développement de logiciels, car elle peut aider les équipes de développement à être plus productives à chaque étape du cycle de développement de logiciels. C'est essentiel parce que les entreprises modernes utilisent des logiciels, il n'y a aucun doute à ce sujet. Beaucoup de ces logiciels, y compris les processeurs de texte, les feuilles de calcul, les systèmes de comptabilité et de RH, sont disponibles. Mais un avantage concurrentiel provient de l'écriture de logiciels personnalisés pour les opérations back-end, les sites Web, les bases de données, les applications mobiles, etc.
Le défi : un code de haute qualité nécessite du temps et de l'expertise pour être créé, soit par le personnel de développement ou les entrepreneurs. Lorsque de nouvelles applications sont nécessaires pour saisir une opportunité ou relever un défi, il y a souvent un arriéré de projets dans la file d'attente. Embaucher plus de développeurs est un processus lent, et les intégrer également. Et le temps c'est de l'argent. Avec la GenAI, de nouvelles idées peuvent être mises en production plus tôt, ce qui permet de gagner ou d'économiser de l'argent, d'améliorer la satisfaction des employés et des clients, et d'aider autrement l'organisation à remplir sa mission.
La GenAI peut être un ajout précieux aux équipes de développement de logiciels d'entreprise et, comme c'est le cas avec les outils qui aident les développeurs, votre entreprise peut définir, mesurer et évaluer ces améliorations. Toutes les plateformes de développement qui utilisent des technologies modernes, telles que GitHub ou des systèmes de gestion de code source, collectent régulièrement des mesures sur les performances des développeurs et des équipes, telles que des lignes de code par jour et la qualité du code.
Les équipes de développement qui intègrent la GenAI pour l'ensemble du cycle de vie, de la planification du projet à la conception architecturale en passant par l'analyse du code et les questions/réponses, trouvent souvent qu'elles fonctionnent beaucoup plus rapidement. Voici quelques-unes des façons dont la GenAI peut vous aider :
L'IA générative peut aider le développement de logiciels d'entreprise en aidant à améliorer la productivité des développeurs et des équipes, en les aidant à créer des logiciels de meilleure qualité plus rapidement. Les domaines où il est particulièrement pratique comprennent la définition d'architectures logicielles, la création de plans de produits et la génération de code.
La GenAI excelle également pour aider avec des tâches répétitives et générer le code dit boilerplate qui est générique pour de nombreux programmes, qu'un développeur humain peut ensuite personnaliser et compléter ou utiliser ailleurs. La GenAI peut également aider à examiner le code source du logiciel à la recherche de failles et de problèmes potentiels, tels que des failles de sécurité et où les fonctionnalités du code peuvent s'écarter des exigences des utilisateurs ou des normes de l'entreprise.
Il existe de nombreux domaines dans lesquels les outils de développement basés sur la GenAI peuvent agir en tant qu'assistants pour les développeurs de logiciels d'entreprise individuels ou en tant que membres complets de l'équipe. Voici quelques-uns des endroits les plus courants où la technologie peut aider aujourd'hui, de la conception de logiciels au déploiement de logiciels.
1. Détection et débogage des bugs. Les systèmes de GenAI peuvent aider efficacement à identifier et à corriger ou à suggérer des correctifs pour les erreurs de code. Bien sûr, toute une industrie s'articule autour de la correction des défauts ; les outils open source et commerciaux peuvent analyser le code source à la recherche de défauts de sécurité ou fonctionnels, y compris des erreurs subtiles qui ne peuvent se produire que si le système est fortement chargé, ou s'il y a des fuites de mémoire, des problèmes d'exécution multithread, des tentatives d'accès à la mémoire protégée, et bien plus encore.
La GenAI peut ajouter de la valeur à la résolution des bugs de plusieurs façons. Tout d'abord, il peut utiliser des prompts pour aider à analyser si le code fera ce que le développeur ou la partie prenante voulait, car même si le code est compilé et exécuté correctement, il peut ne pas effectuer la bonne action ou renvoyer le résultat souhaité. Deuxièmement, la GenAI peut aider à résumer les rapports de défauts des outils traditionnels pour aider les équipes de test et les développeurs à comprendre les erreurs subtiles, à trouver des modèles de code erroné et à suggérer des correctifs.
2. Génération de code. La GenAI peut automatiser l'écriture de code en fonction d'invites ou de spécifications. Comme mentionné, il est peu probable que la GenAI génère une application métier complexe de sitôt. Cependant, il peut aider à créer du code standard que les développeurs peuvent compléter ainsi que des fragments de code qui pourraient implémenter un algorithme complexe, effectuer un appel de procédure difficile ou accéder à des ressources externes.
Par exemple, de nombreux développeurs savent utiliser le langage SQL pour lire, écrire et mettre à jour des informations sur la base de données. Mais il existe un art d'écrire des procédures stockées SQL qui peuvent gérer des tables de base de données complexes et s'exécuter efficacement sur des ensembles de données très volumineux, par exemple. Les outils de GenAI peuvent utiliser des invites pour aider le programmeur à exprimer les exigences d'accès à la base de données, puis à fournir un appel ou une procédure SQL suggéré qui peut être copié et collé dans l'application.
3. Révision de code. La GenAI peut vous aider à examiner la qualité, la sécurité et le respect des meilleures pratiques du code. Les revues de code sont un élément essentiel du processus de développement logiciel, dans lequel une équipe examine un code complexe dans un cadre de groupe, projeté sur un écran ou un grand moniteur, afin de valider sa fonctionnalité appropriée et de suggérer des points à améliorer. Les développeurs peuvent trouver les révisions de code stressantes, surtout lorsqu'ils sont en présence d'ingénieurs logiciels plus expérimentés qui ne trouvent que des erreurs. Les revues de code prennent également beaucoup de temps et nombreux ceux sont qui veulent simplement les terminer rapidement, ce qui peut entraîner un manque de diligence.
La GenAI peut aider les développeurs en parcourant une revue préliminaire du code pour repérer les erreurs évidentes. Cela aide les développeurs juniors à apprendre et peut accélérer les sessions de révision en personne. La GenAI peut également agir en tant que membre participant de l'équipe de revision du code de groupe, en mettant en évidence les domaines qui nécessitent une attention supplémentaire, même en offrant ses propres conseils sur la meilleure façon d'apporter des améliorations.
4. Documentation. L'IA peut générer ou améliorer automatiquement la documentation pour les bases de code. Même avec les meilleures intentions, les développeurs sont enclins à demander : "Qu'est-ce que je pensais dans le monde ?" lors de la révision des logiciels qu'ils ont écrits quelques mois plus tôt. C'est pourquoi la documentation est si importante à de nombreux niveaux, y compris pour l'architecture complète du projet et les objectifs de modules ou de microservices spécifiques. Dans les modules et les services, la documentation peut expliquer les décisions prises pour les bibliothèques, les API et les algorithmes, en particulier lorsque le développeur a le choix. Il y avait une raison, maintenant, qu'est-ce que c'était ? La GenAI peut vous aider en demandant au développeur, pendant que le codage est en cours, d'expliquer ces décisions, puis d'étendre ces explications dans une documentation facile à comprendre.
En outre, lorsque la GenAI est utilisée pour générer du code lui-même (voir la section 2 ci-dessus), il peut écrire une documentation complète qui explique ce que fait le fragment de code ou le microservice et comment l'utiliser correctement.
5. Apprentissage et formation. La GenAI peut aider à fournir des exemples et des explications instantanés pour améliorer les compétences des développeurs. Les développeurs de logiciels, même ou peut-être surtout, les codeurs star, apprennent en permanence. Il existe toujours de nouvelles technologies, telles que l'IA et les microservices, qui arrivent en ligne, ainsi que de nouveaux outils, de nouvelles fonctionnalités linguistiques, de nouveaux modèles de conception, de nouvelles vulnérabilités de sécurité, de nouvelles normes et meilleures pratiques d'entreprise, et même de nouvelles exigences de conformité.
Bien qu'il existe de nombreux cours et classes ainsi qu'une formation et un mentorat internes, l'aide continue est précieuse. La GenAI offre le potentiel d'aider à détecter les difficultés d'un développeur, telles que les tentatives d'utilisation d'une fonctionnalité obsolète ou d'une API obsolète, et de fournir une formation instantanée et personnalisée. Il peut également, par le biais d'invites, aider à fournir des conseils instantanés lorsque le développeur ne sait pas ou ne se souvient pas comment effectuer une nouvelle tâche ou rarement utilisée. C'est comme un écran d'aide mais personnalisé pour cette situation exacte.
6. Refactorisation. Optimiser et restructurer le code existant pour de meilleures performances est quelque chose que la GenAI peut aider. La refactorisation est un élément essentiel du cycle de développement du logiciel : c'est là que vous prenez une section de code et, sans modifier ses fonctionnalités, que vous le faites fonctionner mieux. Cela peut signifier améliorer sa vitesse et son évolutivité, diminuer sa consommation de mémoire, mettre à jour un algorithme, tirer parti d'un nouveau raccourci de microprocesseur, ou utiliser une nouvelle instruction de langage. Les développeurs utilisent des mesures d'exécution pour repérer les zones de code qui sont lentes, utilisent trop de ressources ou causent des retards de bout en bout et les cibler pour la refactorisation.
La refactorisation peut être un endroit idéal pour la génération de code de GenAI, où les développeurs alimentent le code problématique dans le système et demandent essentiellement : "Pouvez-vous créer une version qui s'exécute plus rapidement ?" Nous simplifions trop, mais en voyant ce que le code fait et comment il fonctionne, les capacités prédictives de l'IA générative peuvent souvent lui permettre de trouver une meilleure approche. De plus, comme l'ancien code et le code refactorisé peuvent être comparés et mis en concurrence, il est facile de déterminer les avantages du processus de refactorisation et de vérifier que, en effet, la fonctionnalité sous-jacente n'a pas changé.
7. Test. La GenAI peut vous aider à créer des cas de test, à automatiser vos processus de test et à simuler des cas en périphérie. Différentes méthodologies ont leurs propres vues uniques du processus de test logiciel. Le développement piloté par les tests (TDD), par exemple, insiste sur le fait qu'avant d'écrire une seule ligne de code, vous créez des cas de test pour vous assurer que tout ce que vous écrivez fonctionnera correctement. Dans d'autres méthodologies, l'équipe de développement peut effectuer des tests à la fin du parcours ; dans d'autres, une équipe de test dédiée effectue des tests. Le rôle des parties prenantes dans les tests est essentiel et varie en fonction de la méthodologie : Parfois, les parties prenantes sont constamment impliquées et dans d'autres cas, elles n'examinent que les versions candidates.
La GenAI peut jouer plusieurs rôles pour aider à la gestion des tests et des tests. Nous avons mentionné la détection de bugs, mais la GenAI peut également aider à écrire des scripts qui peuvent être utilisés comme outils d'automatisation des tests, un processus que de nombreux développeurs trouvent fastidieux. Ces outils améliorés par la GenAI peuvent également aider à tester les cas en périphérie, c'est-à-dire les situations qui sont peu susceptibles de se produire, mais qui doivent toujours être gérées correctement par un module de code, une procédure stockée ou un microservice. En outre, la GenAI peut aider à examiner les cas de test, y compris ceux écrits par des humains, pour déterminer s'il s'agit de bons tests et qu'ils couvrent toutes les situations probables, y compris les conditions d'erreur et les tentatives de piratage du code lors de l'exécution.
"Il est difficile de faire des prédictions, en particulier sur l'avenir", a déclaré le grand joueur de baseball Yogi Berra. L'IA générative est un nouveau domaine : les premiers exemples de la technologie n'ont émergé qu'au début des années 2020 avec des produits tels que ChatGPT qui se concentraient sur la génération de texte, et DALL-E pour la création d'images. De nombreux consommateurs et dirigeants d'entreprise ont commencé à se pencher sur la GenAI vers 2022, il y a seulement deux ans.
Peu importe comment vous voyez la GenAI, nous n'en sommes qu'aux premières étapes de la technologie et trouverons sans aucun doute de nouveaux cas d'utilisation commerciaux dans des domaines tels que le développement de logiciels.
Mais faisons un pari : Que pouvons-nous attendre au cours des prochaines années ?
Pour commencer, pour que la GenAI fasse tout ce qu'elle peut faire aujourd'hui, mais mieux, en termes de soutien des équipes de développement avec la génération de code, l'assurance qualité, la documentation et la création de cas de test. La GenAI peut devenir plus conversationnelle et mieux en mesure d'interagir avec les développeurs, et les non-développeurs, pour les guider tout au long du processus de définition des exigences, puis de transformer ces exigences en plans de projet, en documentation, en cas de test et en code.
Si nous regardons vraiment dans la boule de cristal, peut-être que certains logiciels n'auront pas besoin d'être écrits du tout. Les utilisateurs professionnels peuvent simplement indiquer au système de GenAI ce qu'ils souhaitent accomplir, et le logiciel créera des applications ad hoc qui effectuent exactement cette tâche. Quel que soit l'avenir de GenAI dans le développement de logiciels, il aura probablement une valeur énorme pour les entreprises qui l'embrassent.
L'IA générative d'Oracle est disponible aujourd'hui avec d'énormes fonctionnalités intégrées dans les applications métier, telles que Fusion et NetSuite, et intégrées à Oracle Database 23ai.
Un domaine intéressant à explorer est la façon d'utiliser la GenAI et Oracle APEX pour le développement d'applications low code à l'aide d'une nouvelle fonctionnalité, APEX AI Assistant, qui peut aider les développeurs à effectuer des tâches complexes. Plus généralement, vous pouvez vous inscrire pour obtenir un compte Oracle Cloud Infrastructure (OCI) et obtenir des crédits cloud gratuits pour essayer les services d'IA d'Oracle, y compris la GenAI. Lancez-vous gratuitement.
Pour une telle nouvelle technologie, les applications de l'IA générative au développement de logiciels sont infinies. Les chances sont que vos développeurs trouveront la GenAI pour être un assistant précieux, et peut-être, un membre essentiel de l'équipe.
Les principaux cas d'utilisation de l'IA incluent les chatbots qui révolutionnent le service client et les algorithmes qui transforment les expériences de santé. Le fil de connexion ? Développement logiciel.
Comment utiliser l'IA générative dans le codage ?
La GenAI peut être utilisée pendant de nombreuses parties du processus de développement logiciel. Pour le codage, la GenAI doit être formée au langage de programmation spécifique utilisé pour votre projet. Donnez au système des commandes très spécifiques, appelées invites, pour ce que vous souhaitez faire, et il devrait être en mesure de générer du code source fini prêt à être compilé et exécuté ou ajouté dans votre système de gestion du code source ou votre référentiel en ligne, tel que Github.
Puis-je créer des logiciels à l'aide de l'IA ?
Vous pouvez créer des logiciels à l'aide de la GenAI de plusieurs façons. Il peut aider à générer du code, bien qu'à ce stade du développement de la technologie, ce code n'exécute que des fonctions relativement simples. La valeur réelle de l'IA générative, au moins maintenant, est d'aider votre équipe de développement à réaliser des tâches telles que la planification de projets, la conception d'architecture, la génération de cas de test, l'exécution de révisions de code et la rédaction de documentation.
Comment l'IA sera-t-elle un défi dans le développement de logiciels ?
La GenAI est encore nouvelle, en particulier pour une utilisation au sein d'une équipe de développement. Sans doute le plus grand défi sera l'acceptation de la technologie par des développeurs sceptiques qui sont à l'aise avec le statu quo et résistants aux changements de leurs méthodologies, chaînes d'outils et processus. Certains peuvent également considérer la GenAI comme une menace potentielle pour leur carrière.
Au-delà de cela, chaque organisation devra renforcer la confiance dans le logiciel de GenAI. Le code est-il solide, sûr et performant ? Les cas de test sont-ils exacts et offrent-ils une couverture complète du code ? La documentation répond-elle aux exigences ? Les premières étapes du développement de logiciels assistés par la GenAI seront largement expérimentales. Les résultats, si la technologie est appliquée correctement, devraient être considérablement améliorés la productivité des développeurs, apportant de meilleurs logiciels en production plus rapidement et à moindre coût, pour aider l'organisation à remplir sa mission.
Enfin, la loi continue d'évoluer quant à la propriété et à la protection du code généré par l'IA. Pouvez-vous enregistrer un droit d'auteur dans un logiciel où l'IA a été utilisée pour générer une partie du code ? Si vous utilisez un système de GenAI commercial, les conditions d'utilisation vous imposent-elles de restituer toute sortie au propriétaire du modèle ? Vous devez examiner ces problèmes avant de vous lancer dans l'utilisation de la GenAI dans le développement de logiciels.
