Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #658

S

Sandi Metz

Personal blog · sandimetz.com/blogprogrammingdesign

Sandi Metz's personal blog at sandimetz.com covers programming and design. Since 2014, 95 different Hacker News readers have linked it 116 times, most often “The Wrong Abstraction (2016)”. The last post was in 2018, but the archive is still widely read.

Visit the blog
116mentions?
7recommend?
95HN people?
2014–2026first – last linked?
Links on Hacker News per year · peak 19 in 2017

Sometimes recommended · 7 of 40 sampled comments recommend it?

Why HN links it

HN readers link Sandi Metz's 2016 post "The Wrong Abstraction" as the standard argument that duplication is cheaper than a bad abstraction. Commenters also cite her 99 Bottles of OOP book and her talks on object design.

Recommended for · 7 comments
One commenter calls the related post "great" and says it "explains so much" about their work. Another says a Sandi Metz talk and book had the biggest influence

Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Sandi Metz is a software developer and author focused on writing flexible object-oriented code in Ruby and Rails.

Most-linked posts?

  1. The Wrong Abstraction (2016)
    36 people · 41 mentions · first linked 2020-07-21
  2. The Wrong Abstraction (2016)
    22 people · 24 mentions · first linked 2017-02-26
  3. 99 Bottles of OOP now available in Python
    7 people · 7 mentions · first linked 2020-07-12
  4. The Wrong Abstraction
    6 people · 8 mentions · first linked 2016-02-04
  5. /99bottles
    3 people · 4 mentions · first linked 2018-05-23
  6. The Half-Life of Code
    3 people · 3 mentions · first linked 2017-06-02
  7. What Does OO Afford?
    3 people · 3 mentions · first linked 2018-02-22
  8. Breaking Up the Behemoth – How Applications Evolve
    2 people · 2 mentions · first linked 2017-09-13
  9. Why we argue style
    2 people · 2 mentions · first linked 2017-07-18

