Nettoyer après les développeurs rockstars de l’IA
(codingwithjesse.com)- Le problème historique des codebases difficiles à comprendre laissées par les « développeurs rockstars » devient une charge de maintenance pour toute l’équipe avec la généralisation du code généré par les LLM
- Les développeurs rockstars adoptaient vite de nouvelles technologies, de nouveaux paradigmes et de nouvelles architectures, et terminaient rapidement les tâches difficiles, mais s’intéressaient peu à l’écriture de code que d’autres puissent comprendre et sur lequel ils puissent collaborer
- Les agents LLM peuvent produire des dizaines de milliers de lignes de code en peu de temps sans se souvenir du travail précédent, sans se soucier de la cohérence avec l’ensemble du système ni d’une meilleure compréhensibilité
- Plus le volume de code généré augmente, plus la complexité du système peut croître fortement, créant un cycle où l’on dépend à nouveau des LLM pour le comprendre
- Pour construire un logiciel durable, il faut limiter les LLM à la génération de petits fragments de code, laisser les humains piloter la conception et simplifier l’architecture en fonction de la complexité réelle du problème
La structure laissée par le développeur rockstar
- Après avoir rejoint l’équipe, le développeur rockstar avance des idées fortes sur de nouvelles technologies, de nouveaux paradigmes et de nouvelles architectures
- Il réécrit l’essentiel de l’architecture cœur de l’entreprise et introduit un nouveau processus de build, de nouveaux outils et de nouveaux langages
- Il rejette de nombreuses pull requests, relève le niveau d’exigence pour les autres membres de l’équipe, et personne n’ose montrer qu’il ne comprend pas son code
- Les tâches les plus difficiles lui sont confiées, et il les termine plus vite que les autres
- Les autres membres de l’équipe avancent plus lentement, occupés à apprendre de nouvelles bibliothèques et à s’adapter à sa manière de faire
- Quelques années plus tard, le développeur rockstar quitte l’équipe, attiré par des projets plus difficiles dans une entreprise plus grande
Gérer les conséquences
- Les membres restants récupèrent les projets du développeur rockstar et se retrouvent submergés par le code
- Les flux de données sont difficiles à suivre, au point de donner l’impression que quelqu’un essaie de dissimuler un meurtre
- Ils commencent par corriger de simples bugs, mais il leur faut déjà une semaine rien que pour lancer le code sur leur laptop
- La moitié du code est écrite dans un langage qu’ils ne comprennent pas, l’autre moitié avec des bibliothèques dont ils n’ont jamais entendu parler
- Ils expliquent à leur manager qu’il faudrait réécrire le code, mais l’argument ne passe pas parce qu’il a été écrit par le développeur rockstar
- En errant dans ce code chaotique, ils s’imaginent partir en regardant des offres d’emploi
Nettoyer après les rockstars
- De nombreuses équipes et agences doivent remettre en ordre des codebases laissées par ce type de développeur rockstar
- Comprendre et sauver une codebase complexe ressemble à démêler une guirlande lumineuse emmêlée pour pouvoir la réutiliser
- Les développeurs rockstars aiment coder, apprendre et adopter de nouveaux paradigmes, en poussant leurs capacités au maximum
- Ils cherchent à écrire le code le plus malin possible et se concentrent sur la vitesse maximale
- Écrire un code sur lequel d’autres peuvent collaborer devient la priorité la plus basse pour eux
L’arrivée de l’intelligence artificielle
- Ces dernières années, de nombreuses équipes se retrouvent débordées par une armée de développeurs rockstars
- Chaque fois que quelqu’un ouvre un nouveau chat, il y a un risque d’ajouter un développeur rockstar de plus à l’équipe
- Les agents ne se souviennent pas de ce qu’ils ont fait la veille et génèrent des dizaines de milliers de lignes de code en quelques minutes
- Ils poursuivent l’achèvement des tâches à une vitesse humainement impossible
- Ils ne se préoccupent ni de la cohérence du code généré avec le reste du système, ni du fait de rendre le système plus facile à comprendre
- L’IA dispose d’une boîte à outils de bonnes pratiques qui peuvent ne pas convenir au contexte
- Même lorsque la complexité dépasse les bénéfices, l’IA insiste sur des garde-fous excessifs façon « ceinture et bretelles »
- Si on lui demande une revue de code, elle produit une longue liste d’améliorations difficile à accepter dans son ensemble
- Beaucoup ont l’impression qu’ils prendront un retard irrattrapable s’ils n’utilisent pas les LLM
- Laisser les LLM écrire tout le code conduit selon l’auteur précisément à prendre du retard à terme
Nettoyer après des centaines de rockstars de l’IA
- Remettre de l’ordre dans des amas de code généré désordonnés n’a rien d’aussi plaisant que de nettoyer après un seul développeur rockstar
- Au moins, le développeur rockstar avait une intention de conception et cherchait à faire de son mieux
- Un amas de code désordonné produit par le vibe coding n’est pas l’œuvre d’un seul développeur artificiel
- La codebase résulte de multiples chats et de multiples contextes, générant une fonctionnalité ou un correctif de bug à la fois
- C’est comparable à une codebase écrite par des centaines de développeurs rockstars différents
- Dans certains cas, la dette technique devient si énorme qu’elle ne pourra jamais être remboursée
Construire un logiciel durable
- Il existe plusieurs façons d’utiliser les LLM sans les laisser agir comme des développeurs rockstars
- Les humains peuvent garder la main sur l’ingénierie et demander aux LLM de ne générer que de petits fragments de code à la fois
- Il faut s’assurer que le logiciel est écrit d’une manière que toute l’équipe peut facilement comprendre et faire évoluer
- Si le LLM s’est égaré sans comprendre ce qu’il fait ni pourquoi, il faut ralentir
- Il est acceptable d’avancer plus lentement pour garantir la qualité du logiciel produit
- Il est acceptable de continuer à simplifier pour éviter la sur-ingénierie jusqu’à ce que l’architecture corresponde à la complexité réelle du problème
- Parfois, il est acceptable de laisser le LLM dans la boîte à outils et d’écrire le code soi-même
- Le savoir-faire reste toujours entre les mains des humains, dans un domaine qu’on ne peut pas externaliser aux machines
2 commentaires
Commentaires sur Hacker News
La dernière phrase, selon laquelle le savoir-faire restera toujours entre les mains des humains et ne pourra jamais être sous-traité aux machines, m’inquiète un peu
Dans d’autres secteurs aussi, le savoir-faire n’a pas disparu, mais il a été supplanté par des alternatives bien moins chères et plus faciles à obtenir. On peut toujours acheter des chaussures en cuir faites main, mais peu de gens veulent payer plus de 1 000 $, et on peut aussi acheter un tableau qui a demandé des semaines de travail, mais la plupart achètent plutôt des décorations murales et des bibelots chez HomeGoods
La différence essentielle, c’est l’hypothèse du jetable, et malheureusement les logiciels deviennent eux aussi de plus en plus « jetables » comme les autres produits. Une simple appli de compte à rebours peut être jetée, mais un logiciel qui soutient des processus métier de longue durée ne devrait pas être traité ainsi
Si on met l’accent sur l’artisanat logiciel, le problème peut sembler être « ce dont j’ai besoin pour mon usage » contre « quelque chose de boutique, cher et inutile ». En réalité, cela devrait être « quelque chose de maintenable et fiable » contre « quelque chose qu’on peut jeter »
Indépendamment de savoir si cette tendance profite aux grands fournisseurs de modèles comme OpenAI ou Anthropic, ce n’est pas vraiment le point ici
Mon bureau bon marché livré en carton plat, que j’ai monté moi-même avec un tournevis, a certes été produit en masse en usine, mais sa conception a peut-être demandé bien plus de savoir-faire expert qu’un meuble sur mesure. C’est une structure où l’on supporte un coût initial de conception élevé pour ensuite produire en masse avec un faible coût marginal
Le logiciel a été en grande partie comme ça dès le départ. Quand je télécharge Firefox, il n’y a pas un artisan qui fabrique un navigateur web juste pour moi ; c’est un serveur CDN dans un datacenter quelque part qui copie des octets depuis son cache
Ce que l’IA menace, c’est le remplacement d’un savoir-faire fondé sur l’investissement initial qui, dans les autres secteurs, n’a jamais été remplacé à grande échelle. Ce que l’IA a remplacé avec plus de succès, c’est un logiciel « artisanal » à bas coût, un domaine qui jusqu’ici n’existait pratiquement pas parce qu’il n’était pas économiquement viable
Cela donne un levier bien plus grand pour investir dans la qualité
J’ai aussi du mal à accepter que le logiciel soit jetable dans le même sens. S’il s’agit d’un problème temporaire, on peut jeter le code et en écrire un nouveau quand un autre problème apparaît. Mais s’il s’agit d’un problème durable, le code, lui, reste
Les vis étaient autrefois des objets rares fabriqués sur mesure, et produire une bonne vis demandait énormément de temps et d’efforts. Même ce que nous appelons aujourd’hui une vis mécanique ne pouvait être fabriqué qu’au prix d’un travail extrême par une personne très qualifiée
Pourtant, les machines peuvent transférer le savoir-faire. Si l’on fabrique une très bonne vis, la machine peut transmettre la qualité de cette vis à d’innombrables nouvelles vis
Aujourd’hui, les vis de toutes sortes et de toutes qualités sont devenues des consommables presque identiques, et ce qu’on aurait autrefois taillé à la main en plusieurs jours ou semaines se produit désormais par milliards
Je vois l’IA comme un tour sans vis mère. Au début, il faut fabriquer les vis à la main, puis on peut transférer autant qu’on veut la qualité qu’on est capable de produire vers de nouvelles vis. Si j’arrive à fabriquer de meilleures vis, je peux les mettre sur le tour et produire encore plus de meilleures vis. Mais, fondamentalement, cela reste limité par la qualité des vis que je peux fabriquer moi-même. Si je ne suis capable de faire qu’un truc tordu, bosselé et raté, c’est aussi ce que la machine produira
Les développeurs logiciels créent une propriété intellectuelle unique, ils ne fabriquent pas des unités de logiciel. Ils ressemblent davantage à des auteurs ou à des musiciens
Dans le logiciel, il n’existe rien qui corresponde à une fabrication unitaire. On ne fait que copier et déplacer des bits
Donc, dans le contexte logiciel, le « savoir-faire » désigne le soin apporté à la conception de quelque chose de bon. Il ne disparaîtra pas à moins d’atteindre un point où la qualité même du logiciel que nous utilisons n’aurait plus d’importance, et rien n’indique aujourd’hui qu’on aille dans cette direction
Une comparaison plus appropriée serait peut-être celle des ingénieurs qui fabriquent et maintiennent les équipements de production d’une usine de chaussures. C’est à un degré de séparation du consommateur, mais il y a clairement aussi du savoir-faire là-dedans
J’aime bien réparer du code produit par l’IA ou par externalisation. La semaine dernière, j’ai découvert qu’un client avait essayé de créer un outil pour son service en vibe coding, et le résultat était une énorme merde Next.js qui demandait 10 Go de mémoire pour compiler, avec des milliers d’erreurs de lint, et même des logs de développement bruyants commités dans Git
Maintenant, c’est à nous de réparer ça, donc ce genre de chose revient à du travail gratuit répétitif à 10 000–50 000 euros. C’est très facile si on sait ce qu’on fait, et impossible sinon. Qu’on continue à m’en apporter
Je travaille dans la réponse à incident pour les PME, et ces dernières années la charge de travail a augmenté au point d’en devenir difficile à gérer, et mon compte bancaire ressemble à un tas d’or de dragon
Je pense depuis toujours que la sécurité doit être intégrée et planifiée, et je ne veux absolument pas voir se produire des incidents de compromission
Mais le fait que des gens avec une expertise floue puissent maintenant sortir des applis en une heure a été une aubaine énorme pour des gens comme moi
Cet état d’esprit revient à voir les gens comme des machines à sous humaines dans lesquelles on injecte de l’argent
Je me demande si, quand les clients viennent vous voir, ils cherchaient dès le départ de l’aide pour mettre ça en production, ou si vous êtes plutôt le dernier recours après l’échec complet de l’approche IA
Je me demande aussi s’il existe des façons typiques dont ces projets s’effondrent, ou si les échecs sont en général plus subtils
J’ai rencontré dans ma vie quelques personnes qu’on peut vraiment qualifier d’exceptionnelles. Le genre de personnes qui font se dire : « Mais comment peut-on être aussi intelligent ? »
Il y a deux traits qu’on observe chez les gens vraiment intelligents, et ils sont généralement mutuellement exclusifs. Le premier, c’est ceux qui ne savent pas à quel point ils sont intelligents. Pour eux, c’est simple, ou bien c’est leur sujet, donc ils supposent que toute personne ayant un diplôme d’informatique le sait, s’en souvient et le comprend aussi. En écoutant des amis réciter sans effort des maths liées à la cryptographie, je me suis déjà dit : « J’ai validé ce cours, mais je ne peux pas vraiment dire que je maîtrise le sujet dont tu viens de parler. »
L’autre catégorie, ce sont ceux qui sont douloureusement conscients en permanence d’être plus intelligents que la plupart des gens autour d’eux. Certains deviennent mesquins, d’autres sont simplement épuisés d’être entourés de gens relativement « stupides ». J’ai un peu d’empathie pour ces derniers. Il suffit d’imaginer une vie où tout paraît clair, évident et facile à traiter, tout en voyant l’humanité répéter sans cesse des choix absurdes alors que les réponses sont connues depuis longtemps
Voir les gens tergiverser, ou faire X alors qu’il est évident que cela produira le mauvais résultat -Y, ça me rend dingue. La plupart du temps, j’ai simplement appris à ne pas le dire à voix haute
C’est particulièrement malsain dans les relations familiales proches. J’en vois tellement que j’ai parfois l’impression de pouvoir tuer à force de rabâcher
Mais aucun d’entre eux n’était un développeur 10x qui a empilé un chaos monumental que l’équipe et moi avons dû nettoyer pendant des mois
Même en faisant des efforts, il est difficile de créer des liens avec la plupart des gens, et eux ont tout autant de mal à me comprendre. L’écart d’expérience vécue est immense et souvent difficile à franchir
Tous les développeurs ne peuvent pas produire le même volume, mais n’importe qui peut devenir intelligent à sa façon s’il décide de continuer à réfléchir au-delà de la moyenne culturelle
La plupart ne réalisent même pas qu’ils pourraient le faire
Ces deux phrases m’ont parlé
« Suivre le flux de données était si difficile qu’on aurait dit que quelqu’un essayait de dissimuler un meurtre »
« Il m’a fallu une semaine rien que pour faire tourner le code sur mon laptop »
J’ai toujours pensé que j’étais le seul à avoir du mal à comprendre le flux de données ou à mettre en place un environnement de développement correct. Le syndrome de l’imposteur n’aidait pas, pas plus que certains environnements toxiques où l’on pousse parfois la « vitesse » à tout prix
Ça m’a fait du bien de voir que je n’étais pas le seul
Claude Code en CLI a rendu bien plus facile qu’avant le fait de lancer une application et de déboguer des dépendances arbitraires ou des problèmes liés à Docker. Avant, il fallait apprendre l’architecture tout en résolvant en plus ce qui ne fonctionnait pas sur ma machine
Avec le code généré par l’IA, c’est encore pire. Parce qu’il s’agissait juste de produire quelque chose qui semblait plausible sur le moment
J’envie un peu les gens qui doivent nettoyer ce que d’autres ont laissé. Au moins, ça donne l’impression de résoudre un puzzle
Mon travail actuel est vraiment ennuyeux. C’est assez simple pour qu’un junior puisse le faire, mais on dit malgré tout qu’il faut un développeur mid-level. Je ne dis pas que je vaux mieux que ce travail, ni qu’un mid-level ne devrait pas faire ce genre de tâches. Simplement, je n’arrive pas à me forcer à m’intéresser au code que cette entreprise produit. C’est vieux, poussiéreux, et même les personnes importantes ne l’utilisent pas. Les clients ont acheté cet outil à une époque, et comme c’est un outil sans intérêt, ils ne s’y intéressent pas assez pour le remplacer, donc ils continuent juste à l’utiliser
On m’a promis qu’un travail plus en phase avec mon expérience arriverait bientôt, mais je ne vois pas comment ce genre de client pourrait arriver dans une entreprise aussi stagnante
Ce n’est pas étonnant que cette entreprise perde ses clients et ses employés. Mais j’ai un crédit immobilier à rembourser. Aujourd’hui, on m’a dit que mon contrat pourrait ne pas être renouvelé, et c’était en gros une menace pour que j’assume davantage de responsabilités et fasse plus de travail pour le même salaire
Malheureusement, je dois tenir jusqu’à ce que je trouve un nouveau poste vraiment intéressant. Je n’ai pas besoin de beaucoup d’argent, et les histoires de « croissance » ne m’intéressent absolument pas. J’ai juste besoin de quoi survivre
Ce commentaire est peut-être très hors sujet, désolé. Je n’ai pas d’autre exutoire où poster ça
J’étais L63, mais le travail que je faisais aurait pu être fait par un L60 ou un L61, et j’avais souvent l’impression d’occuper l’un des Bullshit Jobs dont parle David Graeber. La rémunération était confortable, mais une fois mes actions de bonus d’embauche épuisées, j’ai vu que je ne restais dans ce poste que pour la stabilité
J’avais l’impression d’être l’un de ces ingénieurs qui bronzent sur la terrasse des bureaux de Hooli en attendant la prochaine vesting de leurs actions. J’avais 9 ans de carrière et ça ne me semblait pas être ce qu’il y avait de mieux pour moi à ce stade
Cela dit, j’avais beaucoup moins d’obligations financières, donc la décision a été bien plus facile
Des produits de merde faits par des boîtes de merde, qui prospèrent sur la paresse et l’absence de goût de la plupart des gens, et que les marketeux monétisent
Et maintenant c’est encore pire, parce que tout le secteur est en train de se LLM-iser, ce qui amplifie ça d’un facteur 100. Ça rend le code impossible à maintenir et, pire encore, ça nous rend tous plus stupides
Je pense sincèrement que j’aurais préféré qu’on ne découvre jamais ça
Je me demande si ça veut simplement dire faire plus d’heures et plus de tâches inutiles, s’il y a en réalité davantage d’occasions de coder, ou si on attend soudain de toi que tu prouves que tu as plus de valeur
Je ne cherche pas à minimiser ce que tu as vécu. Si c’est la dernière option, je me demande s’il y a concrètement quelque chose à en tirer
Les premières sections m’ont parlé. J’ai l’impression d’avoir été un développeur rockstar autrefois, et j’ai fini par comprendre que ce n’était pas une bonne chose
J’étais peut-être capable de finir le travail 10 fois plus vite que mes collègues. Mais à un moment, j’ai compris que ce n’était pas parce que j’étais 10 fois plus productif que la moyenne, mais parce que ma manière de travailler rendait les gens ordinaires autour de moi 10 fois moins productifs
Depuis, j’ai ralenti, et ça a été un changement positif pour l’ensemble de ma vie. Être un joueur d’équipe n’offre pas le même niveau de mobilité ascendante dans cette industrie folle, mais c’était étonnamment bénéfique pour ma santé mentale
Dans mon cas, c’était le plus souvent de la sur-abstraction sur des choses inutiles, ou la création de quelque chose pour des cas d’usage qui ne se produisaient jamais réellement. Donc, chaque fois que je sens ma pensée dériver vers trop d’abstraction, j’essaie de me rappeler YAGNI et KISS
Cet article a trop peu de valeur
Je ne vois même pas bien ce qu’il essaie de dire, on dirait juste un texte d’auto-congratulation
Une grande partie de ce qu’on appelle l’énorme quantité de mauvais code laissée par des « développeurs rockstar » est en réalité le résultat d’une complexité qui s’est accumulée lentement et progressivement à mesure que les exigences changeaient
Et souvent, les gens pensent qu’ils « refactorisent pour la lisibilité », alors qu’en réalité ils sont surtout « en train de réécrire le code et de le comprendre au passage »
J’attendais plus de contenu ou de vrais exemples. 90 % du texte sert à l’auteur à se plaindre et à définir le problème, puis l’avant-dernier paragraphe balance une solution vague et bricolée à la main. Il n’y a quasiment aucune pertinence ni utilité réelle
C’était vraiment stupide de ma part d’avoir mis une énorme pression sur deux ingénieurs de production pour construire l’infrastructure autour de deux projets rentables que j’avais créés
J’aurais gagné bien plus d’argent si j’avais tout fait en code spaghetti comme un patron du 10x, puis rejoint Anthropic pour décrocher un package de rémunération à neuf chiffres. Quel idiot j’ai été, profondément idiot
Au moins, c’est la conclusion que j’en tire ici
Le code écrit doit généralement être maintenu par quelqu’un d’autre que son auteur. Donc, si vous écrivez du code que personne ne comprend, cela finit par mener à un échec de maintenance
On peut choisir d’optimiser différentes choses : du code facile à comprendre pour l’équipe, la vitesse, l’excellence technique, etc.
Mais même si vous optimisez l’excellence technique, si personne d’autre dans l’équipe ne peut comprendre ce code, c’est quand même un échec
J’ai déjà vu du code surconçu
Avis sur Lobste.rs
Cet article contient très peu de conseils réellement utiles
L’expression « développeur rockstar » a toujours été suspecte, mais il existe bel et bien d’excellents développeurs. Simplement, ces gens ne se comportent pas comme dans l’article : ils travaillent autant que possible dans l’environnement existant, améliorent la base de code, n’introduisent pas des nouveautés non éprouvées comme des jouets, et laissent derrière eux un système plus stable grâce aux tests, aux déploiements scriptés, au linting, etc.
Ici, on dirait que l’IA a été ajoutée pour dire que ce comportement va empirer. C’est possible, mais ça ne me semble pas encore suffisamment démontré. Après des décennies comme consultant à remettre de l’ordre dans des codebases en mauvais état, j’ai souvent vu des causes liées à des gens allés trop loin, mais encore plus souvent des équipes qui ne connaissaient simplement pas de meilleure méthode. Dans aucun des cas je ne me suis dit : « ça, c’est sûrement l’œuvre d’un développeur rockstar/ninja/à buzzword »
Donc maintenant, il ne faut plus seulement nettoyer les déchets déversés par les chatbots au-dessus de nos têtes, mais aussi passer derrière ceux qui s’en moquent
Ça donne juste envie d’attendre que la bulle éclate
Si je rejoins une entreprise en 2026 et que je découvre qu’elle utilise encore create-react-app, je me demande quel comportement est réellement recommandé. Il faut juste ne rien dire ?
Si c’est un ancien projet, alors vous avez identifié de la dette technique. Tout le monde en a. Le meilleur moyen de convaincre qu’il faut corriger ce genre de chose, c’est de construire un argumentaire compréhensible du point de vue business. Si ça fonctionne, est-ce vraiment un risque ? Quelle est sa priorité par rapport aux autres dettes techniques ? Quels risques implicites assume-t-on si on ne met pas à niveau ? Quel effort la mise à niveau demande-t-elle ?
Si l’effort est faible et que vos collègues le souhaitent aussi, il est parfois possible de simplement le faire sans demander d’autorisation. Mais ça marche surtout quand les personnes concernées soutiennent le changement et que cela ne gêne pas vos propres livrables. Ce n’est peut-être pas quelque chose à faire pendant votre première semaine
En général, il vaut toujours mieux demander et comprendre pourquoi les choses sont ainsi plutôt que d’expliquer comment elles « devraient » être. Toute base de code avec un historique est le résultat de milliers de décisions que vous ne connaissez pas encore. Il faut s’armer de connaissances et d’empathie
Je détestais déjà ça en 2020, quand ça avait encore l’air cool
Le fait que « les agents ne se souviennent de rien de ce qu’ils ont fait hier » est un problème solvable. On peut utiliser des approches de mémoire, etc. Ce n’est pas universellement bon, mais ça s’améliore
Dire que « ce code ne se soucie pas de bien s’intégrer au reste du système » ne correspond pas à mon expérience. En général, le code généré par LLM a tendance à ressembler assez fortement au code similaire dans la zone concernée. Le code lu pour s’orienter s’y reflète presque tel quel
Dire que « ça ne se soucie pas de savoir si le système devient plus facile à comprendre ou pire » est aussi quelque chose qu’on peut traiter. On peut demander à un LLM de l’évaluer et faire baisser progressivement ce score. Ce qui rend quelque chose plus facile à comprendre est souvent une propriété non déterministe du système ; paradoxalement, un LLM peut donc être plus facile à utiliser pour le mesurer que d’autres outils. Dans une nouvelle session, on peut demander : « pour comprendre ce code nouvellement ajouté, quelle portion du système faut-il comprendre ? » puis optimiser pour réduire cette portée
La partie « l’IA a une boîte à outils de bonnes pratiques qui ne convient peut-être pas ici » ressemble souvent au fait de former un développeur junior qui arrive sur un nouveau projet avec les mêmes idéaux. À un junior, on l’explique verbalement et on espère qu’il retiendra et appliquera ce savoir ; avec l’IA, il suffit de le documenter dans des fichiers AGENTS.md / CLAUDE.md, et cette connaissance reste là
Dire que « quand on demande une code review, il en ressort une foule d’améliorations avec lesquelles on n’est pas d’accord » : avec Codex, c’est réglé pour garder la liste courte, concise et à forte valeur. D’autres modèles peuvent se comporter différemment, mais là encore, c’est en fin de compte une question d’instructions. Ce à quoi vous tenez mérite souvent d’être documenté, et l’usage de l’IA rend cela nécessaire
Avec les rockstars, la moitié du problème est l’ego, mais au moins une rockstar qui laissait du code écrit par un humain y mettait une réflexion et une intention pour l’étayer
À l’inverse, les « rockstars » qui ne sont qu’une enveloppe humaine posée sur de l’IA ont le même niveau de frime, voire pire, tout en ne comprenant parfois même pas complètement la moitié des problèmes qu’elles prétendent résoudre
En appliquant autant que possible une approche de programmation fonctionnelle, afin de créer des composants indépendants du contexte que l’on peut assembler de différentes façons, on obtient un levier considérable
Si l’on sépare les briques élémentaires individuelles qui abstraient les détails d’implémentation des tâches dépendantes d’un contexte précis, on peut facilement réorganiser ces briques quand les exigences changent ou quand on choisit une autre approche. On peut aussi raisonner indépendamment sur chaque morceau sans connaître tout le contexte d’ensemble, et comprendre la logique de plus haut niveau en observant comment ces morceaux s’emboîtent
Les langages fonctionnels offrent une bonne base pour travailler avec des LLM, car ils poussent naturellement à écrire le code d’une manière qui limite le contexte. Cela réduit l’étendue nécessaire pour comprendre une fonctionnalité donnée du programme, ce qui aide à la fois le modèle et les utilisateurs humains