Existing source code that works but is hard to maintain, test, or extend. The concept focuses on assessment, prioritization, and safe modernization strategies.
Legacy code refers to existing source code that continues to work but is difficult to maintain, test, or extend. It results from historical choices, missing documentation, and accumulated technical debt. The concept supports assessing risk, prioritizing refactoring or modernization efforts, and choosing strategies for safe migration and long-term maintainability.
Share of code covered by automated tests; important to measure safety when changing code.
Average time to remediate bugs in legacy components; an indicator of maintainability.
Relative assessment of unresolved issues, code quality and required effort to modernize.
Old monolithic web application with tight coupling, low test coverage and growing operational issues.
Service interface heavily used internally but poorly documented and rarely changed.
Batch processes run on deprecated infrastructure; migration requires coordination with ops and tests.
Analyze and inventory legacy components.
Assess by risk and business value.
Set up tests and CI for critical paths.
Apply incremental refactoring or strangler pattern.
Continuous monitoring and metrics to measure success.