IA : Quel Avenir pour les Développeurs ?
ChatGPT, Devin... les technologies à base d'IA sont de plus en plus performantes. Dans ce contexte, quel sera à terme le rôle des développeurs ?
J’ai décidé de rédiger cet article afin de tenter d’éclairer les nombreux développeurs qui, comme moi, se posent des questions quant à l’avenir de leur métier depuis la démocratisation de l’intelligence artificielle. Cet article est le fruit d’une longue réflexion personnelle quant à la place des IA génératives dans le développement, nous forçant à repenser notre travail, pour le meilleur et pour le pire.
Coder, avant l’IA
Créer du bout de ses 10 doigts
Lorsque j’ai découvert le développement, je m’y suis très rapidement passionné, et la raison à cela est toute simple : coder, c’est jouer.
Coder, c’est construire, façonner du bout de ses 10 doigts un monde virtuel, et le remodeler sans fin.
Et ça, c’est ce que j’appelais quelques années auparavant jouer aux LEGO. 🧱
Quand je code, je n’ai qu’un objectif en tête : construire la plus jolie et la plus robuste des constructions, sauf que les briques sont ici fictives ; on les appelle plus communément des variables, des fonctions…
La beauté de l’artisanat
Si j’aime aujourd’hui mon métier plus que n’importe quel autre, c’est avant tout parce qu’il s’agit d’un métier créatif et intellectuel.
Nous, les développeurs, sommes constamment confrontés à des problématiques qu’il faut résoudre, et c’est cette gymnastique d’esprit que l’on aime.
Coder, c’est choisir avec attention tout un tas de choses, qui une fois assemblées, vont donner naissance à une application.
- Quels langages ?
- Quelles technologies ?
- Quelle architecture adopter pour le code ?
- Quelles fonctionnalités et comment les implémenter ?
- Quelles données manipuler ?
- Si interface il y a, comment la représenter ?
- Etc.
Car il n’existe pas de manière unique de coder une application, chaque développeur doit faire des choix personnels et réfléchis, et ça, c’est la beauté de l’artisanat.
La révolution IA
ChatGPT, un pionnier
Si depuis de nombreuses années, les grandes entreprises développent des IA en laboratoire, que les moteurs de recherche se transforment peu à peu en moteur de réponse… les choses sont réalisées de manière assez opaque.
En novembre 2022, personne ne s’y attendait, et pourtant OpenAI met l’IA entre les mains du grand public à travers son célèbre chatbot ChatGPT.
Ce chatbot connaît la plus grande adoption jamais mesurée puisqu’OpenAI affirme que la barre du million d’utilisateurs a été franchie en 5 jours, là où des géants comme Facebook et Instagram avaient respectivement mis 10 et 2,5 mois. Au bout de 2 mois, ce ne sont pas moins de 100 millions d’utilisateurs actifs qui se sont emparés de cette IA de poche.
Je vous livre au passage une citation qui m’avait marqué (et rassuré) par le passé.
S’il y a bien un chose que ne remplacera jamais l’intelligence artificielle, c’est la créativité.
Et bien aujourd’hui, paradoxalement, la créativité est l’une des premières victimes de l’IA générative avec des modèles spécialisés dans la génération d’images, de vidéos, de musique, etc.
Et là, en tant que créatif, ce nouveau potentiel est tout aussi excitant que difficile à accepter.
L’IA, une révolution pas comme les autres
Les révolutions technologiques se succèdent dans l’histoire de l’humanité. Nous pourrions par exemple citer de manière non exhaustive :
- La téléphonie
- L’informatique
- Internet
- Etc.
Si ces révolutions ont métamorphosé notre société, elle ne sont, à mon sens, pas aussi bouleversantes que l’IA selon le prisme sociétal et éthique. Pourquoi cela ? Car nous sommes aujourd’hui en mesure, et ce pour la première fois, de déléguer des tâches complexes (non programmées) à un ordinateur.
Nous avons pour la première fois créé quelque chose qui raisonne (ou plus justement qui semble raisonner) à notre place.
L’IA a une expérience que nous n’aurons jamais
Si l’Homme est en mesure d’analyser une situation et de prendre des décisions en se basant sur son expérience passée, l’IA générative, par le biais du Machine Learning est désormais capable de reproduire ces mécaniques. Sauf qu’à la différence de notre expérience qui est quelque chose de très personnel, l’IA générative va piocher cette expérience… partout !
Son expérience est donc incomparablement plus grande.
Vous souvenez-vous de la première fois que vous avez tapé dans un ballon de foot ? Votre tir ne devait pas être bien précis… certainement moins qu’à l’heure actuelle ! Et la raison à cela est simple : plus vous tirez dans un ballon, mieux vous tirez dans un ballon ; c’est le principe même du Machine Learning.
Imaginons que vous ayez tiré 1437 fois dans un ballon au cours de votre vie et qu’une IA ait effectué un milliard de tirs. À votre avis, qui aura le plus de chances de marquer un penalty ?
De par son entraînement, l’IA aura une bien meilleure analyse des paramètres à considérer pour marquer et une exécution plus précise de son geste :
- Placement du gardien
- Intensité et direction du vent
- Dimensions de la cage
- Hauteur et état du gazon
- Angle de tir
- Puissance du tir
- Effet à mettre dans le ballon
- Etc.
Son expérience lui permet de déterminer le tir idéal pour un scénario donné.
Les limites de l’IA
Si l’homme et l’IA son tous deux capables d’analyser une situation, un point nous distingue :
- Le raisonnement de l’IA est basé sur des modèles statistiques et des algorithmes.
- Le raisonnement humain est basé sur une véritable conscience ou pensée propre.
Les réponses d’une IA générative sont le résultat de calculs basés sur des probabilités et des schémas appris à partir des données d’entraînement, mais elle n’a pas de véritable compréhension du sens des mots ou des concepts qu’elle analyse et génère.
Coder, avec l’IA
Chatbots : des assistants au développement
Depuis ChatGPT, les géants de la tech ont mis les bouchées doubles pour sortir leurs IA génératives propriétaires le plus rapidement possible, comme c’est par exemple le cas de Gemini pour Google.
Ces IA s’avèrent très efficaces dans le traitement du langage, et donc par extension, du code.
Les développeurs s’en sont rapidement emparés pour tout un tas de tâches, comme par exemple :
- La génération de code
- L’explication de code
- La création de datasets
- Le debug
- L’optimisation
- Etc.
Ces IA ont permis aux développeurs de gagner un temps considérable en évitant de passer de longues minutes/heures sur de la documentation ou des forums d’entraide (RIP StackOverflow 🕯️). L’IA est alors un moteur de réponse efficace permettant d’extraire l’information nécessaire à un problème contextualisé.
Elle agit comme un assistant d’aide à la programmation. L’expression « AI Pair Programming » voit alors le jour.
Cette révolution de l’IA génératrice n’a dans un premier temps pas réellement transformé notre métier dans le sens où le développeur reste l’acteur principal aux commandes : il expose le contexte, structure son projet, écrit/copie/colle le code, etc.
Malgré cela, un sentiment de perte de sens commence à voir le jour chez certains développeurs qui ne se sentent plus indispensables à l’écriture d’un script, avec toute la poésie que cela engendre (si si je suis sérieux…). Cette perte de sens conduit à une quête de sens de la part de certains développeurs.
C’est un peu comme si vous étiez en train d’élaborer une superbe construction en LEGO. Cela vous prend 3 heures. Elle n’est pas parfaite mais peu importe, vous la trouvez magnifique, vous en êtes fier. Et là, un robot s’installe à côté de vous et en construit une plus stable et plus élégante… en 3 secondes.
Pourquoi apprend-on à coder si l’IA peut le faire à notre place ?
Une vraie question philosophique que n’arrange pas l’arrivée de la nouvelle vague d’outils d’IA comme Magic ou encore Devin.
Ingénieurs logiciels : des codeurs à nos ordres
En mars 2024, Cognition Labs publie une vidéo d’introduction virale mettant en avant le premier ingénieur logiciel alimenté par l’IA : Devin.
Oui, les mots ont du poids, on ne parle ici plus d’outil mais d’ingénieur autonome. Et si le terme « AI software engineer » est avant tout marketing, ce nouveau genre d’outil marque une étape importante dans l’intégration de l’IA au quotidien des développeurs.
Cet ingénieur logiciel, via lequel les interactions se font classiquement à base de prompt au sein d’un chatbot, intègre une interface graphique riche rassemblant les outils types d’un développeur :
- Un IDE
- Un terminal
- Une fenêtre de navigateur
- Il propose même un planificateur sous forme de checklist, détaillant les actions qu’il s’apprête à entreprendre
Une fois le prompt saisi, Devin travaille de la même manière qu’un développeur :
- D’abord, il expose son plan d’action.
- Puis, il tape des lignes de commande dans le terminal, écrit du code dans la fenêtre de l’IDE, affiche dans la fenêtre de navigateur les ressources utiles / l’application en développement, tente de corriger d’éventuelles erreurs… Tout cela de manière itérative.
- Enfin, il déploie l’application générée.
Cela témoigne du fait qu’un outil comme Devin est aujourd’hui en capacité de mener un projet intégral, de sa création à son déploiement, avec pour simple indication un prompt initial. Il parait néanmoins à ce stade ambitieux de penser que Devin va fonctionner en totale autonomie.
En fin de compte, avec l’arrivée de ces outils, le métier de développeur se métamorphose : nous allons logiquement avoir tendance à concentrer nos efforts sur la formulation de problématiques techniques et non leur implémentation.
Ces IA agiront comme des marionnettes, et nous, développeurs, en tirerons les ficelles.
Développeurs : accueillir l’IA à bras ouvert
La bonne nouvelle dans tout cela c’est que pour interagir efficacement avec une IA il faudra des compétences techniques.
Prenez un peu de recul. Et si nous revenions en 2003, à la création de WordPress, le CMS web le plus populaire. Ce type de technologie a été vu par de nombreux développeurs comme la fin de leur métier…
Nous n’aurons bientôt plus besoin de développeurs avec ces outils de no code qui écrivent le code à notre place !
Et pourtant en 2024, plus de 20 ans après, le bilan est clair :
- On code plus que jamais
- La majorité des utilisateurs de WordPress sont des développeurs
Pourquoi cela ? Car les besoins en développement se multiplient et car il n’est pas possible de créer un bon produit sans bagage, sans vision technique.
Avec ou sans IA, un technicien expert de son domaine sera là pour exploiter ces IA qui demeurent des outils, malgré leur immense capacité à traiter de l’information.
Le développeur de demain sera moins amené à coder mais devra nécessairement avoir une vision technique globale pour avoir le contrôle sur les productions de l’IA. Cela veut donc dire comprendre les concepts clés : protocoles, authentification, API, design pattern, responsive, POO, MVC, hardware, sécurité…
Cette métamorphose du métier de développeur est en adéquation avec la quête de productivité perpétuelle de l’Homme.
L’IA va permettre aux développeurs de se concentrer sur les tâches qui nécessite un vrai raisonnement humain (il y en aura toujours), et d’automatiser celles pour lesquelles nous ne sommes plus indispensables.
Aussi bouleversante que cette transition puisse être, l’automatisation de tâches constitue l’évolution technologique logique de notre société, et l’accepter est le premier pas à faire.
L’IA nous permettra en conséquence de gagner en productivité et de passer plus de temps sur les tâches pour lesquelles nous sommes essentiels.
Développeurs et IA : mes conclusions
1. Un métier en mutation
Les développeurs ne sont pas en voie d’extinction, mais de mutation.
On va moins coder mais davantage coordonner (voyez le comme une promotion, vous passez d’ouvrier à chef de chantier 😜).
2. Continuez d’apprendre à coder
Cela ne sert à rien d’apprendre à coder si l’IA sait le faire sans moi.
Voilà quelque chose qu’il serait bien maladroit de penser.
L’IA est à ce stade loin d’être autonome, et quand bien même elle le serait, le meilleur utilisateur de l’IA restera celui qui comprend ce qu’elle fait et qui n’en est pas dépendant.
Se former à la programmation et aux outils demeure essentiel pour garder le contrôle sur des IA comme Devin.
3. Voyez large
Nous devons plus que jamais avoir des compétences techniques globales et continuer à nous former, en mettant l’accent sur les concepts et mécaniques, plus que sur l’apprentissage du tout dernier framework JS « hype » qui vient de sortir.
On se concentre désormais davantage sur le QUOI (raisonnement humain) que sur le COMMENT (l’implémentation assistée par IA).
Si l’IA permet d’accroître notre productivité en nous assistant dans des tâches variées, les meilleurs développeurs seront ceux qui ont une vision transverse. Et cela passe par la formation à la programmation, au réseau, à l’UI/UX, à l’IA…
4. Acceptez et exploitez l’IA
Tourner le dos à l’IA peut être un moyen de se protéger et de rester dans sa zone de confort. Et quand on est du genre nostalgique, abonné aux « c’était mieux avant », l’envie ne manque pas.
Mais fermer les yeux ne fait que repousser le problème créant un décalage avec votre temps et vous rendant moins compétitif.
Essayez de ne pas vous concentrer sur la partie négative de l’IA mais d’y voir toutes les bonnes choses qu’elle implique.
5. Faites de la veille
Il ne se passe pas une journée, sans qu’une nouvelle technologie fasse parler d’elle (qu’il s’agisse d’un nouveau modèle de langage IA, d’un framework, d’un outil…). La veille technologique doit plus que jamais faire partie intégrante de notre métier.
6. Prenez du recul
Nous avons la chance d’avoir un métier intellectuellement riche que nous pourrions généraliser à la résolution de problèmes informatiques en tous genres.
En codant, nous sommes constamment confrontés à des nouvelles choses (syntaxe, concepts…), à des imprévus auxquels il faut faire face. Autrement dit, nous devons constamment nous adapter.
Ces capacités d’adaptation que nous cultivons par le code sont un réel atout dans notre quotidien, non pas uniquement en tant que développeur mais aussi en tant qu’individu dans la société.
Si vous avez l’impression que l’IA va voler votre métier demain, prenez un peu de recul car :
- Nous avons, de par notre métier, d’excellentes capacités d’adaptation.
- Nous ne sommes pas les plus à plaindre car notre métier sera métamorphosé alors que de nombreux autres n’auront pas cette chance et disparaîtront.
- Nous, développeurs, sommes en première loge pour façonner et comprendre la tech de demain. Si on a l’impression que l’IA est partout, gardez bien à l’esprit que notre vision est biaisée ; la plupart des individus n’interagissent pas autant avec l’IA. Sondez votre entourage, c’est amusant de voir comme l’IA est encore pour beaucoup, au stade de « concept » superficiel et flou.
- Le climat politique, économique et social est loin d’être prêt à accueillir pleinement cette révolution technologique.
Après des jours de synthèse, cet article voit le jour. Il était très important pour moi de l’écrire et de le partager. J’espère que ces pensées vous aideront à appréhender cette transition de la meilleure des manières. Je vous souhaite le meilleur !