Skip to main content

Legacy Modernization

Legacy modernization refers to transferring historically grown legacy systems — such as COBOL or mainframe applications — to modern technologies and architectures. The goal is to preserve the business logic proven over decades while improving maintainability, operating costs and release capability.

Why legacy systems become a problem

Three developments reinforce each other: operating costs for mainframes and old platforms rise, knowledge about the system and its programming language leaves the company with the original developers, and every change to the grown monolith becomes a risk project. To make matters worse, business and technical code merge over the years — the business logic is “buried” in the source code and documented nowhere else. Why this happens and what helps against it is described in the article Legacy System – Business Logic Buried in the Source Code.

Modernization strategies at a glance

StrategyPrincipleTypical use
Rehosting (“lift & shift”)Move the system unchanged to new infrastructureQuick cost reduction, no architectural gain
ReplatformingReplace the platform or runtime environment, largely keep the codeMainframe replacement with limited intervention
Refactoring / rearchitectingGradually transform the code into a modern, maintainable architecturePreserving the value of the business logic while renewing the structure
Rewrite / replaceRedevelop the system or replace it with standard softwareWhen the business logic is to be rethought — highest risk

Incremental instead of big bang

Replacing a system completely on a single cut-over date (“big bang”) often fails in practice due to the sheer amount of undiscovered business logic in the legacy system. The strangler fig pattern has established itself as the alternative: the new system grows step by step around the old one and replaces it function by function — old and new systems run in parallel, each step is small, verifiable and can be rolled back in case of failure. Which parts of a migration can be automated — from rule-based code translation to test generation — is analyzed in the article Can the Modernization of Your Legacy System Be Automated?

Legacy modernization in practice

The biggest risk of any modernization is losing business logic that exists only in the old code. In practice, it has therefore proven effective to make functional equivalence measurable: through a test suite that encloses the behavior of the legacy system, and by comparing trace logs between the old and new systems. Only when behavior is demonstrably preserved is an architecture modernization possible without losing business substance.

Frequently asked questions

Does the legacy system have to be shut down for modernization?
No. With an incremental approach following the strangler fig pattern, the old and new systems run in parallel; functions are replaced step by step. There is no risky big-bang cut-over date — business operations continue throughout the entire migration.
What is the difference between rehosting, refactoring and rewrite?
Rehosting moves the system unchanged to new infrastructure, refactoring or rearchitecting gradually transforms the code into a modern, maintainable architecture, and a rewrite develops the system completely from scratch. Effort and benefit increase in this order — at the same time, a rewrite carries the highest risk of losing business knowledge.
Can legacy modernization be automated?
Partially. Rule-based transpilers translate code deterministically into a target language, and automatically generated tests and trace comparisons prove functional equivalence. Transforming the code into an idiomatic target architecture, however, remains a design task that requires architectural decisions by experts.

Related terms

Reviewed by Holger Schill, Executive Vice President Cloud & Enterprise on July 20, 2026