Back to work
M-04·Modernization

Modernizing a legacy system

ModernizationArchitectureRisk

How we approach a system that runs the business but everyone is afraid to change — without the risk of a full rewrite.

FIG.Method
01 · CHALLENGEWhat's really wrong02 · APPROACHHow we approach it03 · OUTCOMEWhat changes
01 · Challenge

A system runs the business but is old and fragile. Every change is risky, and a full rewrite tends to stall or blow up halfway through.

02 · Approach

We keep the system running. We carve off pieces one at a time and replace them (the strangler pattern), with tests serving as a safety net throughout.

03 · Outcome

Done right, change stops being scary. Releases become boring in the good sense, and risk is split into small, manageable steps instead of one big leap.

This is a method note: it describes how we approach this kind of problem, not a write-up of a named client.

Why not the big rewrite

A full rewrite sounds like a clean break, but in practice it means months where the old system is still running and the new one isn't ready. The business can't stand still that long. So we keep the old one alive and change it from the inside.

How we approach it

  • Understand what it really does first. There's usually behaviour written down nowhere that someone's job depends on.
  • A safety net. Before moving anything, we lock existing behaviour behind tests so we notice if we break something.
  • Cut by cut. We carve off one self-contained capability, replace it, and only then move to the next. The old system runs the whole time.
  • Every step delivered. Each phase ends in production, not in a branch waiting for a big day.

What changes

The fear of change fades. The team can release more often and more calmly, because risk is split into small steps. Technical debt goes down continuously instead of waiting for a rewrite that never comes.

Open for work

Have a similar problem?

Tell us what you're trying to achieve. We'll answer with an honest read on how we'd approach it — not a sales deck.