Les risques et les avantages de l’IA générative dans le développement de logiciels
Rejoignez-nous à Atlanta le 10 avril et explorez le paysage du personnel de sécurité. Nous explorerons la vision, les avantages et les cas d’utilisation de l’IA pour les équipes de sécurité. Demandez une invitation ici.
En tant que vétéran de l’écriture de code depuis 20 ans et PDG d’une entreprise au service des développeurs de logiciels, j’ai eu une réaction réflexe sceptique face aux premières prédictions selon lesquelles l’IA générative finirait par rendre obsolètes la plupart des compétences en développement de logiciels.
Même si je suis encore quelque peu sceptique, mon expérience avec la génération AI dans mon travail de développement quotidien m’a incité à ouvrir mon ouverture sur ce que je pense être possible. L’IA va changer le développement de logiciels de manière assez fondamentale, pour le meilleur et pour le pire. Commençons par les points positifs.
La fin du travail fastidieux
Les développeurs consacrent énormément de temps à des détails tels que la syntaxe et la ponctuation. Une grande partie de cela peut (et devrait) disparaître. Au lieu de se pencher sur des manuels ou de rassembler des extraits d’échanges de code, ils décriront un résultat souhaité et obtiendront un code parfaitement formaté en réponse. Les grands modèles de langage (LLM) peuvent également vérifier le code existant pour détecter les fautes de frappe, les erreurs de ponctuation et d’autres détails qui rendent les développeurs fous.
Réinventer les cadres
Les frameworks logiciels tels que Spring, Express.js et Django ont apporté un énorme gain de productivité en éliminant les aspects banals du développement logiciel, en établissant des directives cohérentes et en fournissant du code pré-écrit pour les fonctions courantes. Gen AI augmentera leur valeur en créant du code passe-partout, en automatisant les tâches répétitives et en suggérant des optimisations de code. L’IA peut également aider à personnaliser les composants du framework pour un projet spécifique.
Événement VB
L’AI Impact Tour d’Atlanta
Demandez une invitation
La montée du généraliste
La valeur marchande de nombreux développeurs réside dans leur expertise dans un langage particulier. La maîtrise de Python ou Ruby n’aura pas autant d’importance lorsque les machines peuvent cracher du code dans n’importe quel langage. De même, les compétences backend spécialisées telles que les tests et l’optimisation du code migreront rapidement vers les modèles Gen AI. Les compétences les plus prisées porteront sur ce que les machines ne font pas bien, comme créer des interfaces utilisateur convaincantes, traduire les exigences des utilisateurs en spécifications et inventer de nouvelles façons de soutenir les clients. Les poètes du logiciel, ou les personnes qui imaginent de grandes idées sur ce qui peut être accompli dans le code, seront sous le feu des projecteurs.
Une révolution dans les tests
La génération AI a été conçue pour tester des logiciels. Le développeur écrit le code et le bot crée autant de scripts de test que vous le souhaitez. Une récente enquête d’IDC a révélé que les deux principaux avantages les plus attendus de la génération AI sont, de loin, l’assurance qualité des logiciels et les tests de sécurité. Cela perturbera la pratique DevOps d’intégration/déploiement continu et enverra de nombreux spécialistes des tests à la recherche de nouvelles lignes de travail.
Le développement citoyen sous stéroïdes
La récolte actuelle d’outils de développement low-code/no-code est déjà bonne, et la génération AI les amènera au niveau supérieur. Malgré toute leur élégance automatisée, le low-code/no-code nécessite toujours que les gens mettent en place un flux de travail sur un tableau blanc avant de le confier au logiciel. À l’avenir, ils pourront donner au modèle un croquis dessiné à la main du flux de travail souhaité et récupérer le code nécessaire en quelques secondes.
Mais l’IA n’est pas une panacée
Malgré toutes ses promesses, la génération IA ne doit pas être considérée comme une panacée. Considérez ces inconvénients potentiels.
Risque de tests excessifs
Étant donné que les modèles peuvent produire des tests rapidement, nous pourrions nous retrouver avec bien plus que ce dont nous avons besoin. Le surtest est un problème courant dans le développement de logiciels, en particulier dans les organisations qui mesurent les performances en fonction du nombre de tests générés par une équipe. Exécuter trop de tests en double ou inutiles ralentit les projets et crée des goulots d’étranglement plus en amont du pipeline. Lorsque l’IA peut recommander quand supprimer les tests, alors nous verrons un énorme déblocage de développeurs dont la vision de la génération AI m’excite pour l’avenir.
Dégradation des compétences
Je choisirai toujours une personne paresseuse pour faire un travail difficile, car elle trouvera un moyen facile de le faire, est une citation souvent attribuée à tort à Bill Gates. Bien que l’origine de la citation ne soit pas claire, le sentiment est valable. Les gens paresseux trouvent des raccourcis qui évitent de travailler dur. La génération AI est un médicament pour les développeurs paresseux. Cela peut conduire à la création d’un code volumineux, inefficace et peu performant. Cela peut freiner l’innovation qui rend les grands développeurs si précieux. N’oubliez pas que la génération AI écrit du code basé sur des modèles et des données existants. Cela peut limiter le potentiel d’innovation des développeurs qui pourraient ne pas envisager des solutions plus originales.
Déficit de confiance
La génération AI est aussi bonne que les données utilisées pour entraîner le modèle. Des données de mauvaise qualité, des raccourcis de formation et une ingénierie d’invite médiocre peuvent conduire à un code généré par l’IA qui ne répond pas aux normes de qualité, est bogué ou ne fait pas le travail. Cela peut amener une organisation à perdre confiance dans la qualité de la génération IA et à passer à côté de ses nombreux avantages.
Maintenant, la question de l’argent : l’IA rendra-t-elle les développeurs de logiciels obsolètes ?
Bien que certains experts qui ont fait la une des journaux l’aient suggéré, il n’existe aucun précédent historique pour une telle conclusion. Les progrès technologiques, depuis les langages de haut niveau jusqu’à l’orientation objet jusqu’aux frameworks, ont progressivement rendu les développeurs plus productifs, mais la demande n’a fait qu’augmenter. La génération AI pourrait nuire au marché des compétences de base en codage bas de gamme, mais l’impact le plus important sera de faire progresser l’ensemble de la profession dans la chaîne de valeur pour faire ce que les LLM ne font pas très bien pour le moment : innover. N’oubliez pas que les modèles de génération IA sont formés sur ce qui est déjà connu, et non sur ce qui pourrait l’être. Je ne m’attends pas à ce qu’une machine conçoive une interface utilisateur révolutionnaire ou imagine un Uber de si tôt.
Néanmoins, les développeurs ne verront plus une telle transformation dans leur carrière. Au lieu de se déchaîner contre la machine, comme je l’ai fait au départ, ils devraient surfer sur la vague. La perspective de supprimer une grande partie de l’ennui lié à la création de logiciels devrait enthousiasmer tout le monde. Le risque de disparition de certaines fonctions doit inciter à l’action. Les développeurs de haute qualité qui traduisent les exigences commerciales en logiciels élégants et performants seront toujours très demandés. Donnez-vous pour mission de faire progresser vos compétences dans la pile.
Keith Pitt est fondateur et PDG de Buildkite.
DataDecisionMakers
Bienvenue dans la communauté VentureBeat !
DataDecisionMakers est l’endroit où les experts, y compris les techniciens travaillant sur les données, peuvent partager des informations et des innovations liées aux données.
Si vous souhaitez en savoir plus sur des idées de pointe et des informations à jour, sur les meilleures pratiques et sur l’avenir des données et de la technologie des données, rejoignez-nous sur DataDecisionMakers.
Vous pourriez même envisager de rédiger votre propre article !
En savoir plus sur DataDecisionMakers