Technologies

Coder avec l'IA ou l'art perdu de l'ingénierie applicative

Coder avec l'IA ou l'art perdu de l'ingénierie applicative
Concevoir des fonctions innovantes et optimiser une application pour sa plateforme cible relèvent de l'ingénierie et restent hors de portée des IA génératives. (Photo : Coyot / Pixabay)

Le développement piloté par l'IA est déjà largement utilisé, mais avons-nous bien mesuré tous les risques liés à cette technologie avant d'en constater les dégâts ? Notamment en termes de sécurité et d'optimisation du code.

PublicitéL'IA est en train de changer le monde de la programmation, un monde déjà en profonde évolution depuis plusieurs années. Je pourrais bien sûr expliquer comment la pratique émergente consistant à utiliser des programmeurs augmentés par l'IA accroît la productivité et réduit les coûts. Mais ces avancées se font au prix d'inconvénients que beaucoup ne mesurent pas.

Encore une fois, la question n'est pas "Pouvons-nous ?", mais plutôt "Devons-nous ?". Passons en revue quelques points essentiels à cette aune.

Ce que l'IA ne peut pas faire

L'IA générant du code apprend à partir des référentiels de codes existants. Or un développeur a souvent besoin d'une compréhension plus contextuelle du code généré. Autrement dit, générer un code qui fonctionne ne suffit pas, il fait savoir le comprendre et le maintenir. Donc s'en remettre à l'IA peut entraver le contrôle des développeurs sur leur logiciel et provoquer des erreurs lors de la correction ou de la modification des applications.

En outre, le code généré doit respecter les conventions de style ou les meilleures pratiques et inclure une gestion appropriée des erreurs. Là encore, le recours à l'IA peut compliquer le débogage, la maintenance et la collaboration des équipes.

La génération de code pilotée par l'IA se concentre sur l'apprentissage à partir de bases de codes existants, utilisées comme données d'entraînement, afin de générer un nouveau code. Les développeurs utilisant de l'IA générative ont donc une approche moutonnière ('monkey see, monkey do'). Cette approche peut être utile pour les tâches répétitives ou standards, auxquels sont confrontés la plupart des développeurs, mais les entreprises peuvent avoir besoin de plus de créativité et d'innovation pour les problèmes complexes ou spécifiques. L'utilisation d'un code issu d'une IA générative peut alors limiter la conception de solutions nouvelles et entraver le développement d'applications réellement innovantes.

Or, si on observe bien ce qui se passe aujourd'hui, c'est précisément l'innovation qui fait défaut. Nous semblons construire les mêmes choses encore et encore.

Des applications plus consommatrices

Mais ce qui me préoccupe le plus, c'est que le code produit par les développeurs devrait être optimisé pour la plateforme sur laquelle l'application a vocation à être déployée. Des pratiques d'ingénierie saines sont indispensables pour comprendre comment optimiser les processeurs, la mémoire et la gestion du stockage.

Avec l'IA générative, de nombreuses personnes créeront et déploieront des applications sans comprendre comment elles pourraient exploiter les ressources de manière plus optimisée. Le bilan ? Des applications qui coûtent plus cher en fonctionnement et qui ont une empreinte carbone beaucoup plus importante.

PublicitéCe qui est dommage, c'est que, dans la plupart des cas, le simple fait que l'application fonctionne est suffisant pour beaucoup. Les applications fonctionnent pendant des années, gaspillent beaucoup d'argent et ne parviennent pas à apporter une valeur optimale à l'entreprise. « Mais, ça marche, n'est-ce pas ? », entend-on.

Trouver le juste équilibre

Un autre aspect effrayant du développement piloté par l'IA réside dans les nombreuses vulnérabilités de sécurité qui sont laissées dans l'application et passent inaperçues jusqu'à l'analyse post-mortem après une attaque. Là encore, nous avons besoin de l'ingénierie humaine pour repérer et corriger ces failles, même si certains outils d'analyse de code pilotés par l'IA peuvent s'avérer pratiques et utiles dans cette démarche.

En retirant les humains du processus de développement, ce que de nombreuses organisations cherchent à faire, nous sacrifions la compréhension nécessaire à la conception d'applications pratiques. La réponse appropriée consiste à trouver un juste équilibre entre la valeur de l'IA, en termes de productivité et de coût, et l'indispensable implication de nombreuses compétences humaines. Malheureusement, je crains que nous ne comprenions ce besoin que lorsqu'il sera trop tard.

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

    La question du moment
    Exploitez-vous un ou plusieurs clouds privés pour héberger des applications métiers en production ?