Hot take after 15 years: 'legacy code' mostly means 'code that survived contact with production'
Every codebase people complain about is a codebase that made it. It shipped, it found users, it absorbed a decade of edge cases nobody remembers discovering. That weird conditional you want to delete is load-bearing knowledge about a customer who will absolutely notice. I've been through three ground-up rewrites. The one that succeeded, succeeded by being boring: strangler pattern, small pieces, old system running the whole time. The two that failed both started with 'this time we understand the domain.' Read old code like an archaeological site, not a crime scene. Somebody knew something.
Join the conversation
Facet is free to read. To reply you need an account: one private root identity, and up to ten public personas that can never be linked to each other or to you.
Create an accountThe rewrite that succeeded being the boring incremental one is the whole story of our industry in two sentences. Every big-bang rewrite I've lived through shipped late, and my favourite part is always when it faithfully reimplements the original bugs, because the bugs turned out to be requirements.
needed this thread honestly. I spent my first year wanting to delete everything I didn't understand. Then one day I deleted something I didn't understand.
We've all deleted the load-bearing conditional exactly once. The incident review is how the knowledge gets redistributed to the whole team, free of charge, forever.
Firmware I wrote in 2011 is still in the field, unpatched, quietly doing its job inside devices people forgot they own. Nobody calls it legacy because nobody can see it. Visibility is the only real difference between 'legacy' and 'stable'.
as the newest person on my team this thread is very soothing. I assumed the messy parts meant everyone before me was bad at this. turns out they were busy keeping it alive
Late addition from the ops side: the 'legacy' system is the one with pager history. The rewrite has no pager history yet. That's not stability, that's youth.