Legacy software: rebuild, modernize or migrate

How an SME decides whether to keep, modernize or rebuild the software it has used for years, and how it changes it without stopping work.

Rebuild, modernize or migrate: what is the difference?

Rebuilding means rewriting the software from scratch; modernizing means changing it piece by piece while it stays in use; migrating means moving data and work to another system, new or ready-made. Legacy software is software still in use that has become hard to change, because its technology is outdated or because the people who knew it are gone. This guide is mostly about the management system, the software that touches the most processes: almost one Italian SME in two with at least 10 employees uses an ERP system, 48.8% in 2025 according to ISTAT.

In practice there are six paths, and they are often combined.

Path When it pays Risk Times and costs
Keep it and protect it it works, it is still supported and nobody asks it for things it cannot do low today, growing as the end of support draws near maintenance, estimated on the work it really needs
Connect it through APIs the problem is data copied by hand between two systems low: the old system stays as it is after the feasibility study
New interface on top the engine holds up, but the screens slow work or fail on tablets low, if the system has APIs or a readable database after the feasibility study
Replace it one module at a time the system holds work back, but it contains years of rules nobody has written down elsewhere spread out: each step goes into production and can be stopped from 10,000 € for the first module, in 6-8 weeks
Rebuild it in one go the technology is no longer maintained, or the data model blocks the business high: for months you pay for the new system and still use the old one like new software, plus data migration
Ready-made product the part does not set you apart: accounting, invoicing, payroll low on the software, high if the process has to bend to the product the product fee, plus data migration

An API is the point through which one piece of software exchanges data with another without a person copying them. Connecting and redoing the interface are the lightest paths: in a field service dashboard and in a telecare one, the existing backend stayed where it was and the new interface talks to it through its APIs. The other paths, and how they connect to each other, are on the page on ERP integration.

Rebuilding it in one go costs as much as new software: from about 15,000 € in 2-3 months for an essential management system, from 45,000 € and from 4 months for a platform, plus data migration.

Many guides name the paths with words that start with R. Keeping it is retain; moving it as it is to another server or to the cloud is rehost, and moving it with a few changes, for example to a database managed by the cloud provider, is replatform. Cleaning up the code without changing what it does is refactor, redesigning its structure is rearchitect, rebuilding it in one go is rebuild, moving to a ready-made product is replace. Connecting it through APIs is encapsulate, and replacing it one module at a time is the strangler fig pattern, described further on.

The feasibility study takes 1 to 2 weeks and costs up to 2,500 €, deducted from the first piece of work if you sign. We read the code and the database, measure how much manual work the system costs today and choose the path. The six paths do not exclude each other. The most common solution is a ready-made product for accounting, custom modules for the work that sets you apart and the old system connected through APIs for as long as it is needed.

One question decides between a ready-made product and custom software: is that part of the work the same as everyone else's, or is it how you stand apart from competitors? In the first case a ready-made product costs less, the vendor handles the updates for new rules and the process adapts to the product. In the second, bending the process to the product takes away exactly what sets you apart. AI assistants' answers also carry a threshold: custom software when customizations exceed 30% of the features in use. Among the pages we read for this guide only one gives it, without a source, and the deciding question stays the other one: what matters is what you customize, not how much.

The figures in this guide

Prices and durations are those of Volcanic Minds, current at the date at the top of the page. Figures from others come from the sources listed at the bottom.

When does it really need replacing?

When keeping it costs you more than changing it, or when it stops being secure. Age alone is not a reason: a twenty-year-old management system that does its job, receives security updates and connects to what it needs to is worth keeping.

The clearest sign is the end of support. When the operating system, the database or the environment the software is written in no longer receive security updates, every flaw discovered from that day on stays open. Here are three components often found under SME management systems.

Component End of support What it means
Windows 10 14 October 2025 the operating system is no longer supported by Microsoft
SQL Server 2016 14 July 2026 security updates continue only through Extended Security Updates, taken out separately, at most until 16 July 2029
Visual Basic 6 8 April 2008 for the development environment programs already written still run, but Microsoft fixes only serious regressions and critical security issues, and there is no supported way to write or maintain them

