Premiers pas avec le développement de logiciels augmenté par l’IA
L’intelligence logicielle augmentée par l’IA forme un partenariat entre les développeurs humains et l’IA. Travaillant en équipe, ce puissant duo peut rendre le processus de création de logiciels plus rapide, plus facile et plus fiable. La méthode traditionnelle consistant à s’appuyer uniquement sur les humains tout au long du cycle de développement devient progressivement obsolète, affirme Anita Carleton, directrice de la division des solutions logicielles à l’Institut de génie logiciel de l’Université Carnegie Mellon. La notion actuelle de pipeline de développement logiciel sera remplacée par une notion dans laquelle l’IA et les humains collaborent pour faire évoluer continuellement le système en fonction de l’intention du programmeur, prédit-elle dans une interview par courrier électronique.
Avantages clés
La combinaison des humains et de l’IA peut non seulement accélérer le développement de logiciels en éliminant le travail répétitif, mais également améliorer la fiabilité du code et d’autres avantages par rapport aux processus de développement conventionnels, explique Carleton. Les progrès récents dans les outils génériques d’IA comme ChatGPT et les outils spécifiques au développement logiciel comme Copilot changent rapidement la façon dont les ingénieurs logiciels travaillent.
L’IA, lorsqu’elle s’appuie sur des données fiables, permet la conception, le développement et le déploiement de logiciels fiables en déplaçant l’attention des humains vers les tâches conceptuelles pour lesquelles les ordinateurs ne sont pas doués et en éliminant l’erreur humaine des tâches pour lesquelles les ordinateurs peuvent aider, explique Carleton. Le processus traditionnel de révision du code est entièrement basé sur l’humain. Avec l’ingénierie logicielle augmentée par l’IA, les révisions de code sont facilitées par des outils de révision basés sur l’IA. Ces outils peuvent accéder à de nombreux référentiels en ligne et fournir des suggestions d’amélioration du code.
Les humains sont excellents dans la résolution créative de problèmes, mais généralement médiocres pour garantir que les tests essentiels et les cas d’exception sont traités en toute sécurité, observe Adam Sandman, PDG du fournisseur d’outils de gestion de projet Inflectra par courrier électronique. L’IA permet aux développeurs d’écrire un morceau de code fonctionnel à 80 % qui peut être préparé à 100 % en demandant à l’IA de fournir une vérification améliorée des entrées, une gestion des erreurs et une vérification des valeurs nulles. Il note que le processus est similaire à celui d’un écrivain utilisant des vérificateurs d’orthographe et de grammaire pour détecter les erreurs évidentes.
Commencer
La première étape vers le déploiement de l’IA dans les processus de déploiement de logiciels consiste à s’assurer que le code source exécute des langages de programmation à jour, conseille par courrier électronique Jeremy Rambarran, professeur à la Graduate School of Technology de l’Université de Touro. Assurez-vous de donner aux développeurs un cadre pour démontrer quand l’IA est nécessaire et applicable.
Carleton recommande aux nouveaux arrivants dans le domaine du génie logiciel augmenté de se familiariser avec les nombreux outils et techniques du domaine, notamment :
ChatGPT et modèles d’IA conversationnels à usage général similaires
ChatGPT est un outil convivial déjà utilisé pour diverses tâches, notamment la génération de code, la révision de code, la correction de bogues et le travail de documentation. Microsoft Bing AI est un autre outil similaire utilisé par les développeurs pour obtenir des exemples de code et des suggestions de code. Google Bardeun nouvel outil qui est encore au stade expérimental, peut être utilisé pour la génération de code, les suggestions de code intelligentes et bien d’autres tâches similaires à ChatGPT.
Outils de tests autonomes
Les outils de test automatisés sont des applications puissantes pour le processus de test de logiciels. Appvance, Testim, testRigor, mabl et Functionize sont des outils de test autonomes populaires.
Outils de détection de bogues et de débogage basés sur l’IA
Il existe de nombreux outils de détection de bogues et de débogage basés sur l’IA, notamment des offres de développement et de génération de code, telles que Tabnine, Sourcegraph, aiXcoder et Hugging Face. Ce sont tous des outils populaires que les développeurs peuvent essayer s’ils souhaitent commencer à utiliser le développement de l’IA.
Ingénierie rapide
L’ingénierie rapide peut être utilisée pour interagir avec les services d’IA générative afin de réaliser des activités spécifiques de codage, de test ou de documentation d’ingénierie logicielle. L’apprentissage de modèles d’invite courants peut aider les utilisateurs à obtenir des résultats impressionnants plus rapidement et avec une plus grande répétabilité, explique Carleton.
Pièges possibles
Les nouveaux adeptes du développement de logiciels utilisant l’IA augmentée sont confrontés à plusieurs pièges potentiels majeurs, prévient Rambarran. En tête de liste se trouve le maintien de la qualité et de la fiabilité du code source, qui peuvent être menacées par divers bugs, erreurs et inefficacités. Il existe également des vulnérabilités de sécurité dont il faut être conscient lorsque de nouveaux systèmes et mises à jour sont mis en œuvre sur diverses applications et appareils.
L’inexpérience des développeurs constitue un autre danger possible, prévient Sandman. Un développeur peut, par exemple, demander à l’IA un morceau de code générique pour trier les données et ne pas se rendre compte qu’il s’agit d’un tri par représentation textuelle et non par valeur numérique, explique-t-il. Imaginez que cela se produise dans un produit comptable et que 10 soit inférieur à neuf.
Ne t’inquiètes pas
Il y a actuellement une angoisse considérable dans la communauté des développeurs, observe Sandman. Les diplômés actuels et futurs en informatique me demandent s’ils auront un emploi dans cinq ans. Il pense que ce sera le cas, mais il s’agira peut-être d’un travail très différent de celui prévu. Au lieu d’essayer de comprendre ce que fera l’IA par rapport à ce que fera un développeur humain, ils doivent voir l’IA comme un outil et se demander : que ferons-nous ensemble que nous ne pouvons pas faire maintenant ?