Concours de devs et codage assisté !

#ChatGPT #code #concours #dev #IA #intelligence artificielle #IT de demain #réflexion #Retour d'expérience #technologie 

Début mars, BPCE Solutions informatiques était partenaire du Master Dev France, le fameux concours de code live qui se déroulait cette année porte de Versailles à Paris. Près de 2000 participants étaient inscrits, dont 1000 au hackathon, et 25 développeurs issus des différents pôles et plateformes de BPCE Solutions informatiques ont tenté leur chance. Avec 9 personnes en finale, et une 26e place au classement général pour ma part, nous n’avons pas démérité.

 

Un bon résultat n’est pas gage de qualité

Il est vrai que ce concours et ceux du même genre (Codingame, Advent of code, Codewars…) sont parfois décriés pour ne pas être représentatifs d’un vrai travail de développeur : la vitesse d’écriture est privilégiée, au dépens de la lisibilité et de la maintenabilité du code.

 

Les participants prouvent qu’ils sont capables de trouver un algorithme qui fonctionne rapidement,

mais personne ne voudrait voir le résultat de leur travail dans une application en production !

 

La critique est donc fondée, mais elle n’invalide pas totalement le fond du concours.

Même si le code qui est produit à cette occasion n’a pas vocation à être relu et maintenu à long terme, et ne nécessite donc pas de respecter les mêmes niveaux d’exigences en matière de forme, le challenge en terme de réflexion est lui bien réel. Les exercices proposés varient en difficulté, mais pour arriver en finale, voire même y atteindre une place honorable, il faut tout de même faire preuve d’une certaine maîtrise de ce qui fait la base de notre métier : une capacité à décomposer un problème plus ou moins complexe en petites étapes plus accessibles, et une bonne connaissance des algorithmes et des structures de données classiques.

En savoir plus sur le MDF…

Cela impose de s’être forgé quelques automatismes, car le temps imparti pour résoudre les trois exercices proposés ne permet généralement pas de tenter beaucoup d’approches différentes. L’expérience est donc cruciale, parce que la première intuition a intérêt à être la bonne. Mais la diversité des cas auxquels on peut être confronté force à quelques révisions : nos tâches au quotidien sont loin de proposer autant de variété. Et réciproquement, la pratique qu’impose un tel concours pourra être bénéfique dans notre travail habituel parce qu’elle permet de se faire plus rapidement une idée du type de situation à laquelle on a affaire pendant les phases de spécification et de conception, avant même d’avoir à mettre les mains dans le code.

Une édition bousculée

L’édition 2023 très attendue, après une pause de 4 ans pour cause de pandémie, a cependant été quelque peu bousculée par l’arrivée d’un élément perturbateur : l’assistance d’IA toujours plus efficace, ChatGPT en tête, pour générer une solution sans écrire la moindre ligne de code soi-même. Isograd, en charge de la plateforme, avait fait le choix de tolérer ce type d’aides du fait de leur incapacité à les interdire (réellement bloquer les accès au site d’OpenAI pour les compétiteurs imposerait des restrictions sur le réseau qui aurait posé problème à ceux qui comme nous doivent passer par un VPN d’entreprise pour accéder à internet sur leur machine), et il a fallu composer avec des compétiteurs qui avançaient à coup de copier-coller.

Aux dires de l’éditeur, ces IA ne gênaient pas le déroulement du concours parce qu’elles n’ont pas la capacité à résoudre les exercices les plus difficiles. Il faut reconnaître cependant que même si ChatGPT ne s’est pas imposé cette fois-ci sur le podium, il a quand même pas mal influencé le classement général. En permettant a minima de résoudre les exercices faciles en deux raccourcis claviers, il a permis à ceux qui l’utilisaient de gagner quelques précieuses minutes qui pouvaient ensuite être consacrées aux exercices qui dépassaient sa capacité de résolution. Sur certaines sessions, plusieurs personnes ont même pu atteindre un classement suffisant pour aller en finale sans écrire quoi que ce soit elles-mêmes, au dépens d’autres développeurs peut-être plus compétents qu’eux, mais obligés de taper au clavier chaque caractère de leur solution.

