Should we rewrite or modernise legacy software?

Usually modernise in stages. A working system holds years of business rules that a rewrite has to rediscover, and replacing it part by part keeps it in service while the risk is spread. A full rewrite or a packaged product is the right call when the system is small, when it no longer fits the business, or when a standard product already does the job.

Why staged modernisation is usually safer

A rewrite means building a complete new system and switching to it in one go. Modernising in stages means replacing or upgrading one part at a time, such as the database, a single module or the screens, while the system stays in use.

The case for stages rests on three observations, which are our judgement from the kind of systems we work on.

The rules are in the code. A system that has run a business for years contains every fix and special case added along the way. Nobody remembers them all and few are written down. A rewrite from a fresh specification leaves some out, and they come back as faults after the switch.

A rewrite delivers nothing until it is finished. The business pays for the new system and the old one at once. Meanwhile the old system still needs changes, so the target keeps moving.

Stages can be stopped. Each stage is released and proven before the next begins. If priorities or budgets change, what has been done is already in use.

Our page on legacy software modernisation describes how the stages are chosen.

When a rewrite is the right call

The system is small. Rewriting a small system is a short project, and staging it adds overhead for little benefit.

It no longer fits the business. If the way the business works has changed so far that staff do most of the real work outside the system, updating its technology will not fix the problem.

The code cannot be changed safely. Where every change breaks something else, the cost of each stage rises until starting again is cheaper.

There is no source code. A system that cannot be built from its source cannot be modernised. It can only be replaced, using its data and its visible behaviour as the guide.

When a packaged product is the right call

If the system does something most businesses do in much the same way, such as accounts, payroll or managing sales contacts, a packaged product will usually cost less and is kept up to date by its vendor. Bespoke software earns its keep where the process is specific to your business.

Weigh the whole cost of a product: the subscription for each user, moving the data, and changing how staff work to suit it. We do not support packaged products ourselves, but if we think one would do the job we will say so.

How to decide for your system

Four questions settle most cases. Can the system be built from the source code you hold? Is its platform still supported, or can it be upgraded? How hard is it to change without breaking something? Does it still fit the way the business works?

Our maintain, modernise or replace check asks ten questions along these lines and gives a recommendation with its reasons. For evidence instead of impressions, a code audit examines the system and reports which of the three courses we would take. Where the question is specifically about moving off .NET Framework, the .NET upgrade assessment answers it.

Related questions

Is modernising in stages slower than a rewrite?

It can take longer to reach the end, but the first improvements arrive much sooner. Each stage goes into use when it is finished, whereas a rewrite delivers nothing until the whole system is ready.

Can a system be modernised if the original developers have gone?

Yes, provided you hold the source code. The first step is to prove the system can be built, released and restored from a backup, which also teaches the new team how it works.

What gets modernised first?

Usually whatever carries the most risk: a database or server that no longer receives security fixes, or a part of the system that fails often. Parts that work and rarely change can wait.

What if the technology has no upgrade route?

Some older technologies, such as VB6 and Classic ASP, cannot be upgraded in place, so the code has to be written again. It can still be done a part at a time, with old and new running side by side, instead of in one switch.

Want the answer for your system?

Tell us what the software does and what you are trying to decide. We will reply with a straight answer and what we would need to know to be more precise.

Tell us about your system 0800 433 7990 Monday to Friday, 9am to 5pm. A first 20-minute call is free, and we reply to every enquiry within one working day. What happens after you get in touch