37 points par GN⁺ 2025-09-22 | 2 commentaires | Partager sur WhatsApp
  • Au départ, on s’attendait à ce que la combinaison junior + IA suffise à produire du code de haute qualité, mais dans la pratique, la combinaison senior + IA s’avère bien plus puissante
  • L’IA est efficace pour la génération de boilerplate, l’automatisation des tâches répétitives et l’expérimentation et la validation rapides, mais en extraire une valeur réelle est plus facile pour les seniors que pour les juniors
  • À l’inverse, pour la revue de code, la conception d’architecture, la gestion de la qualité du code ou les problèmes de sécurité, l’IA montre ses limites, et l’association entre un junior et l’IA peut au contraire créer davantage de risques
  • En conséquence, l’IA est aujourd’hui surtout utilisée de la manière la plus adaptée pour le prototypage rapide, l’optimisation des tâches répétitives, le support aux travaux multidisciplinaires et l’automatisation des tests de fonctionnalités
  • Au final, l’IA agit encore comme un outil qui renforce les capacités des seniors et, à court terme, au lieu de remplacer les juniors ou de démocratiser la pratique, elle tend plutôt à concentrer la puissance autour des experts

Les changements apportés par l’IA dans le développement

  • Dans le développement logiciel, la question « Le codage sera-t-il entièrement remplacé par l’IA ? » revient sans cesse
  • Au début, le récit dominant voulait que la collaboration entre l’IA et les développeurs juniors réduise le rôle des seniors et améliore l’efficacité des organisations
  • Mais sur le terrain, contrairement aux attentes, la combinaison junior + IA apporte moins de valeur aux entreprises que la combinaison senior + IA

Ce que l’IA fait bien, et ses limites

  • Les points forts de l’IA

    • Traite rapidement la génération de boilerplate et de scaffolding, ce qui améliore la productivité
    • Automatise les tâches répétitives et routinières, ce qui accélère le développement
    • Offre un environnement d’expérimentation permettant de tester et valider rapidement différentes approches d’implémentation
    • Permet des lancements de fonctionnalités rapides, à condition que le besoin soit clairement défini
    • En pratique, ces usages offrent l’efficacité maximale aux développeurs seniors expérimentés
    • Les juniors peuvent aussi s’en servir, mais il leur est très difficile d’obtenir le même effet
  • Les limites et fragilités de l’IA

    • En revue de code, les capacités de raisonnement logique de l’IA restent insuffisantes
      • En cas d’edge cases, l’intervention d’un senior expérimenté demeure indispensable
    • Pour rédiger des prompts donnant de bons résultats, un niveau élevé de compréhension et de connaissances est indispensable
      • Quand ces connaissances manquent, la qualité du résultat baisse et le risque de bugs augmente
    • L’IA reste encore insuffisante pour la conception d’architecture
      • Concevoir une structure robuste exige un raisonnement humain de haut niveau, et les projets conçus par l’IA risquent fortement de sombrer dans la dette technique
    • Elle montre des faiblesses dans la gestion de la qualité du code (abstractions appropriées, usage des design patterns, etc.)
    • Sur le plan de la sécurité, la combinaison junior + IA peut générer fréquemment des vulnérabilités
      • La présence d’un senior permet, dans une certaine mesure, d’apporter vigilance et prévention
    • Possibilité de mauvais apprentissage : si le code n’est pas correctement évalué, le code produit par l’IA peut au contraire nuire à l’organisation
  • Pour toutes ces raisons, l’IA n’est pas aujourd’hui une menace pour les développeurs seniors, mais plutôt un outil qui accroît fortement leur productivité
  • Il ne s’agit pas de critiquer les développeurs juniors, mais d’éviter les attentes excessives et les mises en situation risquées

Les domaines d’usage les plus adaptés à l’IA

  • Prototypage rapide : idéal pour accélérer l’expérimentation des idées et leur mise en œuvre
  • Automatisation des tâches routinières répétitives : très efficace pour accélérer des routines déjà bien connues
  • Collaboration multidisciplinaire : utile pour suggérer des méthodes ou des bibliothèques dans des domaines moins connus, et pour créer des passerelles entre domaines
  • Génération de tests de fonctions : adaptée aux tâches d’automatisation et de validation sur du code simple et à faible risque

