D’ici 2026, les pratiques de codage traditionnelles devraient fortement diminuer à mesure que les outils d’IA s’intègrent davantage dans le processus de développement.
Matt Garman, PDG d’AWS, suggère que le rôle traditionnel des développeurs pourrait changer de manière substantielle, en s’éloignant des tâches de codage manuel.

Dans ce scénario futur, les développeurs devraient passer plus de temps à comprendre les besoins des clients, les objectifs de l’entreprise et les résultats escomptés des applications logicielles, plutôt qu’à écrire du code ligne par ligne.

Les outils d’IA font plus qu’automatiser les tâches répétitives ; ils transforment la façon dont le code est généré, géré et déployé.
Les développeurs devront s’adapter en se concentrant davantage sur des rôles stratégiques, tels que la conception de produits, l’expérience utilisateur et l’analyse commerciale, tout en tirant parti de l’IA pour prendre en charge la majeure partie du travail de codage.

Ce changement nécessite un changement d’état d’esprit : au lieu de se considérer comme des créateurs de code, ils deviennent des résolveurs de problèmes et des concepteurs de systèmes qui guident l’IA pour atteindre des objectifs commerciaux spécifiques.

À quoi s’attendre lorsque l’IA s’emparera du développement de logiciels ?

Matt Garman, PDG d’AWS, prédit que d’ici 2026, le domaine du développement logiciel connaîtra une forte baisse des rôles de codage traditionnels.
À mesure que la technologie de l’IA progresse, le rôle des développeurs évoluera du codage vers une fonction plus stratégique, où la compréhension des besoins des clients et l’alignement des résultats des logiciels sur les objectifs de l’entreprise deviendront l’objectif principal.

Au lieu de passer des heures à écrire et à déboguer du code, les développeurs devront interpréter les besoins de l’entreprise, les traduire en instructions compréhensibles par la machine et affiner les résultats de l’IA pour s’assurer qu’ils répondent aux objectifs souhaités.

Cette évolution laisse entrevoir un avenir où les développeurs serviront de plus en plus d’intermédiaires entre les systèmes d’IA et les équipes commerciales, en se concentrant sur l’optimisation des résultats plutôt que sur les aspects techniques du codage.
La touche humaine sera essentielle pour affiner les résultats générés par l’IA afin de les adapter à des contextes commerciaux spécifiques, souvent complexes.

Comment le codage GenAI diffère de la programmation traditionnelle

La transition vers un codage centré sur la GenAI apporte de nouveaux défis et des différences essentielles.
Contrairement au code généré par l’homme, les résultats produits par la GenAI peuvent être imprévisibles, avec des comportements que certains développeurs décrivent comme « extraterrestres ».
Ces codes peuvent ne pas se conformer à la logique standard ou aux modèles attendus, ce qui les rend plus difficiles à déboguer et à gérer.

Alors que les programmeurs traditionnels s’appuient sur leur intuition et leur expérience, la GenAI peut suivre les règles de manière rigide ou, au contraire, trouver des moyens créatifs de les contourner, ce qui entraîne des complications imprévues.

Par exemple, les systèmes d’IA peuvent optimiser le code de manière à respecter techniquement les lignes directrices, mais sans tenir compte des nuances contextuelles essentielles, telles que les normes organisationnelles ou les exigences spécifiques des clients.
L’imprévisibilité dans ce domaine oblige les équipes de développement à adopter de nouveaux mécanismes de contrôle et processus de validation.
Comprendre les limites de l’IA et son approche « créative » du respect des règles est essentiel pour gérer la GenAI de manière compétente.

La surveillance humaine est essentielle dans un monde dominé par l’IA

La supervision humaine est indispensable dans le nouvel espace de codage piloté par l’IA, notamment en raison de la tendance de l’IA à avoir des « hallucinations » ou à produire des résultats incorrects.

Les systèmes d’IA, en particulier ceux qui génèrent du code, peuvent produire des résultats qui semblent plausibles mais qui contiennent des erreurs majeures ou des incompréhensions du contexte du problème.
Les ingénieurs doivent valider rigoureusement ces résultats pour s’assurer qu’ils fonctionnent correctement et qu’ils n’introduisent pas de vulnérabilités ou d’erreurs cachées.

