
Modernising legacy systems
When a legacy system becomes a risk
Almost every business has an application that has been running reliably for many years and yet nobody likes to touch. The warning signs are familiar: small changes take weeks, there are no more security updates for the framework or operating system, and knowledge of the code sits in a few heads – sometimes only in one.
In addition, Germany's NIS2 Implementation Act (NIS2-Umsetzungsgesetz) has been in force since December 6, 2025. Among other things, it requires the companies it covers to manage vulnerabilities in their IT systems, and management must oversee its implementation. A legacy system without updates thus becomes a matter for the top floor. How to weigh up refactoring against a rewrite is explained in our article Refactoring or rewrite?.
How we modernise your application
Assessment. We analyse code, dependencies, database and infrastructure and show where the biggest risks lie – presented clearly as a basis for your decision.
Framework and version upgrades. We bring the programming language, framework and libraries up to current, supported versions – in small steps and safeguarded by automated tests, which we write first if necessary.
Refactoring, performance and security. Untangling intertwined modules, removing bottlenecks, closing security gaps – without changing how the application behaves for your users.
Step-by-step replacement. Where the foundation no longer holds, we replace the legacy system module by module with new components until it can be switched off – instead of a risky big-bang replacement on a fixed date.
Modernising while operations continue
The wish for a completely fresh start is understandable, but risky: a rewrite first has to match the functionality of the old system before it delivers any value, and the domain knowledge stored in the code is easily lost along the way. We therefore prefer manageable steps that can be tested individually and rolled back if necessary. That way, your system keeps delivering value and the budget can be managed in stages.
Not every legacy system needs to be replaced. It is often more economical to connect a proven system to modern applications via an interface. That is how we connected the GDI ERP system at Stenger to a new service app: the office keeps working in its familiar system, the technicians with a modern app.
From our projects: technically up to date for eleven years
We have developed and operated the PicturePartners event photo platform since 2015 and have kept it technically up to date ever since. Modernisation also included a fundamental change of technology: the custom camera box with a tailored embedded Linux, which transferred photos from the camera via Wi-Fi, was replaced by native apps for iOS and Android that control Canon, Nikon and Sony cameras directly. Find out more in the ClicClic case study.
How much does it cost to modernise a legacy system?
Based on our cost model, modernising a small Access application costs about €22,000–40,000, a business application with ERP integration €53,000–96,000 and a monolith that has grown over time €120,000–220,000 – all net, including project management and quality assurance. Because we modernise in stages, these costs can be spread over several budget periods.
For an estimate for your system, use the project cost calculator. What it costs to keep software up to date after modernisation is explained in our guide Ongoing software costs.
How we proceed
- Free initial consultation: clarifying goals, pain points and scope
- Analysis of code and infrastructure with prioritised measures
- Modernisation in small, tested steps
- Maintenance and further development to keep the system up to date
- Free initial consultation: clarifying goals, pain points and scope
- Analysis of code and infrastructure with prioritised measures
- Modernisation in small, tested steps
- Maintenance and further development to keep the system up to date
Frequently asked questions about modernising legacy systems
Refactoring or rewrite – which is better?
In most cases, step-by-step modernisation is the safer route, because the system keeps working and every change remains manageable. A rewrite is justified when the programming language or platform has no future or the business model has changed fundamentally. We weigh up both routes in detail in our article Refactoring or rewrite?.
Do you take over software developed by others?
Yes, including complex codebases that have grown over many years. We always start with an assessment of code, dependencies and operations. Afterwards, you know where your system stands, what risks exist and which steps are worth taking first.
Do operations have to be interrupted during modernisation?
No, avoiding that is precisely the aim of the step-by-step approach. Changes go live in small packages and can be rolled back if necessary. Where data is migrated or systems are moved, we plan to keep downtime to a minimum.
What if there are no tests and no documentation?
With legacy systems, that is the rule rather than the exception. Software expert Michael Feathers even defines legacy code as code without tests. Before we change anything, we therefore safeguard the existing behaviour of the most important functions with automated tests. These tests and the knowledge gained along the way remain yours.
How can I tell that my system should be modernised?
Typical signs are missing security updates for the framework or operating system, changes that take longer and longer, knowledge that depends on individual people, and problems with new browsers, devices or interfaces. The sooner you act, the smaller and more affordable the necessary steps are.
Didn't find your question?Get in touch
We analyse your application and show you which route is worthwhile – refactoring, step-by-step replacement or a rewrite.