Technologies

Code généré par IA : pourquoi les développeurs sont méfiants

Code généré par IA : pourquoi les développeurs sont méfiants
Selon une étude, 96% des développeurs ne font pas entièrement confiance au code généré par IA. Sauf que, moins de la moitié d’entre eux le vérifient systématiquement avant de le valider. (Photo : Innova Labs/Pixabay)

Si les questions relatives à la qualité du code persistent, de nombreux développeurs éprouvent également des difficultés à vérifier la qualité du code généré par IA, en raison de son caractère verbeux, de sa complexité et de commentaires parfois trop péremptoires.

PublicitéVoir une large part des développeurs se méfier du code généré par IA n'est pas en soi une surprise. Mais constater que beaucoup affirment également qu'il devient de plus en plus difficile de détecter les erreurs créées par les assistants de programmation l'est un peu plus.

Alors que les assistants de programmation prennent en charge une part toujours plus importante du travail de programmation, les équipes de développement peinent à trouver le temps de repérer les erreurs, expliquent les responsables du développement. Si les assistants améliorent graduellement la qualité de leur code, ils ont aussi tendance à devenir plus verbeux - écrivant davantage de lignes de code pour corriger un problème -, ce qui rend la détection des erreurs plus difficile, selon les experts. Par conséquent, un problème majeur se pose avec le code généré par l'IA : les développeurs passent parfois plus de temps à vérifier le code généré par la machine qu'ils n'en auraient passé à écrire eux-mêmes ledit code !

Bien que les assistants de développement soient devenus omniprésents, les développeurs ne devraient pas leur faire confiance, assure Alex Lisle, directeur technique de la plateforme de détection de deepfakes Reality Defender. Tous les ingénieurs logiciels avec lesquels il travaille utilisent des assistants, mais les développeurs de l'entreprise surveillent de près leur production, explique-t-il. « En réalité, la plupart des développeurs dans mes équipes n'utilisent le code généré par l'IA que pour des tâches répétitives et la correction de quelques petits bugs, détaille-t-il. Nous n'avons absolument aucune confiance dans le code généré par l'IA. » Et, chez Reality Defender, la responsabilité de la qualité du code incombe bien au développeur qui utilise l'assistant de codage, insiste Alex Lisle.

Production de code à la chaîne

Le volume de code que peuvent générer les outils d'IA génère également ses propres effets de bord, reprend Alex Lisle. « C'est un peu comme avoir un développeur junior capable d'écrire une très grande quantité de code très rapidement, explique-t-il. Le problème, c'est que l'IA ne comprend pas le code, ni le contexte global. Elle fait souvent le contraire de ce qu'on lui demande. » Selon le CTO, une dépendance excessive au code généré par l'IA peut aboutir à un code source illisible. « Le problème, c'est que dès qu'on utilise [la technologie] à plus grande échelle, on obtient un code incroyablement instable et incompréhensible, ajoute Alex Lisle. On générer des centaines de milliers de lignes de code avec une IA, mais c'est très difficile à maintenir, très difficile à comprendre, et cela se révèle tout simplement inadapté en environnement de production. »

Assistants contre-productifs

PublicitéBrian Owens, président et architecte logiciel senior de Keypress Software Development Group, une entreprise spécialisée dans le développement en environnement Microsoft, explique que les résultats obtenus avec les assistants de codage basés sur l'IA sont mitigés. Si le code généré par l'IA ne nécessite souvent qu'une vérification minimale pour les cas d'utilisation limités et autonomes, pour les applications de production, le résultat peut être incohérent et problématique, précise-t-il. « Nous avons constaté que les outils d'IA ignorent parfois des aspects clés du code source existant ou ne respectent pas les normes de codage et les modèles d'architecture établis, précise Brian Owens. Cela engendre du travail supplémentaire pour notre équipe, notamment des révisions, des refactorisations et des corrections pour garantir que le code soit prêt pour la production. »

L'architecte logiciel a constaté que l'utilisation d'un assistant de codage ne permet pas toujours de gagner du temps par rapport à un développeur écrivant le code. « Dans certains cas, le temps consacré à la validation et à la correction du code généré par l'IA peut annuler les gains d'efficacité escomptés, et parfois même prendre plus de temps que si un développeur avait écrit le code sans assistance », explique-t-il.

Un manque de confiance majuscule

Une récente étude, menée auprès de plus de 1 100 professionnels IT par Sonar, fournisseur d'outils d'analyse de la qualité du code, confirme les inquiétudes exprimées par certains responsables du développement. Si 72% des répondants déclarent utiliser quotidiennement des assistants de codage, 96% d'entre eux affirment ne pas faire entièrement confiance au code généré par l'IA. Sauf que, parallèlement, moins de la moitié des développeurs indiquent vérifier systématiquement le code généré par l'IA avant de le valider, et près de quatre sur dix estiment que la relecture de ce code exige plus d'efforts que celle du code écrit par leurs collègues.

Selon Chris Grams, vice-président du marketing chez Sonar, à mesure que la qualité des assistants de codage s'améliore, les développeurs ont plus de mal à détecter les erreurs, et ce, bien que ces dernières soient bel et bien toujours présentes. « On se retrouve face à un problème similaire à la recherche d'une aiguille dans une botte de foin : même si le nombre de problèmes diminue globalement, ces problèmes peuvent engendrer une faille de sécurité majeure, bien dissimulée et difficile à détecter, mais susceptible de paralyser une application », explique-t-il.

Si de nombreux responsables du développement logiciel affirment ne pas faire confiance au code généré par l'IA, la question est peut-être plus complexe, selon Mark Porter, directeur technique du fournisseur de solutions d'analyse de données dbt Labs, dont les équipes utilisent largement les assistants. Selon lui, la fiabilité des résultats dépend en réalité du contexte. « Faire confiance au code écrit par l'IA revient à faire confiance au code écrit par un humain, dit-il. En général, je recherche les mêmes indicateurs de fiabilité dans le code généré par l'IA que dans n'importe quel autre code. S'il a été créé selon un processus rigoureux, je lui fais autant confiance qu'à un code écrit par un humain. »

Revue de code : le goulot d'étranglement

Cependant, le code généré par l'IA peut présenter des erreurs différentes de celles habituellement présentes dans le code écrit par des développeurs seuls. L'IA ajoute souvent de la complexité et formule des commentaires trop péremptoires, détaille Mark Porter. Il faut donc s'adapter à ces défis spécifiques.

La revue du code généré par l'IA engendre également ses propres difficultés, allongeant le temps consacré à cette activité par les développeurs. « Comme le volume de code généré est important, cela déplace le goulot d'étranglement de la production à la revue », souligne Mark Porter. Les vérificateurs humains doivent également maintenir une connaissance approfondie du code source, ce qui peut être simplifié par l'application des bonnes pratiques d'ingénierie logicielle.

« La revue du code généré par l'IA présente indéniablement des défis spécifiques, souligne Mark Porter. Mais se focaliser sur la confiance à accorder au code issu de l'IA est, à mon avis, se tromper de combat. Je cherche plutôt à mettre en place des processus, des directives et des formations pour accompagner mes ingénieurs dans l'utilisation de l'IA et les aider à écrire un code efficace, correct et maintenable. »

Partager cet article

Commentaire

Avatar
Envoyer
Ecrire un commentaire...

INFORMATION

Vous devez être connecté à votre compte CIO pour poster un commentaire.

Cliquez ici pour vous connecter
Pas encore inscrit ? s'inscrire

    Publicité

    Abonnez-vous à la newsletter CIO

    Recevez notre newsletter tous les lundis et jeudis