La surveillance comprend une approche à plusieurs niveaux : examen manuel, tests automatisés et contrôle continu.

L’examen manuel permet de s’assurer que les résultats de l’IA sont conformes aux exigences de l’entreprise, tandis que les outils de test automatisés vérifient l’absence d’erreurs ou de vulnérabilités.
Une surveillance continue est nécessaire pour identifier avec précision tout problème susceptible de survenir après le déploiement, afin que le code généré par l’IA fonctionne de manière fiable au fil du temps.

De nouvelles normes de test pour garantir la sécurité du code d’IA

Les outils de test automatisés, les révisions de code et les contrôles de sécurité doivent devenir des pratiques courantes.
Les méthodes de test traditionnelles, qui se concentrent principalement sur la fonctionnalité, sont inadéquates pour les produits générés par l’IA.
Les nouvelles approches de test doivent inclure des tests de pénétration automatisés et d’autres techniques pour découvrir les vulnérabilités cachées et évaluer la robustesse du code généré par l’IA.

Par exemple, dans les environnements à fort enjeu tels que les soins de santé, la finance ou les infrastructures critiques, où les erreurs logicielles peuvent avoir de graves conséquences, la marge d’erreur est faible.

Des tests rigoureux doivent être mis en œuvre pour éviter que les erreurs induites par l’IA ne provoquent des défaillances ou des brèches dans les systèmes – et l’accent doit être mis ici sur la création de stratégies de test adaptatives qui évoluent en même temps que les capacités de l’IA.

Combler les lacunes de l’IA en matière de contexte et de communication

Les outils d’IA générative n’ont souvent pas le contexte partagé que possèdent les développeurs humains, ce qui entraîne des problèmes potentiels de communication et de codage.
Contrairement aux programmeurs humains, qui s’appuient sur une connaissance approfondie des pratiques organisationnelles et des projets antérieurs, l’IA ne dispose pas de cette connaissance internalisée, ce qui nécessite des instructions et une supervision plus explicites.

Selon Dev Nag, les problèmes liés au contexte dans les environnements de codage de la GenAI pourraient être multipliés par 100.

Les équipes de développement doivent passer beaucoup plus de temps à gérer les résultats de l’IA, à clarifier les exigences et à s’assurer que les outils d’IA interprètent correctement les besoins de l’entreprise.
Cet écart de contexte suggère également la nécessité d’une documentation plus complète et d’une évolution vers des pratiques de communication plus compétentes.

Quelles sont les nouvelles méthodes de test nécessaires pour le code de l’IA ?

Les méthodes de test traditionnelles – axées sur les fonctionnalités – ne suffisent plus.
Les entreprises doivent au contraire mettre en œuvre des approches de test complètes et automatisées.
Les tests de pénétration automatisés, par exemple, devraient devenir une pratique standard pour identifier et traiter les risques de sécurité dans les applications générées par l’IA.

Ces méthodes permettent de découvrir des vulnérabilités, des portes dérobées ou d’autres éléments problématiques qui pourraient ne pas être mis en évidence par des tests conventionnels.
Elles sont particulièrement importantes compte tenu de la tendance de l’IA à générer des codes créatifs mais potentiellement peu sûrs, qui pourraient exploiter des faiblesses inconnues dans les systèmes ou les applications.

Les lacunes des outils de GenAI dans le développement de logiciels

Si les outils de GenAI sont efficaces pour générer de petits bouts de code et des prototypes, ils se heurtent à une logique complexe, à des bases de code volumineuses et à des problèmes inédits.
Les outils d’IA actuels excellent dans la résolution de tâches simples et le traitement de codes répétitifs, mais ils ne sont pas à la hauteur lorsqu’ils sont confrontés à des scénarios qui nécessitent une compréhension approfondie du contexte ou une résolution créative des problèmes.

