Nine signs your legacy system is costing more than a rebuild
The clearest signs a legacy system should be replaced are: only one person can safely change it, it runs on unsupported software with no security patches, staff maintain spreadsheets alongside it to compensate, integrations are impossible or manual, and the cost of routine changes has become disproportionate. If you have three or more of these, maintenance is probably already costing more than a phased replacement — and incremental modernisation is almost always lower risk than a single cutover.
The nine signs
Very few organisations replace a working system because they want to. They replace it because the cost of keeping it has become intolerable — usually long after the tipping point. These are the signals we see in technical audits.
- Only one person can safely change it. The bus factor is one. Every change queues behind a single individual, and their holiday is a business risk.
- It runs on unsupported software. An out-of-support OS, database, framework or runtime means no security patches. This is a live liability, and increasingly a problem for your cyber insurance and your enterprise customers' supplier assessments.
- Staff keep spreadsheets to compensate. Shadow systems are a precise map of where the software fails. If three departments maintain their own version of the truth, the system has already lost.
- Integration is impossible or manual. No API, no export, so someone rekeys data between systems. This cost is invisible on any budget line but enormous in aggregate.
- Small changes cost disproportionately. When "add a field to a form" is a two-week estimate, the architecture is telling you something.
- You cannot recruit for it. If the skills are scarce or the technology is obsolete, your supply of maintainers is shrinking and getting more expensive.
- No test coverage, so nobody dares refactor. Fear of change is the terminal stage. The system calcifies, technical debt compounds, and every release is a gamble.
- It cannot do something the business now needs. Mobile access, real-time data, self-service for customers, multi-currency, an audit trail. Strategy is being constrained by software.
- Downtime is frequent or recovery is untested. If you have never restored from backup, you do not have a backup — you have a hypothesis.
One or two of these is normal. Three or more, and the economics have probably already flipped.
How to work out whether replacing is cheaper
Most of the real cost is invisible because it sits in salaries rather than invoices. Add up the annual figure honestly:
| Cost | How to estimate it |
|---|---|
| Direct maintenance | Support contracts, licences, hosting, developer time on fixes |
| Manual workaround labour | Hours per week rekeying, reconciling, chasing × loaded salary cost |
| Change premium | What changes cost in this system versus a modern equivalent |
| Downtime | Incidents per year × hours × cost per hour of the affected process |
| Risk exposure | Likelihood and cost of a breach or unrecoverable failure on unsupported software |
| Opportunity cost | Revenue or efficiency you cannot pursue because the system cannot do it |
Compare the annual total against a phased replacement amortised over three years. In audits, the manual workaround line is almost always the largest and almost always the one nobody had quantified.
Do not do a big-bang rewrite
The instinct is to build a replacement in parallel and switch over one weekend. This is the most reliable way to fail, for consistent reasons:
- The old system's behaviour is not documented, so nobody knows the full requirement — the requirement is the code, including twenty years of undocumented edge cases.
- Nothing is delivered for a year or more, so the project has no way to prove value and loses its sponsor.
- The business keeps changing during the build, so the target moves.
- Cutover concentrates all risk into one irreversible weekend.
The strangler pattern, in plain terms
Replace the system in slices, with old and new running side by side. Each slice is small enough to deliver, test and reverse.
- Put a boundary in front. An API layer or reverse proxy so callers no longer talk to the legacy system directly. Nothing changes functionally; you have created a seam.
- Pick the highest-pain, lowest-risk slice. Often reporting — read-only, so mistakes are cheap, and usually where the manual effort is worst.
- Build that slice properly in the new stack, reading from the existing data store initially. Route traffic to it through the boundary.
- Repeat, slice by slice, moving data ownership across as each area stabilises.
- Retire the legacy system when the last slice moves — by which point it is a formality rather than an event.
This is slower in total elapsed time and dramatically more likely to finish. Value arrives from the first slice, and every step is individually reversible.
What to do first
Before committing budget to either maintenance or replacement, get an honest technical assessment. A two-week audit should give you:
- A written view of code quality, architecture, dependencies and security posture
- What is genuinely salvageable and what is not
- An estimate for maintaining as-is versus phased replacement
- A recommended first slice, with a cost
Insist on owning that document, and on being able to hand it to any supplier. If an assessment can only be acted on by the firm that wrote it, treat it as a sales proposal rather than an audit.
We do these as standalone engagements — see web application development and how we work, or ask about an audit.
Frequently asked
How do I know if we should replace or maintain our legacy system?
Quantify the true annual cost of keeping it — direct maintenance, manual workaround labour, the premium on every change, downtime and risk exposure — and compare it with a phased replacement amortised over three years. If three or more of the nine warning signs apply, the economics usually already favour replacement.
Is a big-bang rewrite ever the right approach?
Occasionally, for small and well-understood systems where the entire behaviour can be specified confidently. For anything business-critical with years of accumulated edge cases, incremental replacement using the strangler pattern is substantially lower risk.
How long does legacy modernisation take?
A first slice can typically be delivered in 8-14 weeks. Complete replacement of a business-critical system usually runs 12-30 months in slices — but value starts arriving from the first release rather than at the end.
What about the data in our old system?
Migration and reconciliation are a distinct workstream and frequently underestimated. Expect cleansing, deduplication and mapping work, and expect to run parallel reconciliation for a period after each slice moves so you can prove the new system agrees with the old.
Can you support our legacy system while we plan a replacement?
Yes, after a technical audit so we can commit to response times honestly. Stabilising a system while planning its replacement is a common and sensible first phase.
Related insights
How to choose a software development partner: 12 questions that matter
Twelve questions that separate a supplier who will deliver from one who will not — and how to compare quotes that are not actually comparable.
9 min read CloudAzure or AWS for a UK business? A practical comparison
Cost, identity, data residency, hiring and migration effort — the five things that actually decide it for a UK mid-market business.
9 min readWant this applied to your situation?
Send us the specifics and you will get a straight, technical answer from someone who does this work — not a sales response.