Architecture

Modernising a legacy system without a big-bang rewrite

Complete rewrites fail at a high rate. Incremental strangulation delivers value earlier and carries far less risk.

Key takeaways

  • Rewrites chase a moving target and deliver value only at the end.
  • Strangling delivers value from the first slice and can stop safely.
  • Choose a self-contained, visible, non-critical first slice.
  • Data consistency during transition is the hardest part.

Why rewrites fail

A rewrite must reproduce years of accumulated behaviour, including undocumented rules encoded in the original by people who have left. Meanwhile the old system keeps changing, and the new one is chasing a moving target.

The business sees no benefit until the end, which makes the project politically fragile precisely when it needs patience.

The strangler pattern

Put a routing layer in front of the legacy system. Build new capability behind it, route specific functions to the new implementation, and gradually reduce what the old system handles.

Value arrives from the first slice. The legacy system shrinks rather than being replaced in one step, and at any point you can stop with something valuable delivered.

Choose the first slice carefully

  • Self-contained, with few dependencies on the rest.
  • Valuable enough that stakeholders notice.
  • Not the most critical path — the first slice proves the approach.
  • Clear data ownership, so you are not splitting a shared table.

Data is the hard part

While both systems run, data must be consistent. Options are a shared database during transition, synchronisation between stores, or a clean ownership split per entity.

Each has trade-offs and all require deliberate design. Underestimating this is the most common reason incremental modernisation stalls, and it deserves as much attention as the application work.

Keeping stakeholders engaged

Incremental modernisation delivers value continuously and can still lose support, because the old system remains visible and progress feels slow to people not close to the work.

Report what has moved and what that enabled, in business terms: a function now changeable in days rather than months, a report available that previously was not. Technical milestones do not sustain sponsorship.

Make the shrinking scope of the legacy system visible. A simple picture showing what has moved is more persuasive than any status report.


Frequently asked questions

Longer than a rewrite estimate and it delivers value throughout. The relevant comparison is time to first benefit, where incremental approaches win comfortably.

Add characterisation tests that capture current behaviour before changing anything. They document what the system does, which is not always what anyone believes.

Sometimes, and it is usually harder than the application layer because everything depends on it. Splitting ownership per entity is generally more tractable than a wholesale migration.

Working on this?

A conversation with our team, no charge and no obligation.

Book a conversation