Écrire ou contrôler du code ? « Restez expert dans ce que vous demandez à l’IA de faire »

Robot coding

L’IA transforme radicalement le travail des développeurs. Mais ceux qui pensent que ChatGPT et Copilot rendent le programmeur superflu se détrompent. « Nous allons passer de l’écriture de code au contrôle de code », a-t-on entendu lors d’une table ronde chez Smals.

Avec l’essor des outils d’IA générative, le développement de logiciels semble entrer dans une nouvelle phase. Les entreprises introduisent différents assistants de programmation qui doivent simplifier et accélérer le travail de codage pour les développeurs. Citons Claude Code d’Anthropic, l’agent Codex AI d’OpenAI ou Codestral de Mistral. Le prompting devient la nouvelle programmation, mais est-ce vraiment si simple ?

Lors d’une session de l’AI Competence Center de Smals, l’influence des assistants de programmation IA sur les compétences et l’évolution du rôle des développeurs a été mise en lumière.

Évolution du rôle

« Vous ne perdrez pas votre emploi de développeur à cause de l’IA », rassure Joachim Ganseman, chercheur en IA chez Smals. « Moins de temps sera consacré au codage et plus de temps au contrôle du code généré par l’IA », ajoute-t-il. « Les outils d’IA font des erreurs, et les corriger n’est pas toujours simple. »

Ganseman établit un parallèle clair avec les précédentes vagues de numérisation : « Nous automatisons de nombreuses tâches administratives depuis 50 ans, mais cela n’a jamais entraîné une réduction de l’administration », souligne-t-il.

Dylan Cabal, architecte de solutions chez Smals, partage le même avis. « Le métier évolue et nous devons donc évoluer avec lui, mais cela ne signifie pas que le rôle des développeurs disparaîtra complètement. »

Concept au-dessus de la syntaxe

L’IA aura-t-elle une influence sur les compétences des développeurs ? C’est une question qui revient souvent lors des discussions sur l’IA. Selon Cabal, c’est surtout le type de compétences nécessaires qui change : « Les développeurs doivent moins se concentrer sur la syntaxe et davantage sur la manière dont ils donnent les bonnes instructions à l’IA. L’ingénierie des prompts devient plus importante. »

Koen Vanderkimpen, chercheur en IA chez Smals, renchérit. « Nous devons rester experts dans ce que nous demandons à l’IA de faire. » Apprendre la syntaxe de certaines langues deviendra moins important, mais il reste essentiel de comprendre les concepts. Ceux qui utilisent des outils d’IA doivent également savoir quand ils se trompent. Car ces erreurs sont inévitables.

En effet, l’IA génère souvent du code syntaxiquement correct, mais sémantiquement erroné. « De petites différences, comme une lettre manquante ou une erreur dans un signe supérieur à, peuvent avoir de grandes conséquences. C’est pourquoi la surveillance humaine reste cruciale », déclare Ganseman.

Jeunes développeurs

Les développeurs expérimentés détecteront rapidement les erreurs des agents d’IA, mais ce n’est pas encore une évidence pour les jeunes développeurs. « Les assistants d’IA ne sont pas encore assez matures pour permettre aux jeunes développeurs de travailler sans supervision », déclare Sacha Thommes-Alexander, Senior IT Project manager à la Service fédéral des pensions. Les juniors courent le risque de faire aveuglément confiance à des suggestions erronées.

Selon Vanderkimpen, il est important de donner aux jeunes développeurs la possibilité de développer des compétences. « Ne les laissez pas tout de suite se débrouiller avec l’IA, mais laissez-les raisonner, déboguer et rechercher les erreurs », ajoute Fabian Petitcolas, IT Research Consultant chez Smals Research.

Arsenal d’IA

Les développeurs ont aujourd’hui le choix parmi un arsenal croissant d’outils d’IA, des simples chatbots comme ChatGPT aux solutions plus avancées comme les IDE agentiques. Ces derniers peuvent non seulement générer du code, mais aussi le compiler, l’exécuter et le tester dans l’environnement de développement.

