Back home
Replacement

Legacy modernization, for a system you cannot switch off.

Replaced one capability at a time, with the old one still running.

The system everybody complains about is usually also the system the business depends on, which is why it survives every plan to replace it. We do it the way that works: understand what it actually does, put a seam in front of it, move one capability at a time, and keep both running until the new side has proved itself on real work. No weekend where everything changes at once.

How systems get replaced

The approach depends on what is wrong: the technology, the hosting, the data, or the fact that nobody left understands it.

01

Strangler rewrite, one capability at a time

A routing layer in front of the old system sends each request to whichever side owns that capability now. Functionality moves across piece by piece, and the old system shrinks until there is nothing left in it.

  • A routing seam in front of the old system
  • One capability moved per release
  • Both sides live at the same time
  • The old system shrinking, measurably
02

Replatforming without changing behaviour

Where the software is fine and the platform underneath it is the problem: an unsupported runtime, hardware nobody sells, a database version past end of life. Behaviour is deliberately held constant so that any difference after the move is a defect rather than a debate.

  • Runtime and framework upgrades
  • Move to supported infrastructure
  • Behaviour held constant on purpose
  • Automated comparison before and after
03

Desktop or on-premise system moved to the web

Software that runs on a machine in one building, needed by people who are not in that building. The workflow is preserved rather than reimagined, because the users are already fluent and retraining them is a hidden cost nobody budgets.

  • The existing workflow preserved
  • Browser access with real permissions
  • Local files and printing handled
  • Phased rollout by team or site
04

Database and data migration

Moving the data, which is usually where a modernization actually succeeds or fails. Decades of accumulated exceptions live in there, and finding them before cutover rather than after is the whole job.

  • Profiling before mapping
  • Cleansing rules agreed with the business
  • Reconciliation counts and totals
  • Rehearsed migrations, not a first attempt
05

A spreadsheet estate that became the system of record

No vendor, no server, and no way to see who changed what. Replaced with something that has a database, permissions, and history, while keeping the flexibility that made the spreadsheets win in the first place.

  • The real process mapped from the files
  • History and permissions introduced
  • Existing data imported, not retyped
  • Export kept, because people still need it
06

Rewriting a system nobody left understands

The original team has gone and the documentation is a folder of screenshots. Behaviour is recovered from the code, the database, and the people who use it daily, and written down before anything is rebuilt.

  • Behaviour recovered from code and data
  • Rules confirmed with daily users
  • Written specification produced first
  • Dead functionality identified and dropped
How we work

How the work runs

  1. Tell us what you need

    A short written brief is enough to start: what you are building, the stack it has to live in, and the problem behind it. Someone technical reads it, not a sales rep.

    passed when we reply with questions and a proposed shape

  2. Scope and quote

    We agree what the first release contains and what it costs before anything is built. Anything we cannot estimate honestly gets scoped on its own rather than padded into the total.

    passed when the scope and the quote are agreed

  3. Build in the open

    Working software arrives in increments, in your repository, with our commits visible from the first week. Progress is something you can open and run, not a status report.

    passed when a real user is doing a real job in it

  4. Iterate, then hand over

    What the first release teaches sets the priority for the next one. When you want it in house, documentation and a handover period are part of the engagement rather than an extra.

    passed when your team can run it without us

How pricing works

when the scope is clear

Fixed price per milestone

You approve each milestone and its price before it starts, so the cost is known before the work is rather than after. Milestones are sized to be worth reviewing on their own.

when the work is ongoing

Monthly rate for a dedicated team

A set team at a set monthly cost, with notice rather than a minimum term. Priorities move between sprints without renegotiating anything.

when the shape is still open

Scoping first, quote after

We work out what it should be with you before quoting it. There is no charge for that conversation and no obligation to go ahead.

Frequently asked questions

How a replacement is kept safe

Every build ships end to end, from first scope to live deployment and ongoing support.

An assessment first: what it does, what it is worth, what can be deleted
A seam in front of the old system, so both can run at once
Parallel running, with output compared before any cutover
Data migrated with reconciliation, not just copied
A rollback that stays available until the new system has proved itself
Decommissioning as a planned step, with retention agreed

Send Inquiry

Regarding: Legacy modernization
What are you looking for? optional, pick as many as apply

By submitting this form, you agree to our Privacy Policy and Terms of Service.