Legacy software is not simply “old” software. It is software that the organisation depends on but finds increasingly hard to change, support or trust. Modernising it is less about technology fashion and more about reducing risk.
Begin with an assessment
Before deciding anything, establish the facts:
- What does the system actually do, including the undocumented parts?
- Who uses it, and which functions are critical to daily operations?
- How healthy is the code, and is the platform it runs on still supported?
- Where are the real pain points: speed of change, reliability, security or cost?
- Is the data accurate, and can it be extracted reliably?
An honest assessment often reveals that some parts are sound and others are the real problem.
Option 1: Refactor gradually
Refactoring improves the existing system in small, safe steps: adding tests, cleaning up the worst areas and upgrading dependencies. It suits systems whose core logic is still correct but which have become hard to work with.
Strengths: low disruption, continuous delivery of improvements. Risks: progress can stall if there is no clear target.
Option 2: Rewrite
A rewrite builds a new system to replace the old one. It can be justified when the platform is unsupported or the design no longer fits the organisation. Rewrites are often underestimated, because the old system contains years of accumulated rules that nobody wrote down.
Strengths: a fresh foundation. Risks: long timelines, rediscovering forgotten requirements, a risky cut-over.
Option 3: Replace with a product
If the system now performs a common function that good products cover, replacing it with a supported product may be the most economical route, provided the data can be migrated.
Prefer incremental replacement
A widely used middle path is to replace the system piece by piece. New functionality is built alongside the old system, and parts are retired one at a time as their replacements prove themselves. This keeps operations running and spreads risk over time.
Protect the data
Whatever the route, data is usually the most valuable asset. Plan migration early, clean the data before moving it, and verify the results with the people who use it every day.
The right choice depends on evidence from the assessment, not on how old the system is. Some ageing systems only need care; others need retirement.


