Legacy Software Modernization
Legacy software is software a business depends on that has become hard to change, scale, or operate. Modernization moves that software onto a technology that fits, usually by replacing it piece by piece, the way a strangler fig gradually takes over a tree, rather than with one risky rewrite.
itSoftware engineering | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Intro
Legacy Software Modernization
Legacy software is software a business depends on that has become hard to change, scale, or operate. In their 1995 study of the problem, Brodie and Stonebraker defined a legacy information system as one that "significantly resists modification and evolution to meet new and evolving business requirements." Age is not the test. A system becomes legacy the moment its technology starts dictating which business changes are possible, and on the mainframes that still clear payments and settle insurance claims, that moment arrived decades ago.
The cost of legacy is measured in slowed change: releases that take months for changes that should take days, scarce skills for old platforms, and integration friction with everything modern. And because the system keeps making money, nobody wants to touch it. Modernization is the work of getting the behavior that matters onto a foundation that fits — without losing that behavior, and without betting the company on one rewrite.
A single replacement event is the risk, not the answer
The natural plan is to build a new system that does exactly what the old one does, then switch over in one event. Martin Fowler calls this big-bang replacement, and his experience is blunt: these projects "go down in flames most of the time."
The reasons are structural. Replacement takes years, and users cannot wait for features in the meantime, so the business keeps investing in the old system while the new one is being built. The details of existing behavior are nearly impossible to reconstruct, because they live in running code, in error logs, in the heads of people who left. And much of that behavior is not actually wanted — it is the sediment of decisions that made sense once. Specifying and reimplementing it is pure waste.
The strangler fig grows around the old system
Fowler took a better metaphor from the strangler figs he saw in the Queensland rainforests in 2001. A strangler fig seeds in the crown of a host tree and sends roots down the trunk. As it grows, it takes over, until the host dies and the fig remains, hollow inside, echoing the shape of the tree that once was there.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://dl.acm.org/doi/10.5555/208444
Supports
- Legacy information system definition (resists modification and evolution for new requirements)
- Chicken-little and butterfly incremental migration methodologies and the gateway architecture
- https://martinfowler.com/bliki/StranglerFigApplication.html
Supports
- Strangler fig metaphor and 2001 Queensland observation
- Building the new system around the legacy one and moving behavior across piece by piece
- Seams, transitional architecture, facade, and event interception
- https://martinfowler.com/bliki/OriginalStranglerFigApplication.html
Supports
- Original 29 June 2004 strangler fig application post
- Low-risk incremental replacement rationale
- https://martinfowler.com/articles/patterns-legacy-displacement/
Supports
- Four displacement activities (understand outcomes, break apart, deliver parts, change organization)
- Technology as at most half the problem and the legacy replacement treadmill
- Seams definition and transitional architecture reasoning
- https://martinfowler.com/bliki/ConwaysLaw.html
Supports
- Organizational change as one of the four required activities
- Inverse Conway maneuver
- https://learn.microsoft.com/en-us/azure/architecture/patterns/strangler-fig
Supports
- Facade routing, incremental traffic shift, and when the pattern does not fit
- Database strangling phases with ETL, change data capture, and validation before cutover
- Rollback via keeping legacy data objects until the new database is validated as system of record
- https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-guide/migration-strategies.html
Supports
- 7 R's definitions (retire, retain, rehost, relocate, repurchase, replatform, refactor)
- Refactor not recommended for large migrations; modernize after moving
- https://aws.amazon.com/blogs/enterprise-strategy/new-possibilities-seven-strategies-to-accelerate-your-application-migration-to-aws/
Supports
- 6 R's to 7 R's evolution and the relocate addition
- AWS Mainframe Modernization and Refactor Spaces launch context
- https://www.omg.org/adm
Supports
- OMG Architecture-Driven Modernization standardization effort and KDM
- https://en.wikipedia.org/wiki/Architecture-driven_modernization
Supports
- June 2003 ADM Task Force formation and November 2003 KDM RFP
- KDM 1.0 in 2007
- https://azure.microsoft.com/en-us/blog/confidently-plan-your-cloud-migration-azure-migrate-is-now-generally-available/
Supports
- Azure Migrate general availability on 28 February 2018
- Assessment, discovery, and strategy planning in a managed migration hub
- https://www.businesswire.com/news/home/20211130005966/en/AWS-Announces-AWS-Mainframe-Modernization
Supports
- AWS Mainframe Modernization announcement on 30 November 2021
- Replatforming and automated COBOL/PL-I to Java refactoring
- https://www.ibm.com/products/watsonx-code-assistant-z
Supports
- IBM watsonx Code Assistant for Z general availability on 26 October 2023
- COBOL and PL/I to Java conversion and generated unit tests
- https://aws.amazon.com/mainframe-modernization/
Supports
- AWS Mainframe Modernization product placement and capabilities in Landscape
- https://aws.amazon.com/transform/
Supports
- AWS Transform for mainframe agentic AI modernization in Landscape
- https://azure.microsoft.com/en-us/products/azure-migrate/
Supports
- Azure Migrate discovery, dependency mapping, and 6R assessment model in Landscape
- https://www.rocketsoftware.com/lets-modernize
Supports
- Rocket Software modernization portfolio and COBOL Enterprise Suite in Landscape
- https://www.businesswire.com/news/home/20240430605619/en/Rocket-Software-Closes-%242.275B-Acquisition-of-OpenTexts-Application-Modernization-and-Connectivity-Business
Supports
- Rocket Software acquisition of the OpenText AMC business closed 1 May 2024
- https://www.openlegacy.com/
Supports
- OpenLegacy AI-driven legacy API integration placement in Landscape
- https://www.castsoftware.com/
Supports
- CAST Imaging and CAST Highlight placement in Landscape
- https://www.delphix.com/
Supports
- Perforce Delphix intelligent data automation placement in Landscape
- https://github.com/feststelltaste/awesome-legacy-systems
Supports
- Curated discovery of aim42, legacy-modernization.io, and legacycode.rocks for Awesome Links
- https://martinfowler.com/articles/legacy-modernization-gen-ai.html
Supports
- GenAI-assisted legacy code understanding for Awesome Links
- https://legacy-modernization.io/
Supports
- Strangler fig, bubble, and bi-directional sync patterns for Awesome Links
- https://aim42.org/
Supports
- aim42 open-source improvement method for Awesome Links
- https://legacycode.rocks/
Supports
- Legacy Code Rocks podcast for Awesome Links
- https://github.com/feststelltaste/awesome-software-analytics
Supports
- Related awesome list for discovery tooling in Awesome Links
- https://github.com/modernizing/awesome-modernization
Supports
- Related awesome list for modernization tooling in Awesome Links
