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.
ExampleA legacy system, replaced in stages
- 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.
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.
- 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.
- 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.
- 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.
- 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.
01
Audit
The code, the data, the infrastructure and the people who use the system. How it really works, not how it is documented.
02
A safety net
Automated tests that record how the system behaves today. Every change is checked against them.
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.
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.
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.
Related services
- Cloud & DevOpsArchitecture, migration, automated releases and monitoring, with costs you can predict.
- Web applications & websitesPlatforms, portals, dashboards and online stores that are secure, accessible and easy to run.
- Desktop applicationsWindows, macOS and Linux software for a full working day, online or off.