Software modernization, step by step.

We renew the old systems your business depends on: programs built on Access, Delphi, Visual Basic, legacy PHP or .NET Framework. We replace them piece by piece while everything keeps running, so you don't stop for a single day, and the rules built into the old code aren't lost.

Example: a legacy system of eight modules is replaced in stages. A facade in front of it routes every request to the old or the new part, so work never stops. Choose a stage to see which modules have already been replaced.

ExampleA legacy system, replaced in stages

People work exactly as beforeWork never stops
  • Reports: New module
  • Customers: New module
  • Orders: New module
  • Pricing: New module
  • Deliveries: New module
  • Inventory: Legacy code
  • Invoices: Legacy code
  • Users: Legacy code

5 of 8 modules replaced

Most of the work now runs through the new system. The old one handles only the rest.

Modernization stage

Rewrite or renovate: how we decide

An old system usually isn't bad. It has worked for years and carries your business rules. The trouble is that every change costs more, the knowledge lives in one person's head, or the technology no longer gets security updates.

Rewriting everything at once is the riskiest path: months with nothing to show and one big switch-over day. So we prefer gradual replacement. The new system grows around the old one and takes over its functions one by one, until the old one can be switched off calmly. Sometimes the right answer is different: just maintenance and renewing the riskiest parts. We'll tell you which case is yours.

When clients call us

The four situations where modernization brings the most value.

  1. 01

    An audit of a legacy system

    We review the code, the data and the infrastructure and tell you frankly what state they are in: what is risky, what can wait, and what each option will cost.

  2. 02

    Migration to modern technology

    From desktop programs on Access, Delphi or Visual Basic to a web or modern desktop app, and from .NET Framework to current .NET, with every piece of data migrated and checked.

  3. 03

    Rescuing a project in trouble

    A project that is running late, was abandoned by its previous developer, or that nobody dares touch: we take it over, stabilise it and put it back in order.

  4. 04

    Maintaining a legacy system

    When full modernization isn't justified, we keep the system secure and running, update its dependencies and replace the most troublesome parts to a plan.

How we replace it, without stopping work

The new system grows around the old one and takes over its functions one by one, while people work exactly as before.

  1. 01

    Audit

    The code, the data, the infrastructure and the people who use the system. How it really works, not how it is documented.

  2. 02

    A safety net

    Automated tests that record how the system behaves today. Every change is checked against them.

  3. 03

    A facade

    A layer in front of the old system that routes every request to the old part or the new one. Users don't notice the difference.

  4. 04

    Module by module

    We start with the part that brings the most value or carries the most risk. Each stage works before the next begins.

  5. 05

    Switch off the old

    When the last module is replaced and the data reconciled, the old system is switched off. Calmly, to plan.

What you get

  • A technical audit and a plan by priority
  • Automated tests around critical functions
  • Migrated and reconciled data
  • A new system, released in stages
  • Documentation the old system never had
  • Training for your team, and support

From what, and to what

We read the old code to extract the rules built into it, then carry them into technology with a long life ahead.

Legacy technology
  • Access
  • Delphi
  • Visual Basic 6
  • Legacy PHP
  • .NET Framework

The technologies behind many of the systems still running today.

Modern technology
  • .NET
  • TypeScript
  • React
  • Python
  • PostgreSQL

Actively maintained technology with large communities, so the problem doesn't come back in ten years.

Methods
  • Strangler fig pattern
  • Automated tests
  • Data reconciliation
  • Feature flags

A feature flag turns a new function on for some users and off again in one action if anything is wrong.

Infrastructure
  • Docker
  • Azure
  • AWS
  • Linux

The new system can stay on your own servers or move to the cloud when it is ready.

Questions about modernization

Is it better to rewrite everything from scratch?

Rarely. A full rewrite all at once means months with nothing to show, risk at the switch-over, and the loss of rules nobody remembers exist. Gradual replacement brings value from the first stage and can be paused at any time with a working system.

How long does modernization take?

The audit usually takes one to two weeks. The modernization itself runs in stages of a few weeks each, every one with a working result. The total depends on the size of the system, and you see it in the plan after the audit.

What happens to our data?

We migrate it with automated scripts and reconcile it: record counts, totals and control checks. The old data stays available until you're confident in the new.

Our developer left and nobody knows the system. Can you help?

Yes, this is a common situation. We start with an audit, document how the system works and put automated tests around its most important functions. After that, maintenance and changes are safe again.

Will our team have to learn a new system?

We keep familiar workflows where they work and improve the ones that get in the way. Changes arrive gradually, with training at every stage, not all on one day.

Can you just maintain the old system?

Yes. When modernization isn't justified yet, we keep the system secure and running, update what can be updated, and tell you in good time when maintenance starts to cost more than replacement.

Let's start with an audit.

Request a system audit

Prefer to talk?

Talk to an engineer, not a salesperson.

+359 884 139 349Mon-Fri, 9:00-18:00
CallStart a project