La mauvaise abstraction : pourquoi les ingénieurs logiciels devraient préférer la duplication à une abstraction prématurée

Toutes les équipes logicielles connaissent l'adage : « DRY — Don't Repeat Yourself », « Ne te répète pas ». Pendant des décennies il a été présenté comme la pierre angulaire de la qualité du code. Dans un court billet de blog en 2016, Sandi Metz a soutenu que cette règle a été massivement mal appliquée : la mauvaise abstraction coûte bien plus cher que la duplication. Cette semaine, l'essai est remonté en tête de Hacker News, suscitant des milliers de commentaires.
Metz est l'une des plumes les plus connues du design orienté-objet et de la communauté Ruby ; son livre « Practical Object-Oriented Design in Ruby » est un matériel de cours standard. « The Wrong Abstraction » ne compte que neuf paragraphes, mais sa pérennité mérite d'être examinée.
La thèse de Metz est simple. Quand on voit des motifs similaires se répéter dans une base de code, il est tentant d'en extraire immédiatement une abstraction commune — une fonction utilitaire, une classe abstraite, une interface générique. Mais cette décision prématurée est risquée : on ne sait pas encore comment les motifs vont diverger à l'avenir. Avec les années, l'abstraction se plie un peu pour chaque nouveau appelant, les paramètres s'accumulent, la logique conditionnelle s'infiltre — et l'abstraction devient bien plus complexe que le problème initial.
Sa formule : « La duplication, c'est bon marché. La mauvaise abstraction est très chère à inverser. » Car une fois que l'équipe a construit autour de la mauvaise abstraction, la défaire signifie démêler tous les appels, retrouver la vraie ligne de partage et reconstruire le code de l'autre côté. C'est plusieurs fois plus de travail qu'un simple copier-coller.
Metz reconnaît que la duplication fait peur aux ingénieurs : « Voir les mêmes 20 lignes à trois endroits, la voix dans votre tête qui dit 'DRY this up' est normale. Résister à cet instinct va à l'encontre du réflexe que notre formation d'ingénieur a renforcé. » Sa recommandation : attendre que le motif se répète trois ou quatre fois avant d'extraire. À ce moment-là, vous pouvez voir lesquelles des parties sont vraiment partagées et lesquelles sont spécifiques au contexte.
À l'ère des microservices et des API, cela compte d'autant plus. Chaque nouvelle bibliothèque partagée est un couplage entre équipes ; ce couplage devient avec le temps une composante substantielle de la dette technique. Hyrum Wright, ancien ingénieur Google et éditeur Wikipedia, a formalisé le principe désormais appelé loi de Hyrum : « Avec un nombre suffisant d'utilisateurs d'une API, tous les comportements observables du système — pas seulement ceux du contrat — seront dépendus par quelqu'un. » C'est pour cela que le coût réel de la mauvaise abstraction est si élevé.
L'essai de Metz a regagné en actualité en 2025-2026 parce que les outils de codage assistés par IA — GitHub Copilot, Claude Code, Cursor — peuvent être très agressifs sur la détection de motif et la suggestion d'abstraction. Un commentateur sur Hacker News a écrit : « Copilot me suggère sans cesse de 'DRY' trois fonctions ; les trois fonctions desservent en réalité des domaines différents. La consolidation prématurée est une erreur bien plus courante à l'ère de l'IA. »
La réplique de Metz : l'abstraction est le produit de la compréhension des différences, pas de la reconnaissance des similitudes : « Deux choses qui se ressemblent ne doivent pas pour autant être abstraites. Cartographiez d'abord les dimensions par lesquelles elles diffèrent ; n'abstraire qu'une fois que vous pouvez dire 'toutes ces différences resteront figées à l'avenir.' » Cette phrase est l'une des plus citées du génie logiciel de la dernière décennie.
Dans la pratique, la défaite de la mauvaise abstraction représente souvent « la moitié de la dette technique ». L'ancien ingénieur principal de Stripe Patrick McKenzie a fait une observation similaire dans un essai de 2024 : « Les décisions d'ingénierie les plus coûteuses des premières années de Stripe ont été des abstractions partagées prises trop tôt. Chacune nous a coûté six mois en moyenne pour être défaite. »
La raison de la longévité de l'essai de Metz est qu'il est indépendant du langage et de la stack. C++, Java, Python, Rust ou TypeScript — Ruby ou Go — peu importe. La mauvaise abstraction est une propriété non pas du langage mais de la décision d'ingénierie elle-même. C'est pour cela qu'un essai de 2016 frappe encore un lecteur de 2026 comme également utile. Une nuance importante : Metz ne dit pas « DRY est toujours faux » ni « la duplication est toujours juste ». Son propos est que le coût réel d'une décision d'abstraction est bien plus élevé que la plupart des ingénieurs l'estiment.
À lire ensuite

Qu'est-ce que YOLO26 ? Une introduction pratique au modèle de détection d'objets en temps réel
YOLO26, la dernière version de la famille YOLO, a fixé un nouveau point de référence pour la communauté de la vision par ordinateur en temps réel. Une introduction complète signée Roboflow détaille la nouvelle architecture, la facilité d'entraînement et les applications concrètes.

Le fabricant de puces IA Groq lève 650 millions de dollars et reconstitue ses équipes : que signifie le «non-acqui-hire» à 20 milliards de Nvidia
Le spécialiste des puces d'inférence IA Groq a confirmé une levée de 650 millions de dollars après avoir perdu une partie de son équipe d'ingénierie cœur au profit de Nvidia. La structure de l'accord illustre la nouvelle ère «non-acqui-hire» du secteur des semi-conducteurs.

AMD rétablit le chiffrement mémoire sur ses processeurs grand public après la fronde des utilisateurs
AMD a annoncé rétablir, via une mise à jour de microcode, le chiffrement mémoire transparent désactivé sur ses derniers processeurs Ryzen 9000, après une campagne menée par des chercheurs en sécurité et des utilisateurs. Cette décision pourrait engager une course avec l'équivalent Total Memory Encryption d'Intel.

Crise de la RAM en 2026 : Valve raconte à quel point les négociations sur la mémoire sont devenues brutales
Étranglé par la demande des centres de données IA, le marché mondial de la mémoire fait grimper le prix de tout, des consoles de jeu aux smartphones. Le récit de Valve aux fabricants de Steam Machine montre que négocier de la DRAM et de la NAND en 2026 ressemble à «une opération de braquage».

Licenciements dans la tech en 2026 où les employeurs ont invoqué l'IA : la liste des coupes les plus importantes
TechCrunch tient à jour une liste des principaux licenciements dans la tech en 2026 dont les employeurs invoquent une même raison : l'intelligence artificielle. Selon les données, 78 000 travailleurs de la tech ont perdu leur emploi au cours des six premiers mois de l'année, la même semaine où leur entreprise annonçait des gains de productivité liés à l'IA.
