IA : l’incompétence accélérée
(slater.dev)- En ingénierie logicielle, une dépendance excessive aux LLM accélère rapidement l’incompétence
- Les LLM ont des limites et ne peuvent pas remplacer la pensée critique ni les capacités de résolution de problèmes
- L’usage des LLM s’accompagne de nombreux risques : sorties erronées, erreurs d’entrée, baisse de la qualité du code, affaiblissement des compétences des développeurs, perte du plaisir de créer
- Les LLM ne peuvent pas fournir des compétences de développement essentielles comme la théorie des programmes et l’entropie des programmes
- À long terme, la maîtrise technique et la capacité de réflexion approfondie comptent plus que jamais
Introduction
Depuis l’arrivée de l’IA et des LLM qui ont capté l’attention du grand public fin 2022, les discussions se multiplient
En tant qu’ingénieur logiciel expérimenté, l’auteur présente deux problèmes majeurs observés avec les LLM
Le point de vue « Les LLM sont mes amis »
Les ingénieurs qui considèrent les LLM comme l’outil suprême finissent par faire de la vitesse leur valeur prioritaire
Les LLM permettent de générer rapidement beaucoup de code, mais cela comporte des risques à long terme
Les risques liés à l’usage des LLM
- Risque de sorties erronées : les LLM produisent du code manifestement incorrect (impossible à compiler) ainsi que du code plus subtilement défectueux (bugs logiques, etc.)
- Lorsqu’une personne sans capacité d’évaluation demande du code source, la probabilité d’obtenir une réponse inadaptée est élevée
- Risque d’entrées erronées : les LLM ne critiquent pas les hypothèses fausses ni les prompts dépourvus de contexte
- Ils ne distinguent pas les bonnes questions et ne comprennent pas non plus le problème XY (échec à identifier la cause profonde)
- Ralentissement futur du développement : l’adoption des LLM fait croître rapidement la dette technique et transforme la base de code en un ensemble confus et difficile à maintenir
- Risque d’infantilisation des utilisateurs : à mesure que disparaissent les occasions de développer la résolution de problèmes et la pensée, la dégradation des compétences des talents du développement s’accélère
- Les développeurs seniors n’acquièrent plus d’expérience de résolution de problèmes plus profonde, tandis que les juniors n’ont même plus l’occasion de construire leurs compétences
- Perte de la joie de créer : écrire du code avec les LLM fait perdre l’état de flow et le plaisir de la création, et lire puis modifier du code généré par l’IA est souvent pénible
L’inquiétude : « Vais-je perdre mon emploi à cause de l’IA ? »
Cette possibilité est très faible
Il existe deux capacités de développement que les LLM ne peuvent pas remplacer : la théorie des programmes et l’entropie des programmes
Théorie des programmes
- Comme l’affirmait Peter Naur, « programmer consiste à construire une théorie du design »
- Le code source n’est pas le véritable livrable, et la compréhension collective (la théorie) est plus importante
- Si l’on donne le même problème à deux équipes de niveau équivalent et qu’on ne leur transmet ensuite que le code, l’équipe qui l’a développé elle-même pourra ajouter des fonctionnalités bien plus efficacement
- Dans une base de code peu familière, la productivité est faible, puis augmente progressivement à mesure que l’on comprend la théorie interne de conception
Les LLM et la théorie des programmes
- Les LLM ne disposent que d’une mémoire en contexte ; ils ne peuvent donc pas internaliser une véritable théorie des programmes ni une conception en profondeur
- En pratique, l’essence réelle du développement (la conception et la construction d’une théorie) n’est acquise que par les humains
Entropie des programmes
- Fred Brooks a qualifié la complexité (entropie) de difficulté fondamentale de la programmation
- La maintenance des programmes augmente la complexité, et même les meilleures exécutions conduisent les systèmes à un vieillissement irréversible
Les LLM et l’entropie des programmes
- Les LLM se limitent à une prédiction de tokens au niveau du texte et sont incapables d’une réflexion sémantique au niveau des idées, des plans de conception ou des exigences
- Plus ils traitent de longues conversations ou de gros blocs de code, plus ils répètent des changements inutiles ou étranges, ce qui ne fait qu’alourdir la complexité
- Réduire la complexité ou lui résister est une tâche que seuls les humains peuvent accomplir
Conclusion
À partir des intuitions de deux pionniers, l’auteur réaffirme la nature essentielle de la conception logicielle et de la complexité
Si l’on espère que l’IA améliorera sa carrière de développeur, il faut faire attention : elle peut au contraire accélérer l’incompétence
Forts d’une expérience riche et de compétences solides, nous devons reconnaître que les LLM ne peuvent pas remplacer les ingénieurs humains
L’attrait économique de l’adoption de l’IA réside dans la réduction des coûts, mais en réalité elle introduit de nouveaux risques, et un usage excessif accumule à long terme des coûts supplémentaires et des risques organisationnels
L’importance de la maîtrise technique et de la capacité de réflexion approfondie ne changera pas à long terme ; il faut utiliser l’IA comme un outil et continuer à investir dans les compétences essentielles qui comptaient déjà en 2019
Annonce du prochain article
Un prochain billet abordera des solutions concrètes pour chacun de ces risques
Références
- Leading Question: https://en.wikipedia.org/wiki/Leading_question
- The XY Problem: https://en.wikipedia.org/wiki/XY_problem
- ThoughtWorks Technology Radar Volume 32: https://thoughtworks.com/content/dam/…
- Coding as Craft: Going Back to the Old Gym: https://cekrem.github.io/posts/…
- Thoughts on Thinking: https://dcurt.is/thinking
- The Hidden Cost of AI Coding: https://terriblesoftware.org/2025/04/23/the-hidden-cost-of-ai-coding/
- "I wonder if I'll become redundant": https://reddit.com/r/ExperiencedDevs/…
- Programming as Theory Building: https://pablo.rauzy.name/dev/naur1985programming.pdf
- Grug on Complexity: https://grugbrain.dev/#grug-on-complexity
- Gartner Hype Cycle: https://en.wikipedia.org/wiki/Gartner_hype_cycle
1 commentaires
Avis Hacker News
Les ingénieurs logiciel sont toujours censés produire un logiciel prévisible qui passe les tests, et l’outillage y est bien plus avancé
À l’inverse, pour les ingénieurs ML, travailler avec des modèles probabilistes fait naturellement partie du quotidien, et les tests portent souvent davantage sur des métriques que sur une sortie précise
Ils sont donc plus habitués au fait que l’IA n’est pas toujours fiable
Ils abordent aussi les assistants de code avec l’idée que si 80 % de la réponse est correcte, il leur suffit de repérer les 20 % restants
Quand je travaillais chez Amazon, les solutions fondées sur le ML étaient très utiles pour des problèmes sans approche classique
Mais dans une startup, certains s’obstinaient sur une approche par apprentissage sans même comprendre le filtrage ou le mapping de base, ce qui produisait à répétition des résultats absurdes pour l’estimation d’attitude d’un avion à l’arrêt
Ce fossé entre ML et ingénierie logicielle est bien réel, et j’aimerais qu’on trouve de meilleurs moyens de le faire apparaître dans les processus de recrutement
Dans une entreprise qui vend des produits où la précision et la justesse sont essentielles, l’équipe ML soutenait que 80 à 90 % suffisaient, au grand agacement de l’architecte
Cela rappelle que même un petit pourcentage peut avoir un impact énorme, comme on l’a vu pendant la pandémie avec les discussions autour d’un taux de mortalité de 1 %
Cet article s’intéresse à une question méta sur l’IA et l’ingénierie logicielle, à savoir la gestion de l’entropie des programmes
La gestion de l’entropie représente une part énorme de la construction de produits logiciels, et l’IA pourra peut-être un jour la faciliter, mais aujourd’hui elle l’aggrave souvent
Je vois le MLE dans une perspective plus large de SWE, avec la nécessité de comprendre l’ensemble : construction de pipelines robustes, intégration des modèles, déploiement, etc.
Mais la plupart des profils purement MLE manquent de point de vue SWE et comprennent souvent le ML sans véritable intuition informatique
Pour être réellement full-stack, il faut comprendre à la fois les systèmes bas niveau, l’architecture, le déploiement, et le MLE
Pourtant, le marché recrute surtout soit des SWE, soit des docteurs MLE ; qu’on me propose donc une rémunération à la hauteur si je sais faire tout cela
Par exemple en repensant les race conditions, en estimant le p99 des appels DB, ou avec les tests A/B
En tant que développeur senior avec 30 ans d’expérience, devoir lire du code généré par l’IA signifie que le développement bascule vers un flux centré sur la revue de code
Cela aide même les développeurs individuels à adopter un sens des responsabilités propre au travail en équipe et à apprendre en lisant davantage de code
Bien utiliser un LLM exige aussi une compréhension de la structure hiérarchique du problème
Concevoir en détail section par section aide naturellement à définir les interfaces et les frontières
Les LLM sont un catalyseur qui accélère la progression des juniors vers un niveau senior, en leur permettant d’entrevoir l’apprentissage des développeurs expérimentés
L’IA ne remplacera pas les développeurs ; elle finira par s’intégrer comme un outil
Le code généré par les LLM peut être monotone, mais cela reste une occasion d’apprentissage
J’ai découvert beaucoup de nouveaux idiomes et appels de bibliothèques en lisant du code généré par des LLM
Plus on est senior, mieux on peut formuler les prompts, et plus le LLM devient un catalyseur puissant
Les réductions d’effectifs se poursuivent, de la big tech à la mid-tech et à la small tech
L’IA serait plus proche de ce type de changement concret que d’une singularité
Avec l’arrivée des LLM, des méthodes de cours et de devoirs autrefois considérées comme évidentes changent rapidement partout dans le monde
Sans SpaceX, bien des choses auraient été réellement impossibles
Au final, les banques ont surtout fini par vendre des produits financiers fondés sur le bitcoin
L’impression 3D n’est pas perçue comme un remplacement de la fabrication existante et reste surtout cantonnée au prototypage, aux maquettes et aux PoC
Accepter du code qu’on ne comprend pas se paie cher plus tard en maintenance, sous forme de dette technique
C’est comme une illusion de vitesse gratuite ; en réalité, on accumule de la dette technique à un taux équivalent à 40 % d’intérêt annuel
L’IA peut automatiser la saisie, mais la réflexion doit rester humaine
tdd, microservices, etc.)Certains estiment que des pratiques comme
tddou les microservices, pas toujours nécessaires dans le développement traditionnel, gagnent en valeur à l’ère des LLMLa moindre ambiguïté dans le prompt peut complètement fausser le résultat, et lorsqu’on s’en rend compte, il est souvent trop tard pour réparer proprement
C’est précisément à cause de l’ambiguïté du langage humain que les langages formels sont apparus
Personnellement, en utilisant les outils IA, j’ai parfois l’impression que mon niveau se dégrade rapidement, et j’ai eu des cas où j’y ai perdu encore plus de temps et d’énergie
L’IA est utile, mais on dirait qu’il y a d’un côté ceux qui voient s’accumuler les petites erreurs sur des problèmes complexes, et de l’autre des managers ou non-techniciens qui ne regardent que le résultat pour parler de « remplacement de rôle »
[Expérience détaillée : commentaire précédent]
Comme les calculatrices ont fait baisser les capacités de calcul mental, l’IA peut aussi dégrader l’écriture, la communication et la résolution de problèmes
D’où l’usage réservé des LLM à de petites tâches claires, du type de celles qu’on chercherait sur StackOverflow
Je ne traite jamais leurs réponses comme des vérités absolues, mais comme des guides
La capacité humaine à comprendre le plan d’ensemble reste essentielle pour résister à l’entropie
Cela aide à clarifier bien davantage le sujet et le contexte
J’espère que cette astuce servira aussi à d’autres
Exemple : l’ancienne guerre Coke vs Pepsi
Si on interroge un LLM sur l’intention de conception, par exemple en demandant « donne-moi un code simplifié », on peut obtenir un très bon second avis
Si on ne pose pas la question, il n’y a simplement pas de réponse ; et les réglages par défaut sont aussi notre choix, donc cela n’a pas grand-chose à voir avec la nature profonde de la technologie sous-jacente
En pratique, personne ne peut embrasser entièrement un programme gigantesque dans sa tête ; les outils et les langages ont surtout progressé sur la base d’une compréhension partielle
Les LLM partagent cette même limite, donc humains et LLM se ressemblent en ce sens
Ce qui manque aux LLM, c’est la capacité à demander « pourquoi fais-tu cela de cette façon ? »
Il y a une part de vrai, mais la plupart des gens n’étaient déjà pas bons pour se repérer, et les technologies de cartographie ont plutôt amélioré en moyenne la capacité à aller de A à B
Même pour la minorité de personnes très habiles, la technologie joue davantage un rôle d’assistance que de remplacement
L’IA entraînera sans doute une évolution similaire à plus grande échelle : certaines capacités diminueront ou se perdront, mais il y aura aussi beaucoup à gagner
Une carte donne presque toujours la valeur attendue, alors qu’un LLM varie même avec le même prompt, ce qui le rend difficile à juger fiable
De la même façon que certaines personnes finissent dans un lac à cause du GPS, une confiance aveugle dans les LLM peut provoquer des problèmes encore plus graves
On peut errer librement puis retrouver un itinéraire quand nécessaire, ce qui enrichit au contraire l’expérience
L’IA, elle, est parfois inférieure à quelqu’un qui n’a pratiqué le domaine que quelques jours
Les LLM récents peuvent clairement travailler à un niveau conceptuel, par exemple pour traduire ou appliquer un concept
Ils peuvent même comprendre des concepts qu’un humain n’a pas personnellement expérimentés
Par exemple, autour de
dog, on retrouve des mots associésEn revanche, ils ne modélisent pas bien la composition, l’intention ou le raisonnement contrefactuel
Ils sont performants pour les questions proches des données d’entraînement
Dans des domaines bien structurés conceptuellement, comme l’ingénierie logicielle, ils peuvent être utiles
Au final, ceux qui travaillent sans conviction ne changeront pas avec l’IA, et seuls ceux qui apprennent vraiment progresseront avec elle
Si l’IA fait mieux le travail, cela crée justement un argument pour remplacer la personne
Même le FSD (conduite autonome) est bien meilleur qu’un conducteur moyen non expert
Réflexions en cours autour d’un format forum, mailing list ou multi-blog
Liste de diffusion temporaire
Il existe déjà des exemples réussis de ce modèle dans certaines communautés