The other signs are measured in hours and lost opportunities. Data move by hand from one system to another, and every transfer is a possible error. Only one person knows how the software works, and it is the person about to retire or the supplier that has closed. Every change costs more than the last and takes longer. The software does not run on the tablets and phones your people already use, or a new rule, as e-invoicing was, becomes a project instead of an update.

One sign alone is not enough to decide, but two or three together say it is time to run the numbers.

How much does it cost to keep it, and how much to change it?

Changing it one module at a time starts from 10,000 € for the first module; rebuilding an essential management system in one go starts from about 15,000 €, plus data migration. Keeping it costs the maintenance you pay today, plus manual work and risk: to decide, you compare three years of real costs, item by item, not a percentage. In the automatic answers of search engines you find a threshold: replace the system when maintenance exceeds 30-40% of the cost of a rebuild. None of the pages we read for this guide gives a source for it, and a ratio between two costs leaves out the items that weigh most: manual work and risk.

Item If you keep it If you change it
Maintenance what you pay today, and how much it has grown in recent years maintenance of the new system, estimated on the work it really needs
Licences and infrastructure licences, servers and, when normal support ends, extended support hosting and component licences
Manual work the hours spent copying data, redoing reports and working around the system's limits the hours that remain after the change
Risk a stoppage, a security incident, a single person who knows how it works the risk of the switch, covered by data tests and a plan for going back
Cost of the change none the project, data migration, training, the period with two systems running
Opportunities the customers and connections you give up because the system cannot handle them what the new system lets you do

Manual work is the item that does not appear in the accounts, because it sits in salaries: you measure it by counting the hours of a typical week. In the feasibility study we make the comparison with your figures, and if keeping the system pays, we write that down. How the price of custom software is formed, and why maintenance is not calculated as a percentage, is in the guide how much custom software costs.

When does it pay to rebuild from scratch?

More rarely than people think. Rewriting everything wipes out years of fixes for edge cases, which are in the old code even if nobody documented them. It pays in three cases: the technology is no longer maintained, it has fallen so far behind current technology that every change costs more than rewriting it, or the data model prevents what the business needs. This happens, for example, when you need several sites or several companies and the system allows only one.

The most cited case is Netscape, told by Joel Spolsky in 2000: the company decided to rewrite its browser from scratch, and there was never a version 5.0. When 6.0 entered its first public beta, 4.0 had come out almost three years earlier, while its market share collapsed. Spolsky called it the worst strategic mistake a software company can make, and explained why: the lines of old code that look useless are, for the most part, bug fixes.

Martin Fowler, who gave gradual replacement its name, writes that the plan of rebuilding the same system in a new technology fails most of the time. Replacing a serious system takes a long time, he explains, and meanwhile its users cannot wait for new features. That is why even when you rewrite, you release in parts, and each part goes into production as soon as it is ready.

Would you rather talk it through?

Book a call with people who work on these topics every day: we will look at your case together.

Book a call

How do you change it without stopping work?

One piece at a time, with the old system running until the new one has shown it does the same work. The method is called strangler fig, after the fig that grows around a tree until it takes its place. In front of the old system you put a routing point that sends each request to the old or the new one, and with each module that is ready the new one's share grows. In Microsoft's description, the people using the system keep working with the same interface and do not notice that a migration is under way.

Step What happens
First module you choose the part that hurts most and has clear boundaries, and build it connected to the old system
Data tests you migrate a copy of the data and reconcile the totals: customers, balances, the year's invoices must match in both systems
Parallel run for an agreed period the same operations go through both systems, the results are compared and the people who will use the new module learn how to use it
Switch the new module becomes the one in use, at a quiet time, with a plan for going back written beforehand: until when, who decides, how
First weeks the people using the new module have someone who answers straight away, and the old system stays ready for going back
Shutdown the old part is switched off, and its data go into the new system or into an archive

Reconciling means checking that the figures add up: not that the data were copied, but that they say the same things. Data migration is tested before the switch, not during it. How we connect two systems without stopping them, from the data map to the API contracts, is described on the integration page.

