Skip to content

Legacy software modernization

Modernize the system your business can’t switch off

Old systems keep businesses running long after the people who built them have moved on. We upgrade, re-platform or gradually replace them, module by module, while the old system keeps working until the new one has proved itself.

What we do

Modernization, matched to the system

Code & architecture audit

A clear report on risks, dependencies, security issues and options, with costs, before anything changes.

Framework & runtime upgrades

Out-of-support versions brought current: .NET Framework to .NET, Java 8 to current LTS, AngularJS to Angular or React, PHP 5 to 8.

Re-platforming

From ageing servers to containers and managed cloud services, with the DevOps to run them.

Monolith to modules

Carving a large system into well-defined modules or services, one boundary at a time.

Data migration

Database upgrades and moves with validation, reconciliation and a rehearsed cut-over plan.

Niagara AX to Niagara 4

Station migrations with custom modules rewritten for Niagara 4, part of our building automation specialty.

Choosing the path

Retain, upgrade, re-platform or rebuild?

OptionWhen it fitsRiskEffort
Retain & stabiliseThe system works and changes rarely; it just needs to be safeLowLow
Upgrade in placeThe design is sound but the stack is out of supportLow to mediumMedium
Re-platformHosting or operations are the real painMediumMedium
Rebuild step by stepThe system blocks the business and must change oftenManaged by doing it module by moduleHigh, spread over time

Our approach

No big-bang cut-overs

Big-bang rewrites fail for predictable reasons: the old system’s behaviour was never written down, the new one is late, and the business can’t wait. We avoid all three.

A routing layer sends each function to the old or new implementation. Modules move one at a time, are compared against the old system’s results, and the old part is retired only when the new one is proven.

  • Behaviour captured firstCharacterisation tests record what the old system really does before we change it.
  • Value earlyThe first modules go live in months, not after a multi-year rewrite.
  • Always a way backEach step can be rolled back while the old path still exists.

Frequently asked questions

Nobody understands the old code any more. Can you still help?

Yes. Reading unfamiliar and undocumented code is a large part of modernization work; the audit produces the documentation you are missing.

Do we have to rewrite everything?

Rarely. Often an upgrade and a few targeted rewrites remove most of the risk at a fraction of the cost.

Will users notice the change?

Ideally only as improvements. Modules switch over behind the scenes, and interfaces change when there is a reason to.

What does a code review involve?

Access to the repository and a conversation with the people who run the system. The result is a written report with risks, options and estimates.

Running on software nobody wants to touch?

Tell us what it is, what it runs on and what worries you. An engineer replies within 24 hours.

Book a code review