Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    M

    Michael Feathers

    michaelfeathers.typepad.com · Personal blog · on HN since 2007

    Michael Feathers, author of a book on legacy code, writes about software design, testing, object orientation and code complexity.

    Visit blogHN submissions
    ProgrammingManagement
    What HN says

    HN commenters cite his 'carrying cost of code' post on the hidden cost of features and complexity, and note he wrote the book on legacy code.

    Stats for nerds
    23HN people shared it
    39linked in comments
    534story points
    Nov 2014last shared
    2013people per year2014

    Top posts on HN

    1. 1
      The Carrying-Cost of Code: Taking Lean Seriously (2011)
      8 people · 138 points · first shared 2011 · 23 comments on HN
    2. 2
      The Tyranny of the Diff
      1 person · 81 points · first shared 2012 · 52 comments on HN
    3. 3
      Avoid Null Checks by Replacing Finders with Tellers
      1 person · 59 points · first shared 2013 · 103 comments on HN
    4. 4
      Tell Above, and Ask Below: Hybridizing OO and Functional Design
      2 people · 52 points · first shared 2012 · 10 comments on HN
    5. 5
      Making Too Much of TDD
      2 people · 44 points · first shared 2010 · 16 comments on HN
    6. 6
      The Flawed Theory Behind Unit Testing
      4 people · 32 points · first shared 2008 · 5 comments on HN
    7. 7
      Flipping Assumptions with 'Programmer Anarchy'
      1 person · 26 points · first shared 2013 · 3 comments on HN
    8. 8
      The Bad Code Kata
      1 person · 24 points · first shared 2010 · 4 comments on HN
    9. 9
      The Long Tail of Technical Debt
      1 person · 16 points · first shared 2012 · 1 comments on HN
    10. 10
      The Framework Superclass Anti-Pattern
      3 people · 9 points · first shared 2013 · Discussion on HN

    What HN people wrote when they linked it

    • shooNov 2014

      This reminds me of a post by Michael Feathers, titled "The carrying cost of code" [1]. Feathers wrote the book about legacy code [2]. I think he makes approximately the same point:

      > If you are making cars or widgets, you make them one by one. They proceed through the manufacturing process and you can gain very real efficiencies by paying attention to how the pieces go through the process. Lean Software Development has chosen to see tasks as pieces. We carry them through a process and end up with completed products on the other side.

      > It's a nice view of the world, but it is a bit of a lie. In software development, we are essentially working on the same car or widget continuously, often for years. We are in the same soup, the same codebase. We can't expect a model based on independence of pieces in manufacturing to be accurate when we are working continuously on a single thing (a codebase) that shows wear over time and needs constant attention.

      [1] - http://michaelfeathers.typepad.com/michael_feathers_blog/2011/05/the-carrying-cost-of-code-taking-lean-seriously.html
      [2] - http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052

    • michaelfeathersJun 2013

      I've been pushing this idea for the past couple of years with clients, and when I give talks at conferences. The fact of the matter is that unless an organization knows what the carrying cost is for their features, and the effect in terms of complexity, they are flying blind.

      In essence, it is Joel's Law of Leaky Abstractions at work. You can't manage a software project just in terms of a set of features you agree upon with business. The codebase is a key constraint that underlies all of those discussions and unless the effects of feature choice are on the table, you end up incurring radically different costs.

      This isn't just about paying attention to technical debt. It's about having the discussion about whether it is worth targeting some features or not, taking the code into account - using it as a factor in business decisions.

      http://www.confreaks.com/videos/717-rockymtnruby2011-opening-keynote-code-blindness

      http://michaelfeathers.typepad.com/michael_feathers_blog/2011/05/the-carrying-cost-of-code-taking-lean-seriously.html

    • mattgreenrocksJun 2014

      That's just the fat model approach. It suffers from similar issues as fat controllers, whereby unrelated functionality tends to accumulate.

      Why do models know how to persist themselves? Or send themselves over the network? What does that have to do with the concept they represent? It conflates technical concerns ("how do I serialize myself?") with business concerns ("am I valid?").

      It doesn't help that Core Data forces you into the framework superclass antipattern: http://michaelfeathers.typepad.com/michael_feathers_blog/2013/01/the-framework-superclass-anti-pattern.html

    Related

    Jessitronblog.jessitron.com64 people

    Hitting OKRs vs. Doing Your Job

    Jessitron
    Personal · last shared 2026
    Mike Hadlowmikehadlow.blogspot.com112 people

    Are Your Programmers Working Hard, Or Are They Lazy?

    Mike Hadlow
    Personal · last shared 2026
    Alistair Cockburnalistair.cockburn.us50 people

    Characterizing people as non-linear 1st order components in software development

    Alistair Cockburn
    Personal · last shared 2026
    Martin Fowlermartinfowler.com1.5k people

    Monolith First (2015)

    Martin Fowler
    Personal · last shared 2026
    Better Programmingbetterprogramming.pub319 people

    Three programmers got fired, including me, due to a single app crash

    Better Programming
    Publication · last shared 2025
    Random ASCIIrandomascii.wordpress.com274 people

    There are only four billion floats, so test them all (2014)

    Random ASCII
    Personal · last shared 2026
    Joe Duffyjoeduffyblog.com147 people

    15 Years of Concurrency

    Joe Duffy
    Personal · last shared 2026
    Tomas Petricektomasp.net152 people

    Write your own Excel in F# (2018)

    Tomas Petricek
    Personal · last shared 2026