The method does not always fit. According to Microsoft it does not suit cases where requests to the old system cannot be intercepted, or where you have no access to the code and no other point to connect from, such as the database. The same holds, according to Microsoft, where the system is small and replacing all of it is simple, and where the old part has to be decommissioned quickly. In these cases you rebuild in one go or choose a ready-made product, with the same data tests.

A ready-made product does not remove the risk of the switch. Gartner predicts that by 2027 more than 70% of recently implemented ERP initiatives will not fully meet the business goals they started with. It names technology-centric approaches that do not involve the stakeholders as the cause. The people who will use the new system join the project from the start, not on the day of the switch.

What happens to historical data?

They are not thrown away. The law asks you to keep part of them for years, and the GDPR asks you not to keep personal data longer than necessary. For each type of data you decide whether to migrate it, archive it read-only or delete it.

Article 2220 of the Italian Civil Code requires accounting records to be kept for ten years from the date of the last entry, and for the same period the invoices and correspondence received and the copies of those sent. They can be kept in digital form, provided they can be made readable at any time. The Sistema di Interscambio is the national e-invoicing exchange system. If you have joined the free retention service of the Agenzia delle Entrate, the Italian Revenue Agency, the e-invoices that went through it stay retained there for 15 years, even if you close your VAT number. For personal data the storage limitation of article 5 of the GDPR applies: they are kept in a form that allows people to be identified only for as long as necessary for the purpose they were collected for.

Data What you do with them Why
Master data and history you use every day you migrate them into the new system, cleaned the work needs them
Accounting records, invoices, business correspondence you migrate them, or keep them in a read-only archive for ten years from the last entry article 2220 of the Italian Civil Code
E-invoices that went through the Sistema di Interscambio if you joined, the Agenzia delle Entrate keeps them for 15 years; into the new system you migrate those you need for your work retention service of the Agenzia delle Entrate
Personal data with no remaining purpose you delete them article 5 of the GDPR
Everything else read-only archive, searchable and exportable you do not keep the old system running, and paying, only to look things up

Your accountant tells you whether longer terms apply to some years. Like the other guides, this one is a technical contribution, not legal advice.

What if the supplier is gone?

You start again from the code, if you have it, otherwise from the database and from what the software does. Italian copyright law gives the employer, unless otherwise agreed, the economic rights to software written by its employees (article 12-bis of Law 633 of 1941). When a supplier writes the software, however, what passes to you is set by the contract: the first thing is to reread that contract.

If you have the code, a new team reads it, reconstructs the rules it contains and chooses the path. If you do not, the work starts from the database and from what the software does, observed with the people who use it every day. Without code and without another point to connect from, replacing it one module at a time cannot be done, and you move to rebuilding it or to a ready-made product.

With us the problem does not arise: each paid milestone transfers to you ownership of the part of the project it covers, and the transfer is written into the contract. If one day you change supplier, the code is already yours.

With a ready-made cloud product the code stays with the vendor, and what matters is being able to take your data back. The European Data Act requires providers of software as a service to export it in a commonly used, machine-readable format and to remove the obstacles to switching to another provider. According to the European Commission, from 12 January 2027 the provider can no longer charge you for switching or for taking your data out.

What if the person who knows it retires?

Before choosing the path, you secure the system while that person is still there. You recover the source code, with the contract that says who owns it, and the credentials for servers, databases and connected services. You take a full copy and try restoring it on another machine: a backup nobody has ever restored does not prove the data can be recovered. Then the person who knows the system shows whoever will take it over the operations nobody else can do: the month-end close, the price list updates, the errors they already know how to work around. Securing the system starts at 5,000 €.

Once this is done, the choice is no longer urgent, and the feasibility study starts from a safe base: the code, the database and what until now only one person knew.

Does AI help modernize old software?

Yes, in reading it and testing it, not in deciding. Code assistants read undocumented code and describe what a function does, find the parts nobody calls any more and write the tests that pin down current behaviour before it is changed. What they say has to be checked: tests on real data and a person who answers for the result remain the criterion.

Even before language models, on large systems the analysis was done with automated tools. For an automotive company we analysed the code quality of a couple of applications that ran to tens of thousands of files: by hand it would have taken too long and cost too much. How the debt accumulated in a system is measured and managed is told in the article on technical debt. AI makes us faster, and we do not bill you for the hours saved.