Cette constatation a eu plusieurs conséquences. La première, c’est qu’elle a suscité une frustration chez les participants qui sont parfois passés à côté de leur place en finale au profit de quelqu’un qui n’a pas ensuite pu aller au-delà du premier exercice. La notion de mérite dans le classement a pour certains disparu devant le sentiment d’inégalité face à un concours biaisé. Deuxièmement, le découpage entre les populations de développeurs n’a pas été totalement binaire, entre les 100% code manuel et les adeptes exclusifs de ChatGPT. Une stratégie mixte basée sur l’IA tant qu’elle s’en sort, puis sur les capacités personnelles du codeur pouvait être encore plus efficace. Enfin, même l’utilisation du moteur pour coder pouvait elle aussi varier énormément d’une personne à l’autre : cette IA est basée sur un modèle conversationnel, et si la proposition initiale de l’ordinateur ne résout pas l’exercice au premier coup, il est toujours possible de la guider pour arriver assez vite au résultat escompté.

Le raisonnement qu’un moteur comme ChatGPT utilise pour résoudre une énigme n’implique pas qu’il a « compris » le sujet. Il travaille par analogie, en cherchant des corrélations avec les données sur lesquelles il a été entraîné, et bien que le principe ressemble un peu à la façon dont un humain s’oriente vers une solution plutôt qu’une autre, la comparaison s’arrête là. La formulation parfois un peu alambiquée des énoncés est souvent responsable des erreurs des codeurs, humains ou machines. C’est ce qui fait qu’une IA a souvent besoin d’une assistance humaine pour résoudre certains problèmes. Et le développeur qui la pilote change un peu de rôle : il devient mentor de la machine en la guidant dans sa production de code. Il faut alors vérifier que tous les détails du problème ont bien été pris en compte, que les éléments sortis de la base de connaissance ont bien été retravaillés pour coller à la situation en question, que les données qui ont inspiré la solution proposée sont valides (ChatGPT a été entraîné sur Internet : certaines des choses qu’il a trouvées lors de son apprentissage peuvent être erronées et donc contribuer à donner de faux résultats !). Il faut alors reconnaître qu’entre les mains d’une personne compétente, l’IA peut arriver à résoudre des problèmes bien plus élaborés que ceux qu’elle maîtrise de base.

Un enseignement à tirer

Quoi qu’il en soit, l’édition 2023 du MDF aura montré plusieurs choses :

  • Les capacités de raisonnement et d’abstraction humaines restent cruciales pour être sûr de bien cerner un problème qui a été formulé par des humains.
  • Les capacités des IA à agréger l’information (celle sur laquelle le moteur a été entraîné comme celle de l’énoncé qu’il essaie de résoudre) et à produire une solution basée sur ces entrées deviennent de plus en plus impressionnantes.
  • Une collaboration entre l’humain et la machine peut permettre de démultiplier l’efficacité en additionnant les forces des deux.
  • Un développeur compétent reste nécessaire pour guider l’IA, détecter ses erreurs d’interprétation ou l’aider à prendre en compte des paramètres trop implicites. Le fait qu’un bot soit capable de produire une solution ne garantit pas qu’elle fonctionne, et encore moins qu’elle couvre tous les cas d’usage.

 

Au final, cette expérience pose de nombreuses questions sur l’avenir du métier de développeur, mais c’est à nous qu’il appartiendra d’y trouver les meilleures réponses. L’assistance d’une IA pour écrire du code est une perspective qui devient de plus en plus proche et réaliste, mais il va falloir apprendre à en cerner les limites pour que le résultat soit à la hauteur des espérances.

Déjà sur le terrain

Nos équipes vous parlent de leur métier de leur quotidien

89/100

C’est l’indice de mixité de BPCE Solutions informatiques pour l’année 2022.

Lire plus

Sabrina Grassin
Release Train Engineer

« L’important, c’est de savoir ce pour quoi on travaille et ce qu’on réalise, d’en connaître le sens. Pour cela, il faut transmettre la vision IT, la vision métier et la vision client du projet. » Lire plus

Simon Merceron
Data analyst – concepteur développeur en alternance

« Au quotidien, j’assure des missions de type BUILD avec l’industrialisation et l’automatisation de nos outils et processus. » Lire plus

Andréa
Conceptrice chargée de développement

François Rossignol
Directeur du Domaine Finance et Reporting Régalien

« Notre dispositif vise à rendre compatibles les contraintes IT et les délais des demandes régaliennes » Lire plus

37%

C’est la part de femmes au sein de BPCE Solutions informatiques, soit 10% de plus que la moyenne du secteur IT en France en 2021. Engagé aux côtés d’associations comme Capital Filles, Elles bougent ou encore les Elles de l’IT, nous menons des actions concrètes pour favoriser la mixité dans l’informatique.

Derniers articles