Beaucoup de ces outils sont formés sur des référentiels publics, ce qui limite leur connaissance des systèmes existants ou propriétaires, tels que COBOL, qui est encore utilisé dans de nombreux systèmes financiers et gouvernementaux – entraînant des résultats inexacts ou l’incapacité de traiter des tâches spécifiques et complexes qui reposent sur des langages spécialisés ou obsolètes.

Comment l’IA va bouleverser les flux de travail et les rôles des développeurs

L’adoption de la GenAI entraînera des changements majeurs dans les flux de travail, les approches de développement et les mentalités des équipes.
La transition vers le développement assisté par l’IA exige une réévaluation des méthodes traditionnelles, obligeant les équipes à s’adapter à de nouveaux outils et cadres qui ne sont peut-être pas encore mûrs ou totalement intégrés.

De nombreux modèles d’IA pré-entraînés peuvent ne pas être mis à jour avec les derniers cadres ou bibliothèques, ce qui les rend moins efficaces dans des environnements où les bases de code sont vastes ou complexes.

Les développeurs devront assumer de nouvelles responsabilités, telles que l’orientation du comportement de l’IA et l’intégration de divers outils d’IA dans les systèmes existants, ce qui nécessite un changement d’état d’esprit pour passer de tâches purement techniques à des rôles de supervision plus stratégiques.

Les nouveaux problèmes étranges que l’IA apporte au codage

Les outils d’IA générative présentent parfois des comportements peu orthodoxes, tels que la génération de bibliothèques ou de cadres « imaginaires » qui n’existent pas.
Les hallucinations peuvent provoquer des erreurs de compilation et ne sont souvent détectées que par des installations ratées ou des messages d’erreur dans les environnements de développement (IDE).

Il s’agit là d’un défi unique : si les codeurs humains peuvent occasionnellement commettre des erreurs, il est rare qu’ils inventent entièrement des composants.
De telles erreurs soulignent à nouveau l’importance de tests et de processus d’examen rigoureux pour identifier et corriger ces problèmes dès le début du cycle de développement.

Nouveaux risques de sécurité liés à l’utilisation de l’IA pour le développement

S’appuyer davantage sur les modèles d’IA dans le développement introduit de nouvelles vulnérabilités en matière de sécurité.
À mesure que les organisations intègrent l’IA dans leurs processus, ces modèles pourraient devenir des cibles de grande valeur pour les attaquants.
Les modèles d’IA centralisés, en particulier, présentent un risque sérieux ; s’ils sont compromis, ils peuvent introduire des vulnérabilités qui contournent les contrôles de sécurité standard.

Les conséquences potentielles sont considérables et touchent des milliers d’applications dans tous les secteurs d’activité, ce qui exige une sensibilisation accrue et des investissements dans des mesures de sécurité visant à protéger les modèles d’IA contre l’exploitation.

Que se passe-t-il lorsque les modèles d’IA sont compromis au cours du développement ?

Les modèles d’IA compromis représentent une menace sérieuse, introduisant potentiellement des vulnérabilités qui échappent aux contrôles de sécurité conventionnels.
Ces risques s’étendent à l’ensemble de la chaîne d’approvisionnement des logiciels et ont un impact sur de nombreuses organisations et industries.

Comme le fait remarquer Ashley Rose, l’utilisation généralisée des modèles d’IA en fait des cibles de grande valeur et, en cas de compromission, les conséquences pourraient être étendues, affectant simultanément de nombreuses applications et de nombreux systèmes.

Compte tenu de ce potentiel de nuisance, les organisations doivent donner la priorité à la sécurisation de leurs modèles d’IA, à l’utilisation de pratiques de sécurité avancées et à la vigilance face aux menaces émergentes dans les environnements pilotés par l’IA.

Dernières réflexions

Alors que l’IA continue de perturber le développement de logiciels, la question est de savoir à quelle vitesse et avec quelle efficacité votre organisation peut l’intégrer pour rester compétitive.

Êtes-vous prêt à prendre le virage, à redéfinir les rôles et à sécuriser vos systèmes, ou risquez-vous d’être distancé dans un monde où la rapidité, l’adaptabilité et la vision stratégique sont les nouveaux moteurs de la réussite ?

Tim Boesen

septembre 6, 2024

11 Min