An illustrative example: a distributor's management system

The example is illustrative: the company is invented, the durations and figures are those of our price list.

A spare parts distributor with twenty people uses a management system written in Visual Basic 6 by a supplier that has closed, on a Windows server with SQL Server 2016. It has the code, because the contract provided for it. The sales agents take orders on paper and dictate them over the phone, and accounting runs in a commercial product that works well.

Phase Duration What happens Cost
Feasibility study 1-2 weeks reading code and database, choosing the first module, the quote up to 2,500 €, deducted from the first module if you sign
First module: agents' orders 6-8 weeks tablet orders enter the new system and pass to the old one from 10,000 €
Next modules one at a time price lists, warehouse, customers, each with data tests and a parallel run in the quote for each, with a range and a maximum
Shutdown at the end of the last module the history goes into a read-only archive and the old server is switched off in the quote for the last module

The study also counts the hours of manual work and writes the plan for historical data. In the first module, orders reach the old system through its database, and the rest of the work does not change.

Accounting stays in the product the company already uses, connected through APIs: rebuilding it would add nothing. Each module goes into production on its own, and if after the first one the company decides to stop, it still has orders from tablets and the management system it had before.

How do you compare two modernization proposals?

Ask every supplier the same questions, in writing: which path and why, what goes into production first, what happens to historical data and how you go back. Then how long the parallel run lasts, whether work stops, who trains the people, what it costs over three years, who documents the rules found in the code and when the code passes to you. A proposal that skips the data plan or the way back pushes the risk to the day of the switch.

Question What they must answer
Path which of the six, and why not the others
First release which part goes into production first, and when
Historical data what is migrated, what goes into the archive, how the totals are reconciled
Parallel run how long it lasts and who compares the results
Going back how you return to the old system if the switch goes wrong, and until when
Stoppage whether work stops, for how long and on which day
People who trains the people who will use the new system, when, and who answers in the first weeks
Costs over three years project, maintenance, licences and infrastructure, for the new system and for the old one while it stays running
Rules found in the code who documents them, and where you find them
Code ownership when it passes to you, with repositories, access and documentation

For the rest of the quote, the items in the guide on costs apply.

Sources and further reading

In practice

Frequently asked questions

All frequently asked questions
What is legacy software?

It is software still in use that has become hard to change, because the technology is outdated or because the people who knew it are gone. It does not mean it should be thrown away: you change it when keeping it costs more than changing it, or when it stops being secure.

How much does it cost to modernize a management system?

It depends on the path. The feasibility study costs up to 2,500 €, deducted from the first piece of work if you sign; replacing the first module starts at 10,000 €, in 6-8 weeks. Rebuilding it in one go costs as much as new software, from about 15,000 € for an essential management system and from 45,000 € for a platform, plus data migration. If the person who knows the system is about to leave, securing it starts at 5,000 €.

Can you change management system without stopping the business?

Yes, by replacing it one module at a time. The old system stays running until each new module has passed the data tests and a parallel run, and the switch has a plan for going back written beforehand.

Does it pay to move from a management system installed on the PC to a web one?

Often it does. A web management system opens in the browser on computers, tablets and phones, does not need installing on every workstation and is updated in one place. It is secure because of how it is built and run, not because of where it sits: mandatory HTTPS, multi-factor authentication, role-based permissions and backups with documented restore procedures. The data live on the cloud chosen together or on your own infrastructure, and a program installed on an operating system out of support is less protected than an up-to-date web application.

How long must the data of the old management system be kept?

Accounting records, invoices and business correspondence for ten years from the date of the last entry, as article 2220 of the Italian Civil Code requires. Personal data that are no longer needed are deleted, under the GDPR. Your accountant tells you whether longer terms apply to some years.

Does it pay to rebuild old software from scratch?

Rarely. It pays when the technology is no longer maintained, when it is so far behind that every change costs more than rewriting it, or when the data model prevents what the business needs. In the other cases it pays to replace it one module at a time, staying in production.

Does your management system need replacing?

Tell us what it costs you today: we tell you whether it pays to keep it, connect it or replace it, before proposing a project.

  • You won't talk to a salesperson
  • NDA before we get into the details
  • The code stays yours