legacy code
/ˈlɛɡəsi koʊd/
Very CommonOld code that still runs production but nobody wants to touch.
Sometimes used with pride ('we have stable legacy systems') but mostly used as a warning. The defining trait isn't age but untouchability.
Real-world examples4 examples
| # | Example | What it means | Source |
|---|---|---|---|
| 01 | the bug is in the legacy code from 2011. I'm not touching it. raising a ticket. | Refusing to dig into fragile old code and instead escalating. | x, 2023 |
| 02 | first week at new job. 40% of the codebase is legacy code with zero tests. they said it's a 'greenfield' project. | The description of the job didn't match reality. | reddit, 2024 |
| 03 | we estimated 2 days. it's legacy code. it's been 2 weeks. | Legacy code consistently causes work to take much longer than planned. | x, 2024 |
| 04 | someone on twitter said legacy code is just code without tests and honestly that's the most correct thing I've read today | Agreeing with a definition that captures the real problem with legacy code. | x, 2023 |
Use it when
- Explaining why a change is risky or slow.
- Warning a new teammate about a part of the system.
- Describing code that nobody fully understands anymore.
- Justifying why a rewrite is being considered.
Do not use it when
- You just mean old code that is well-maintained and understood.
- You mean code that is outdated in design but fully tested.
Legacy code vs technical debt
legacy code
Legacy code is an existing condition. It describes old, untouchable code.
VS
technical-debt-irl
Technical debt is a cost that builds up from shortcuts. You can pay it down.
Origin and context
The term has been used in software engineering since at least the 1970s. Michael Feathers' 2004 book 'Working Effectively with Legacy Code' gave it a precise definition: code without tests.
- First seen
- 1970s
- Confidence
- medium
Cite this page
Use this stable URL to reference the entry.
https://slang.fyi/legacy-codeUpdated: 2026-08-28License: CC BY 4.0