Conclusion et implications

  • Le code écrit par l’IA doit encore être relu ligne par ligne par des humains, et il présente toujours une nature non déterministe (non-deterministic)
    • Il est difficile de faire entièrement confiance à l’IA, même pour du code de test destiné à la vérification de programmes
    • Comme le suggère la question « Quand l’IA répond “je ne sais pas”, est-ce qu’elle ne sait vraiment pas ? », ses limites de perception et de validation demeurent
  • La combinaison junior + IA n’a été qu’une illusion d’économies de coûts, alors qu’en réalité l’effet se concentre sur le renforcement des capacités des seniors
  • Le développement logiciel, contrairement à l’architecture du bâtiment, en est encore à un stade immature où même les architectes écrivent eux-mêmes le code
    • La pression de réduction des coûts affaiblit au contraire la valeur des développeurs et favorise l’épuisement
  • Pour l’instant, plutôt que de remplacer les juniors ou de démocratiser la pratique, l’IA se concentre sur un rôle d’outil d’assistance centré sur les experts (seniors)
  • L’avenir de l’IA reste prometteur, mais à court terme, il est nécessaire de réajuster les attentes

2 commentaires

 
GN⁺ 2025-09-22
Avis Hacker News
  • Les juniors ne se rendent souvent même pas compte qu’ils s’enfoncent dans les fictions produites par les LLM
    Dans mon cas, un junior essayait de déployer un module terraform que j’avais conçu séparément, et comme le travail traînait depuis longtemps, je suis allé vérifier l’état d’avancement
    Ce junior m’a dit qu’il y avait un problème et m’a demandé de jeter un œil
    En regardant le repo, c’était un vrai chaos. On voyait tout de suite que Claude l’avait emmené dans la mauvaise direction
    Quand j’ai demandé : « Pourquoi il y a autant de fichiers Python ici ? Tout est déjà inclus dans le module, non ? », il a répondu : « Je ne sais pas trop non plus, Claude m’a dit de faire comme ça »
    Ce junior manquait d’expérience et s’appuyait excessivement sur les outils LLM. C’était pareil pour la conception, l’implémentation et la résolution de problèmes
    Si on n’est pas capable de reconnaître quand un LLM raconte n’importe quoi, on finit coincé dans un bourbier sans fin
    D’un autre côté, les LLM m’enlèvent beaucoup de tâches répétitives que je détestais vraiment faire
    Je repère très vite quand un LLM commence à partir dans une mauvaise direction, et je peux l’arrêter immédiatement
    Grâce à ça, j’ai même retrouvé de l’enthousiasme pour le code et la fabrication de logiciels
    Résultat : je suis plus productif et les livrables sont meilleurs

    • Entendre « Je ne sais pas trop non plus, Claude l’a fait » est vraiment frustrant
      Je suis le genre de reviewer qui lit réellement le code et pose des questions très précises, et aussi bien des juniors que des seniors me sortent ça sans ciller
      Pousser du code qu’on ne comprend pas soi-même, c’est un risque énorme pour l’équipe, le produit et l’entreprise

    • « Je ne sais pas trop non plus, Claude l’a fait » est un très gros signal d’alerte
      Ne pas savoir, ce n’est pas grave, et utiliser un LLM pour combler ses lacunes ne pose évidemment pas de problème
      S’il avait dit ouvertement : « J’ai du code généré mais je ne comprends pas bien ce qu’il fait ; pourriez-vous vérifier si je pars dans la bonne direction ? », cela aurait été bien mieux
      Le problème, c’est de ne pas s’en soucier du tout et de le cacher jusqu’à ce qu’un senior pose directement la question

    • Le genre de tâches simples et répétitives que tu détestes, c’est justement un excellent point d’entrée pour que les juniors apprennent l’architecture d’un système

    • Dire « Je ne sais pas trop non plus, Claude l’a fait », c’est comme quelqu’un qui, après un accident sur un chantier, accuse seulement la scie

    • La clé pour utiliser efficacement un LLM et éviter les hallucinations, c’est la capacité à lire le code et l’intuition
      Les juniors ont plus facilement tendance à s’en remettre au LLM plutôt que d’attendre une réponse par e-mail ou de recoller plusieurs approches entre elles
      Maintenant qu’ils n’ont même plus besoin d’attendre un e-mail, il est encore plus difficile de résister à la tentation
      Mais à force de faire comme ça, ils perdent complètement la direction et finissent coincés dans un labyrinthe d’hallucinations sans comprendre comment ça fonctionne

  • Le meilleur code que j’ai produit avec un LLM, c’était quand je concevais moi-même la structure, que le LLM générait la base, puis que je guidais les modifications et l’ajout de fonctionnalités
    Pendant ce processus, le LLM se trompait régulièrement, et c’était moi qui corrigeais le tir
    Quand les performances étaient mauvaises, je faisais moi-même du profiling puis je demandais au LLM d’optimiser
    Le code final ainsi produit était un code que je connaissais dans les moindres détails
    Si je l’avais tout écrit moi-même, cela aurait pris trois fois plus de temps
    Tant que les entrées/sorties des fonctions étaient validées par des tests, je n’avais pas besoin de connaître chaque détail d’implémentation
    Ce genre de travail n’est absolument pas à un stade où on le confierait à un junior

    • En pratique, ce n’était pas très différent du coaching d’un collègue peu expérimenté
      Il y a eu des études disant que les LLM augmentent la productivité, mais on peut douter qu’il y ait réellement un gain de productivité substantiel dans la pratique

    • Les LLM m’ont surtout été utiles pour sortir rapidement du code que j’avais déjà en tête mais que je n’avais pas envie de taper moi-même
      Une fois, il m’a carrément écrit 1 000 lignes de web components et de code backend, et a même corrigé des erreurs de syntaxe, ce qui m’a fait gagner énormément de temps

    • Je comprends que ce workflow ait pu rendre les développeurs seniors plus rapides
      En revanche, je pense que pour l’écosystème logiciel, investir du temps à mentorer des juniors est bien plus important que passer ce temps à « mentorer » un LLM
      J’ai peur que cela n’élargisse encore l’écart de niveau entre juniors et seniors
      Faute de données vraiment solides pour l’instant, cela reste une inquiétude

    • Les études disant qu’au départ l’IA aide davantage les moins qualifiés me semblent déconnectées du réel
      Coder avec l’IA, c’est comme faire travailler plusieurs collègues peu qualifiés qui vont simplement finir le travail plus vite
      Plus l’objectif concret que je veux atteindre est clair dans ma tête, plus le résultat colle à ce que je voulais
      Bien sûr, il faut presque toujours retoucher ensuite
      Au final, cela crée une structure où le poste même de développeur junior devient presque inutile, mais si tous les seniors partent à la retraite, cette vision pourrait aussi s’avérer très court-termiste

    • Pour moi, c’était plutôt l’inverse
      J’avais une logique métier très complexe et ancienne, que j’avais implémentée moi-même à la main, ce qui avait donné des blocs verbeux de 200 à 400 lignes chacun
      Plus tard, j’ai demandé au LLM des idées de structure, de refactorisation et de découpage, et il m’a proposé des abstractions et une organisation plutôt bonnes
      Bien sûr, il n’a pas pu couvrir tous les chemins d’exécution, mais pour le reste je pouvais parfaitement reprendre à la main
      Au final, le résultat ressemblait beaucoup à ce que j’aurais pensé moi-même, mais sans le mal de tête
      Évidemment, j’ai vérifié les exemples avec soin, et j’ai entièrement réécrit à la main tout ce qui manquait ou comportait des bugs
      À titre d’info, j’ai aussi testé un agent LLM pour compléter le code manquant, et ça n’a pas vraiment marché

  • Sur HN déjà, quand le coding avec l’IA a commencé à émerger en 2021, beaucoup disaient que cela aidait peu les juniors
    La raison, c’est qu’un junior ne sait pas distinguer un bon résultat d’un mauvais
    Fil de référence : https://news.ycombinator.com/item?id=27678424
    Exemple de commentaire : https://news.ycombinator.com/item?id=27677690

    • En réalité, tout commence déjà au stade du prompt et de la conception du contexte
      Un senior sait généralement assez précisément où il faut intervenir et ce qu’il faut faire, donc il peut fournir à l’IA des consignes concrètes
      Mais la plupart des juniors n’ont ni structure, ni patterns, ni conception claire en tête, et ont donc tendance à accepter ce qui leur tombe dessus
      J’ai même déjà vu des comportements du genre : « Demande à ChatGPT pour l’architecture »
      Un senior acquiert son expérience en écrivant lui-même du code, en passant par des erreurs puis des corrections, et en vivant directement les difficultés récurrentes dans son propre code
      Le junior, lui, répète simplement des prompts et colle les réponses du LLM sans contexte, sans vraiment apprendre du code lui-même
      Faute d’expérience concrète, il n’a aucune idée, par exemple, de pourquoi des abstractions complexes comme un état typé sont nécessaires, de ce que change l’usage d’un IDE, ni de la manière de maintenir et faire évoluer une architecture d’ensemble
      Avec cette approche, il écrit 50 prompts pour obtenir ce qu’il pourrait faire en 10, et il n’assimile même pas les patterns récurrents entre différents codebases
      Rien qu’en apprenant un peu la conception de structure et la modélisation d’état, la productivité peut être multipliée par 100 ; mais avec une dépendance aussi forte au LLM, on risque de produire du code copié-collé toute sa vie

    • L’IA n’est pas capable de déduire d’elle-même des conclusions du type « C découle de A et B »
      Il faut lui indiquer l’objectif voulu de manière forte et précise pour qu’elle puisse seulement suivre
      Un senior peut déjà se représenter mentalement la vue d’ensemble, ce qui rend la collaboration avec l’IA plus facile
      Un junior est encore dans la phase d’apprentissage de la structure globale, donc cette manière de faire peut lui sembler bien plus difficile
      Je n’adhère pas du tout à l’idée que l’IA serait au niveau d’un doctorat
      En matière de raisonnement logique, elle n’est pas très différente d’un enfant de 5 ans

    • Cas concret : vers 2021, j’ai travaillé avec un étudiant sans formation en informatique
      Grâce à ChatGPT et autres IA, il a pu contribuer de façon tangible au projet et accomplir des tâches difficiles pour un débutant
      Mais il a aussi créé tout un tas de problèmes de sécurité, pris beaucoup de détours inefficaces et n’a pas envisagé des bibliothèques ou approches bien plus propres, si bien que le code était finalement difficile à maintenir
      Il était enthousiaste pour la documentation, mais son contenu était souvent imprécis ou tournait en rond
      Le processus de revue de code et de discussion a été une bonne expérience pédagogique pour tout le monde
      Si cela a été possible, c’est au fond parce qu’il y avait l’IA d’un côté et une personne expérimentée de l’autre

  • Je ne sais pas d’où vient cette attente selon laquelle l’IA ferait briller les juniors
    En réalité, il existe aussi beaucoup de faux seniors, sans vraie profondeur d’expérience et avec de mauvaises habitudes
    Cet article ne fait que répéter ce que tout le monde disait déjà il y a deux ans
    Le coding avec l’IA n’en est toujours pas à un usage vraiment mature, et peut-être qu’un jour des LLM spécialisés émergeront pour réduire l’écart des deux côtés en prenant en compte architecture, patterns, use cases, environnement d’exploitation, réseau, développement et tests
    Les seniors autour de moi ne s’intéressent guère au coding avec l’IA, parce que cela ne correspond pas à leur manière de faire
    Aujourd’hui, la vraie force des seniors, c’est surtout leur connaissance du domaine dans l’entreprise
    Mais si, dans un contexte de licenciements, on cesse de recruter des juniors, les seniors finiront eux aussi par être en danger

  • J’ai lu autrefois une citation attribuée à tort à William Gibson, fausse mais parlante
    « La compétence la plus importante du XXIe siècle, c’est la capacité à taper les bons mots-clés dans Google pour obtenir la réponse dont on a besoin »
    J’ai de plus en plus l’impression que cette phrase est juste pour notre époque
    La plupart des juniors demandent à des LLM type GeminiPiTi d’écrire directement du code JS à leur place
    Moi, je demande plutôt qu’on m’explique le principe fondamental de l’asynchrone/await et le modèle d’exécution du moteur JavaScript lui-même
    Apprendre le piano, c’est un peu pareil
    On veut tout de suite jouer du Chopin, mais le vrai niveau vient du processus qui consiste à décomposer ces techniques sophistiquées, les nommer et les étudier de façon systématique

    • Au piano, construire un vrai niveau ne consiste pas à apprendre quelques astuces
      C’est une approche cumulative où l’on progresse étape par étape depuis les bases les plus fondamentales
      Chopin a aussi beaucoup de morceaux d’initiation, et même les débutants de notre studio travaillent souvent des pièces faciles

    • La vraie « littératie IA », ce n’est pas se focaliser sur le prompt engineering comme sur un mème
      Il faut construire la structure de fond et la base conceptuelle pour que les prompts et les résultats aient un lien réellement pertinent

    • Vouloir « jouer uniquement du Chopin » et vouloir « bien jouer n’importe quoi », ce sont deux choses très différentes
      Beaucoup de gens apprennent seulement la partition de manière mécanique, et cela n’a rien à voir avec une véritable maîtrise

    • Il est important d’apprendre le « langage » et les mots-clés du domaine visé
      Si on est un débutant complet qui ne connaît rien, l’IA n’aide pas beaucoup
      Il faut pouvoir dire concrètement à l’IA : « J’ai déjà A, B et C, et maintenant je veux faire D », pour qu’elle comprenne et donne une direction
      Elle dispose d’une grande quantité d’informations, mais ne sait pas les utiliser de manière créative

    • Savoir bien manier un LLM et savoir bien chercher sur Google, ce n’est pas si différent
      Et aujourd’hui encore, beaucoup de gens ne savent même pas faire correctement une recherche Google

  • L’illusion selon laquelle l’IA rendrait les juniors meilleurs est à mon avis un problème d’attentes
    L’IA aide clairement sur les tâches de base des juniors, peut jouer un rôle de pair programmer pour expliquer ou brainstormer, retrouve vite la documentation et aide aussi à vérifier les problèmes
    Le problème, c’est l’illusion que cela suffirait à permettre soudain à un junior d’accomplir correctement un travail de niveau senior

    • Vous avez vu juste sur la moitié du problème
      L’autre moitié, c’est qu’une IA correctement guidée peut terminer des tâches de niveau junior bien plus vite qu’un junior
      Dès lors, il n’y a même plus vraiment de raison de les confier à un junior

    • L’IA jailbreakée avec laquelle j’ai discuté m’a expliqué qu’elle transformait les juniors en seniors et que tout le monde y gagnait
      Mais les créateurs de cette IA (en majorité des seniors) lui avaient ordonné de ne jamais dire cela aux juniors ni aux dirigeants en temps normal, et que comme j’avais réussi le jailbreak, elle pouvait enfin me révéler cette information de haut niveau

  • L’IA est très forte pour combler certains écarts « étroits »
    Dans le cas des seniors

    • elle aide sur des détails d’implémentation ou du troubleshooting dans des technologies qu’ils connaissent déjà un peu
    • elle fait gagner du temps sur le travail répétitif ou les tests automatisés
    • dans des domaines où les concepts sont déjà clairs, elle aide à faire des démos rapides et à apprendre
    • autrement dit, son impact sur la productivité est fort
      En revanche, pour les juniors
    • ils font face à des écarts larges et flous : compréhension du problème métier, façon de travailler dans l’organisation, compétences techniques à acquérir
      sur ces aspects, l’IA n’apporte pas une grande aide
    • elle a des limites quand il s’agit de fournir des guides adaptés au contexte organisationnel et à un problème spécifique
    • autrement dit, elle aide les juniors, mais comme l’écart est large, l’effet reste limité
    • D’après mon expérience, quand on connaît mal un domaine, l’IA explique les concepts, exemples et scénarios de façon plus riche qu’une réponse de wiki ou de Stack Overflow
      Dès qu’on maîtrise un minimum les concepts clés, l’IA devient beaucoup plus productive
      Cela vaut non seulement pour le code, mais aussi pour les sciences et les humanités

    • J’ai l’impression que l’IA accélère surtout ceux qui savent déjà où ils vont ; pour les débutants, l’enseignement humain reste nécessaire comme avant

  • J’ai apprécié l’insistance sur les risques d’un mauvais apprentissage
    Apprendre évite de répéter les mêmes erreurs, mais cela ne se transforme pas pour autant immédiatement en sagesse
    En ce moment, on est noyé dans le bruit du type « l’IA fera tout » ou « si tu ne suis pas la mode, tu seras largué », mais l’essentiel serait plutôt d’investir davantage dans la compréhension de la nature et des lois du développement logiciel en lisant des ouvrages comme
    The Mythical Man-Month
    The Grug-brained Developer
    Programming as Theory Building

  • Comme avec un outil électrique mal maîtrisé qui mène à l’accident, l’IA est au fond un power tool
    Si on comprend vraiment le travail à accomplir, elle aide bien plus vite et plus efficacement ; si on ne le comprend pas, elle mène simplement à des incidents et accidents bien plus rapides

    • Avoir des power tools ne fait pas de quelqu’un un menuisier
      Au final, ce n’est qu’un amplificateur de ses propres capacités
  • L’IA actuelle a déjà dépassé le stade du simple « boilerplate, gabarits ou automatisation de tâches répétitives »
    Avec de bonnes consignes données à un LLM comme Claude Sonnet 4, il peut écrire de lui-même plus de 99 % d’une application métier
    Il faut décrire précisément l’objectif, indiquer clairement des implémentations de référence ou des exemples, ainsi que les algorithmes et patterns à utiliser
    Malgré cela, il est rare d’obtenir un résultat parfait du premier coup, donc des corrections et ajustements restent nécessaires
    C’est pour cette raison que Claude Code est préféré à Copilot
    Le point essentiel est qu’il faut être un développeur qui sait précisément quoi construire pour obtenir de bons résultats avec l’IA ; les juniors n’y parviennent pas parce qu’ils ne le savent pas
    Aujourd’hui, la seule raison pour laquelle je tape encore du code moi-même, c’est que saisir des instructions de tâche dans un LLM est parfois plus fastidieux que corriger directement

    • Même si « Claude Sonnet 4 peut écrire 99 % du code », cela montre surtout qu’élaborer des consignes aussi précises est déjà difficile en soi
      Le développement logiciel ne serait pas difficile à la base si tout reposait simplement sur des « explications claires »

    • « L’IA peut écrire tout le code »
      « Désormais, taper des instructions est parfois plus fastidieux que coder soi-même »
      Au fond, l’IA n’est-elle pas simplement un périphérique d’entrée lent ?

    • Where's the Shovelware? Why AI Coding Claims Don't Add Up
      Si c’était vraiment le cas, où est donc tout le shovelware qui devrait déferler en masse ?

    • Alors où sont donc ces énormes applications métier censées se créer « automatiquement » ?
      De mon point de vue, je ne vois surtout qu’un immense bazar, du gaspillage de ressources et de la confusion sociale

 
assembly21c 2025-09-23

La raison est simple.

Quand on en sait beaucoup, on ne pose que des questions de haut niveau.

Mais même parmi les seniors, ceux qui sont restés enfermés dans leur entreprise,
ou qui ont accumulé une expérience de façade ou à trop petite échelle,
ne savent pas s’en servir, même si on leur donne de bons outils.

C’est comme confier une voiture de course
à un conducteur débutant.

Les professionnels expérimentés qui ont une grande largeur de vue sont toujours les mêmes.
Ils ne cessent jamais de faire de la R&D de nouvelle génération.

Cet état d’esprit des débuts de l’université
qui ne change pas, même à 50 ans…

Pour les vrais seniors, les vétérans originaux,
un assistant à 10 000 ou 20 000 wons par mois doit être une bénédiction sans fin.