What Hacker News says?

  1. She has a new book too. https://www.sandimetz.com/99bottles

    Comment linking /99bottles

    on “Goodbye, Clean Code”
  2. Submitted The Wrong Abstraction (2016) as a story · 717 points

    HN discussion
  3. Sandi Metz wrote a blog post about this: https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstracti... > The moral of this story? Don't get trapped by the sunk cost fallacy. If you find yourself passing parameters and adding conditional paths through shared code, the abstraction is incorrect. It may have been right to begin with, but that day has passed. Once an abstraction is proved wrong the best strategy is to…

    Comment linking /blog/2016/1/20/the-wrong-abstraction

    on “Goodbye, Clean Code”
  4. Submitted The Wrong Abstraction (2016) as a story · 654 points

    HN discussion
  5. Duplication is far cheaper than the wrong abstraction. https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstracti...

    Comment linking /blog/2016/1/20/the-wrong-abstraction

    on “Goodbye, Clean Code”
  6. Submitted 99 Bottles of OOP now available in Python as a story · 255 points

    HN discussion
  7. drivers99 · 2025-08-31Recommends
    The related blog post (I just found thanks to watching that and then searching for her site) is great too: https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction It explains so much of what has been bothering me about what I work on at work, and now I understand why and some of what to do about it.

    Comment linking /blog/2016/1/20/the-wrong-abstraction

    on “Cognitive load is what matters”
  8. Submitted The Wrong Abstraction as a story · 220 points

    HN discussion
  9. Seems like an instance of "The wrong abstraction" ? https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstracti...

    Comment linking /blog/2016/1/20/the-wrong-abstraction

    on “Goodbye Microservices: From 100s of problem children to 1 superstar”
  10. Submitted Prefer duplication over the wrong abstraction as a story · 204 points

    HN discussion
  11. That coincides with the following: > Code is read many more times than it is written. Writing code costs something , but over time the cost of reading is often higher. Anyone who ever looks at a piece of code has to invest brain-power into figuring out what it does.[1] This is also noted in PEP8: > One of Guido's key insights is that code is read much more often than it is written. The guidelines provided here are i…

    Comment linking /blog/2017/6/1/the-half-life-of-code

    on “Thank You, Guido”
  12. Submitted 99 Bottles of OOP as a story · 164 points

    HN discussion
  13. rimliu · 2017-06-05Recommends
    A good books on OOD are "Practical Object Oriented Design in Ruby" ( http://www.poodr.com ) and "99 bottles of OOP"( https://www.sandimetz.com/99bottles/ ) by Sandy Metz.

    Comment linking /99bottles/

    on “Ask HN: What language-agnostic programming books should I read?”
  14. Submitted The Wrong Abstraction (2016) as a story · 64 points

    HN discussion
  15. You're thinking of Sandi Metz: https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction

    Comment linking /blog/2016/1/20/the-wrong-abstraction

    on “Don't DRY Your Code Prematurely”
  16. Submitted The Half-Life of Code (2017) as a story · 63 points

    HN discussion
  17. Its not about OOP but the probability that those two functions will diverge. Linked elsewhere in the comments too, this article ( https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction ) is probably better at articulating the point.

    Comment linking /blog/2016/1/20/the-wrong-abstraction

    on “Don't DRY Your Code Prematurely”
  18. Submitted Code duplication is far cheaper than the wrong abstraction as a story · 60 points

    HN discussion
  19. This reads like a paraphrase of this widely circulated post from 8 years ago… https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction

    Comment linking /blog/2016/1/20/the-wrong-abstraction

    on “Don't DRY Your Code Prematurely”
  20. Submitted How Shall We Define Design? as a story · 9 points

    HN discussion
  21. I don't know about anyone else, but I've been deeply unimpressed with the output of the google testing blog. This example is not wrong, but it's not particularly insightful either. Sandi Metz said it better here, 8 years ago https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction The testing pyramid nonsense is probably the worst one though. Instead of trying to find a sensible way to match the test type to the c…

    Comment linking /blog/2016/1/20/the-wrong-abstraction

    on “Don't DRY Your Code Prematurely”
  22. Submitted What Does OO Afford? (2018) as a story · 3 points

    HN discussion
  23. > I don't recall where I picked up from, but the best advice I've heard on this is a "Rule of 3" I know this as AHA = Avoid Hasty Abstractions: - https://kentcdodds.com/blog/aha-programming - https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction

    Comment linking /blog/2016/1/20/the-wrong-abstraction

    on “It's probably time to stop recommending Clean Code (2020)”
  24. Submitted The Wrong Abstraction as a story · 3 points

    HN discussion
  25. I often find that DRY is in conflict with Conway's law[1]. It's almost always better to let Conway's law win. If I help write a build script for one team, I often copy and paste it into another's git repo to instead of trying to share it. It's often way better than factoring it poorly[2] or getting the two teams to coordinate on changes they need to make to it. Best to let the two copies diverge in that case. 1: htt…

    Comment linking /blog/2016/1/20/the-wrong-abstraction

    on “DRY is an over-rated programming principle?”
  26. Submitted What Does OO Afford? as a story · 3 points

    HN discussion
  27. This is discussed in detail in "The Wrong Abstraction" by Sandi Metz https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction Quote follows: ---- The strength of the reaction made me realize just how widespread and intractable the "wrong abstraction" problem is. I started asking questions and came to see the following pattern: 1. Programmer A sees duplication. 2. Programmer A extracts duplication and gives it a na…

    Comment linking /blog/2016/1/20/the-wrong-abstraction

    on “DRY is an over-rated programming principle?”
  28. Submitted The wrong abstraction as a story · 3 points

    HN discussion
  29. "Duplication is far better than the wrong abstraction" - Sandi Metz https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction

    Comment linking /blog/2016/1/20/the-wrong-abstraction

    on “DRY is an over-rated programming principle?”
  30. Submitted Why we argue style as a story · 3 points

    HN discussion

Search all of HN for sandimetz.com

Linked by the same people?