« Nous sommes passés de la pose de questions dans une fenêtre de chat séparée à une IA intégrée qui agit de manière autonome dans l’environnement de développement », remarque Cabal. « Dans trois mois, il pourrait y avoir quelque chose de mieux. Cela va très vite », souligne Ganseman.

Actuellement, les personnes autour de la table s’accordent à dire que la valeur ajoutée de l’IA réside aujourd’hui dans les tâches répétitives et petites, comme les tests ou la documentation. « Pour les petites choses, cela fonctionne vraiment très bien. Mais dès que le contexte s’élargit, des erreurs commencent à apparaître », déclare Ganseman.

Qu’en est-il des anciens logiciels ?

Que peut signifier l’IA pour les applications existantes ou héritées qui sont construites de manière monolithique, dans une langue qui n’est plus courante ou par des personnes qui ne sont plus présentes ? « Il n’existe pas encore de solution magique qui puisse écrire le programme dans une nouvelle langue », commence Vanderkimpen. « Ce que vous pouvez faire, c’est rechercher de petits morceaux de code que vous faites ensuite analyser par l’IA. Vous obtenez ainsi une meilleure compréhension du code. »

Il souligne qu’il est important de tenir la main de l’IA. « Indiquez clairement dans quelle nouvelle langue vous voulez le code et quelle est l’architecture. Ici aussi, il est important que vous puissiez vous-même éliminer les erreurs. »

Cabal estime également qu’il faut être prudent lors de la réécriture d’anciens logiciels. « Vous devez être sûr que la sortie est vérifiable et identique à votre point de départ. » Selon lui, des connaissances sont souvent perdues dans ce processus. « Nous ne savons pas exactement tout ce que le logiciel faisait avant d’être réécrit. Vous ne pouvez donc pas être sûr que le logiciel fait tout ce qu’il faisait auparavant après avoir été réécrit. » Par tout, Cabal entend vraiment tout, même les erreurs.

lire aussi

« Les outils de codage IA sont plus populaires que jamais, mais la confiance dans les résultats diminue »

Il souligne que nous ne devons pas faire de raisonnement circulaire : « Je vais utiliser l’IA pour réécrire la documentation afin de réécrire ensuite le logiciel sur la base de la documentation. Nous avons donc utilisé l’IA pour contrôler l’IA. Il est important qu’il y ait toujours un facteur humain », souligne Cabal.

Vanderkimpen fait l’analogie avec un archéologue. « Si vous allez fouiller et améliorer du code hérité, vous êtes en fait un archéologue, sauf que vous avez plus de moyens qu’une simple pelle à portée de main. Vous recevez un bulldozer, mais vous devez veiller à ce que ce bulldozer n’efface pas des éléments importants dans votre code. » Avec cette comparaison, il montre que l’interaction entre l’homme et la machine reste importante.

Restez expert

Le passage de la production de code au contrôle de code n’est pas seulement techniquement, mais aussi psychologiquement radical. « Celui qui écrit lui-même comprend mieux son code. Avec le code IA, vous perdez souvent l’intuition de l’endroit où se trouve un bug », déclare Petitcolas. Et cela peut entraîner des erreurs plus difficiles à détecter.

C’est pourquoi la documentation, les tests et le contrôle qualité sont plus importants que jamais. L’IA peut aider à accélérer les tâches répétitives telles que la génération de cas de test ou de documentation, mais le contrôle doit rester entre les mains de l’homme. Ganseman résume : « L’IA est un bon outil pour les développeurs, mais restez vous-même le pilote de votre projet ».

L’IA offre aux développeurs la possibilité de travailler plus efficacement et plus intelligemment. Mais sans pensée critique et sans connaissances suffisantes du domaine, cette même technologie conduit à des erreurs, à la dépendance et à des risques.


Cette contribution rédactionnelle a été réalisée en collaboration avec notre partenaire Smals.