Se rendre au contenu

Retex 9 : Chat GPT et le spaghetti code

Au lancement deChatGPT certains développeurs l’utilisaient comme pilote automatique, sans garde-fous, sans relecture, sans contexte. Résultat ? Un projet en perte de vitesse, une collaboration écourtée… et du code généré complètement aux fraises. Voici une RetEx sur l’un des premiers usages de ChatGPT dans un projet réel. Et pourquoi, même en 2025, l’IA reste un outil… pas un développeur.
20 juillet 2025 par
Héliou Sylvain
| Aucun commentaire pour l'instant

Contrairement à d'autres, ce retex va plutôt s’orienter sur un sujet qui découle d’une expérience plutôt que d’un retour sur un projet précis. Nous allons ici parler intelligence artificielle et de son usage parmi les développeurs il y a quelques années, au tout début de ChatGPT.

Il y a quelques années, j’ai commencé une collaboration avec un jeune développeur que je ne nommerai pas, et pour un projet dont je ne donnerai pas plus de précisions non plus, afin d’éviter toute identification possible.

Me voilà donc avec un collègue développeur assez jeune en reconversion, et une expérience de son côté à peu près équivalente à une année.

Travaillant tous deux en full remote sur un projet pour un client, dont j’avais la responsabilité, j’ai mis en place dès le début plusieurs pratiques issues des standards des équipes de développement. L’objectif était double : mener le projet conformément aux attentes du client, tout en accompagnant mon binôme dans la montée en compétences et la professionnalisation de sa démarche.

Les principales étaient les suivantes :

  • Kickoff : le coup d’envoi de début de semaine : réunion rapide où chacun fait le point sur les objectifs de la semaine ;
  • Follow-up : bilan des deux premiers jours de la semaine, point sur les objectifs, identification des difficultés, résolution des problèmes en équipe, code review éventuelle ;
  • EOW (End Of Week) : fin de semaine, bilan de cette dernière, prévision du kickoff du lundi suivant et des points de friction rencontrés.

Les objectifs réciproques sont partagés entre nous deux en prenant en compte nos niveaux de programmation respectifs : il aura principalement à charge l’interface et le fonctionnement du menu principal ainsi que des options de lancement influant sur la boucle principale d’exécution, et je me chargerai de cette dernière.

Après un début enthousiaste de sa part, une certaine lassitude commence à apparaître et je sens sa motivation et son envie baisser de semaine en semaine. Le projet était relativement long, assez répétitif (mise en place de plusieurs habillages graphiques sur une même interface).

Après quelques mois, son intérêt n’est plus qu’un très lointain souvenir et la qualité de son travail s’est dégradée continuellement ; après plusieurs tentatives pour réadapter la charge de travail et changer les processus, la collaboration finit par s’arrêter.

Dans le but de préparer le terrain pour son futur remplaçant, je commence alors une review intégrale de son code, incluant des fichiers omis car n’ayant que des fonctionnalités peu impactantes, comme l’affichage de texte.

Je tombe alors sur un code spaghetti incroyable, avec une multitude de fonctions se répétant sous le nom de Display1, Display2, Display3, fonctionnant exactement de la même façon et n’étant toutes que des copies systématiques du même code. Des syntaxes inconnues se répètent également, totalement absentes de mes supports de formation, de tous les tutoriels ou cours que j’ai pu ingérer au fil des ans, mais aussi également absentes de Reddit et de StackOverflow.

J’en arrive à la conclusion qu’il peut éventuellement s’agir d’une nouvelle norme qui proviendrait d’un potentiel sous-traitant n’ayant pas été formé en école d’ingénieur européenne, et j’entends alors de nouveau parler de ChatGPT, alors en pleine explosion.

Je me dis alors que l’utiliser pour essayer de cleaner ce code extrêmement répétitif serait une bonne idée, à la fois efficace et me permettant de prendre en main ce nouvel outil sans réel enjeu, car étant tout à fait capable de suivre pas à pas les agissements de l’IA.

Et je me retrouvais donc en 5 minutes confronté à cette syntaxe imbuvable et inutile, sortie tout droit de ce nouvel outil de génération.

Une très grande partie du code que je n’avais pas review, car relativement non impactante sur le fonctionnement core du projet, telles que des fonctions d’affichage ou de changement de couleurs, sortait exclusivement de ChatGPT, à une époque où les fonctionnalités de mémoire transversale et de projet n’étaient pas disponibles au grand public.

Il en résultait un code catastrophique, qui fonctionnait deux fois sur trois, au comportement erratique.

Moralité : si l’utilisation de l’IA ne fait aujourd’hui aucun doute  et que j’en suis un grand utilisateur il fallait déjà, et il est toujours nécessaire, de lui donner du contexte, une vision… mais surtout de rester son superviseur.

S.

Se connecter pour laisser un commentaire.
Index Anabasis Technology