Legacy System Migration: Strangler Pattern, Risk Management and the 18-Month Plan

Big-bang rewrites kill companies. The strangler-fig pattern doesn't. Every successful legacy migration we've shipped at Alher Tech follows the same shape: incremental replacement, dual-running for a controlled period, reversible steps and continuous business value delivery. This guide is the 18-month playbook for replacing legacy COBOL, Java EE, .NET Framework or Oracle systems without downtime, including the risk management framework and what to expect realistically at each phase.

Why Big-Bang Rewrites Fail

The pattern is depressingly consistent: 18-month roadmap, scope grows, deadlines slip, business changes faster than the rewrite, day of cutover the new system has bugs the old didn't, productivity drops, executives panic, project gets canned at month 24. The company has spent $5-15M on something that didn't ship.

The strangler-fig pattern (Martin Fowler, 2004) doesn't suffer from this. It assumes the rewrite will be wrong somewhere, and makes every step reversible.

The 18-Month Playbook

A typical legacy migration we run at Alher Tech, broken into phases:

The Risk Management Framework

Legacy migration is risk management more than engineering. The disciplines that matter:

Choosing the Right Module to Replace First

The first module is the proof of concept for the entire 18-month plan. Pick conservatively. The second and third modules are where you accelerate.

Cost Reality

Migration scopeCost rangeTimeline
Single module of a 5-module legacy$200K – $600K4 – 8 months
Mid-sized legacy system (10-15 modules)$1.5M – $4M12 – 24 months
Large legacy system (50+ modules, multiple subsystems)$5M – $15M+24 – 48 months
Legacy with third-party EDI / mainframe interfaces+30-50% on top+6-12 months

Costs include foundation work and parallel operation overhead, which are 30-40% of the total. License savings on the legacy side typically recover 40-70% of the migration cost over 5 years.

Common Mistakes

Strangler, Not Sledgehammer

Every legacy migration that succeeds is incremental. Every one that fails is big-bang. The teams that internalize this and design for reversibility ship; the ones that promise a single year-end cutover collapse.

If you're staring at a legacy system that's costing you $1M+/year and slowing every product decision, the path forward is real, but it doesn't look like a rewrite. It looks like a strangler fig.

Frequently asked questions

How long does a legacy migration take?

Single module: 4-8 months. Mid-sized system: 12-24 months. Large system: 2-4 years. Strangler-pattern lets you ship value every 3-6 months along the way, not 'at the end'.

Do I have to migrate everything?

No. Some legacy modules will outlive the migration project. The right answer is to migrate what's painful or expensive, and leave stable, low-friction modules alone until they break or get replaced for other reasons.

What about data migration?

Always 30-40% of project cost on systems older than 10 years. Plan for cleaning, mapping, validation and dual-running. Don't underestimate.

Can we do this with our internal team?

Yes if your team has migration experience. Most don't. The mistakes are expensive enough that bringing in a partner for at least the first 2-3 modules pays back. Knowledge transfer makes the rest doable in-house.

What's the right modern stack?

Depends on the legacy. Java EE → Spring Boot. .NET Framework → .NET 8/9. Oracle Forms → React + REST APIs. COBOL → Java or Python with a deliberate translation layer. Don't pick by hype. Pick by team's hireability and operational maturity.

Related guides