Skip to content

Replacing a legacy system without stopping the business

Staged migration patterns that keep revenue flowing during the switch.

Jupita Consulting2 min read

Big-bang replacements fail for a simple reason: the old system does more than anyone has written down. A staged approach finds those hidden jobs one at a time, while the business keeps running.

Why legacy is hard to leave

A system that has run for ten years has absorbed a decade of fixes, workarounds and special cases. Some were documented. Many live only in the code or in the habits of the people who use it. A nightly job that nobody remembers might be what keeps month-end reports correct. Rewrite everything at once, and you discover these jobs in production, usually on the busiest day of the quarter.

Start with a map

Before writing new code, map what the current system actually does. Trace inputs, outputs, scheduled jobs and integrations. Interview the people who use it daily, not just the people who manage it. The aim is a list of capabilities, each with an owner and a measure of how critical it is. That list becomes your migration plan.

Wrap, then replace

Put an interface in front of the legacy system so that new features and other systems talk to the interface, not the old code. Behind it, move capabilities across one by one while traffic keeps flowing. This approach, often called the strangler pattern, lets you deliver value early and stop at any point with a working system.

Run both, compare, cut over

  1. Mirror real traffic to the new component and compare outputs with the legacy result.
  2. Investigate every difference. Some are bugs in the new system; some are bugs in the old one that the business relied on.
  3. Fix differences until they reach zero for an agreed period.
  4. Switch a small share of users or transactions, then increase in steps.
  5. Retire the old path only when nothing depends on it, and keep a rollback route until then.
The goal isn’t a launch day. It’s a series of uneventful Tuesdays.

Data is the hardest part

Code can be rewritten; history can’t. Plan data migration as its own workstream. Decide what moves, what is archived and what is transformed. Run repeated trial migrations on copies of production data and reconcile totals each time. For financial systems, agree reconciliation rules with finance before the first run, not after the last.

Keep the people with you

Users have built their working day around the old system. Involve them early, show them each stage before it goes live and give them a clear way to report problems. Train around real tasks, not feature tours. A technically successful migration that frustrates the operations team will be judged a failure.

What it costs

Staged migration takes longer on paper, and you pay to run two systems for a period. In return, you avoid the outage, rollback and lost revenue that make big-bang projects expensive in practice. You also get value earlier: the first capabilities move within months, not at the end of a two-year programme.

Where we help

We map legacy systems, design the interface layer, and run the parallel comparison and cut-over with your team. Our aim is that by the time the old system is switched off, nobody notices.

WORKING ON THIS?Talk it through with the team who wrote it.
Talk to our team ↗