Working Effectively with Legacy Code¶
Feathers, M. C. (2004). Working Effectively with Legacy Code. Prentice Hall.
Cited by¶
5 citations across 5 artifacts.
Each citation links to the sentence it supports in the citing article.
Primes¶
- Chesterton's Fence
- Software — seemingly redundant code, configuration flags, and exception branches often encode bug-fix history; the discipline of reading the commit that introduced a line before deleting it is exactly this reasoning, and removing apparently dead code can resurrect forgotten bugs.
This sourceEstablishes the discipline of understanding existing code (via characterization tests and reading its history) before changing it, so that apparently dead or redundant code is not deleted without recovering the behavior it encodes.
- Software — seemingly redundant code, configuration flags, and exception branches often encode bug-fix history; the discipline of reading the commit that introduced a line before deleting it is exactly this reasoning, and removing apparently dead code can resurrect forgotten bugs.
- Dislocation Motion
- It recurs in software refactoring, where a large refactor of a coupled codebase is done not by stopping the world but by a refactoring front, often automated, that sweeps through one call-site or module at a time with cumulative effect.
This sourceLarge refactors of coupled codebases proceed by an incremental front (seams, one call-site at a time) rather than a stop-the-world rewrite.
- It recurs in software refactoring, where a large refactor of a coupled codebase is done not by stopping the world but by a refactoring front, often automated, that sweeps through one call-site or module at a time with cumulative effect.
- Legacy Integration
- Positional Advantage
- In software architecture it is the value of where a change sits: a clean architectural seam is a high-value position from which subsequent features are cheap and localized, while a tangled location forces sprawling, risky changes.
This sourceDefines the 'seam' — a place where program behavior can be altered without editing in that place — as a high-value structural location from which subsequent changes are localized and cheap.
- In software architecture it is the value of where a change sits: a clean architectural seam is a high-value position from which subsequent features are cheap and localized, while a tangled location forces sprawling, risky changes.
- Refactoring
- The same paradox recurs in legacy codebases, calcified bureaucracies, and heritage buildings.
This sourceEstablishes characterization tests as the load-bearing verification mechanism and the difficulty of refactoring verification-poor legacy systems (the renovation paradox).
- The same paradox recurs in legacy codebases, calcified bureaucracies, and heritage buildings.
Verification¶
This reference passed the adversarial substantiation pipeline: it was checked to exist and to support the claim it is attached to. See how references were verified.
Links previously used in the corpus¶
Before the registry existed this work was also linked 2 other ways.
Registry ID ref:bc7373e7c25a · see in the full table