Application modernization

Application modernization company

An application modernization company should start by telling you whether you need one. We read the system, count where the hours actually go, and recommend the smallest change that removes the cost, which is sometimes an integration rather than a rewrite.

What does an application modernization company do?

An application modernization company takes software a business already depends on and makes it supportable again, by moving it, restructuring it, rebuilding it or replacing it. The work is chosen from the problem, not from a default, and the honest answer is sometimes to leave the system alone.

The phrase covers more ground than most buyers expect. An application modernization company may spend a project moving a system to cloud infrastructure without changing a line of its logic, or may spend a project rewriting the logic and leaving the infrastructure exactly where it is. Both are modernisation. Which one you need depends on what is actually costing you money, and that question is usually answered badly because it gets asked after the budget has been set.

What brings a mid sized business to this conversation is rarely a wish to be modern. It is a date. A vendor announces end of support. A hardware lease expires. The one person who understood the system retires in March. An auditor asks a question the system cannot answer. The deadline arrives first and the architecture discussion follows, which is the right order even though it feels backwards.

This page is written for companies between roughly fifty and five hundred people, where the system in question runs real operations, the team is small, and a failed cutover is felt on the floor the same week. If you are a bank with a mainframe and a thousand engineers, the vendors on the first page of this search are built for you and we are not.

When should you not modernise an application?

Do not modernise when the system still does its job and the only complaint is that it looks old, when the real cost is a manual process beside the system rather than the system itself, when nobody can describe the current behaviour, or when the budget covers the build with nothing left for the year after it.

Every page competing for this search sells the rewrite, because a rewrite is the largest invoice available. The useful version of this conversation starts from the opposite direction, so here are the four cases where an application modernization company should tell you to keep your money.

The system works and the complaint is aesthetic. A green screen that three people use fluently, forty hours a week, is not a problem. It is muscle memory worth years of training. Replacing it with a prettier interface that those three people are slower in is a cost dressed as an improvement. Modernise what is slow, expensive or risky, not what is ugly.

The expensive part is beside the system, not inside it. This is the most common finding in a discovery week. The ERP is fine. What costs twelve hours a week is a person exporting from the ERP into a spreadsheet, reconciling it against a second export, and emailing the result. That is an integration problem with an integration price, and it is usually a tenth of what a modernisation project costs. We will say so, even though it is the smaller job.

Nobody can describe what the system currently does. If the rules only exist in code written by someone who left in 2014, a rebuild means rediscovering them, and the discovery method is finding out what broke. Before rebuilding, spend a few weeks writing down the behaviour and reconciling it against reality. Sometimes that document is all you needed, because the actual problem was that nobody understood the system.

The budget covers the project and nothing after. Modernised software is a running cost, not a purchase. If the money ends at go live, you will be back in the same position in four years with a system nobody has patched, and the next conversation will be more expensive than this one.

What are the six approaches to application modernization?

Rehost, replatform, refactor, rearchitect, rebuild and replace. They run from least to most disruptive, and cost roughly in that order. Most real projects use two or three of them on different parts of the same system rather than picking one for everything.

ApproachWhat it meansRight whenWrong when
RehostMove it as it is, usually to cloud infrastructureThe data centre contract is ending, or the hardware is out of warranty. Nothing about the application improves, which is the point: it is the lowest risk move available.You are hoping the move itself fixes performance or maintainability. It will not.
ReplatformMove it and change the pieces underneathA supported database version, a managed runtime, a modern deployment pipeline. The application behaves the same, the things under it stop being a liability.The platform is not what hurts. Replatforming a system nobody can change still leaves a system nobody can change.
RefactorKeep the behaviour, restructure the codeThe system does the right things but every change takes weeks and breaks something else. Refactoring buys back the ability to change it.Nobody can describe the current behaviour. You cannot preserve what you cannot specify.
RearchitectChange how the parts fit togetherOne part needs to scale very differently from the rest, or two teams cannot ship without waiting for each other.The driver is a diagram someone saw at a conference. Microservices add operational cost that a company of your size may not want to carry.
RebuildWrite it again, same purposeThe technology is genuinely unsupportable, the original authors are gone, and the rules the system encodes are still correct and still written down.The rules are not written down anywhere except the code. Rebuilding then means rediscovering them by breaking things in production.
ReplaceBuy a product and retire the systemWhat the system does is what every company in your industry does. Payroll, accounting, email, ticketing, general ledger.The system encodes how you compete. A product will flatten that to match whatever your competitors do.
The six modernization approaches ordered from least to most disruptive Rehost is the least disruptive and cheapest, then replatform, refactor, rearchitect and rebuild, with replace the most disruptive. Cost and risk rise across the same order. Rehost move as is Replatform swap what is underneath Refactor restructure the code Rearchitect change how parts fit Rebuild write it again Replace buy a product Least disruptive, lowest cost Most disruptive, highest cost
The approaches in order. Cost and risk rise left to right, which is why the right answer is usually further left than the proposal in front of you.

The column most vendor pages omit is the last one. Any application modernization company can tell you when an approach fits. The useful knowledge is when it does not, because choosing the wrong one is how a project that should have cost eighty thousand costs four hundred.

Operator panels wired to programmable logic controllers on an industrial automation rig
The systems that bring companies to this conversation are rarely glamorous. They are the ones production stops without.

Treating these as a menu to pick one item from is itself a mistake. A typical engagement rehosts the database because the hardware is dying, refactors the two modules that change most often, leaves nine modules untouched because nobody has needed to change them since 2019, and replaces the reporting layer with a product. Four decisions, four different answers, one system.

Modernise, integrate, or leave alone: how do you decide?

Start from where the hours go, not from the architecture. If people are copying data between systems by hand, you need integration. If the system cannot be changed when the business changes, you need modernisation. If neither is true, you need neither, whatever the age of the technology.

Here is the sequence we run, and you can run it yourself before calling anyone.

Count the manual hours and name where they go. Not an estimate, a count, for two weeks. Who opens what, copies what, into what, and how long it takes. Most teams are surprised. The spreadsheet that costs the most is rarely the one anybody complains about.

Ask what the business wanted to do last year and could not. If the answer is a list, the system is blocking change and modernisation has a return. If the answer is nothing in particular, the system is doing its job and the age of its technology is not your problem.

Ask what happens if the person who knows it leaves. If the honest answer is that nobody could make a change, that is a risk with a date on it, and it is the one driver that justifies acting before anything is visibly broken.

Then price the integration first. Connecting two systems so a person stops retyping between them is usually weeks, not quarters. If that removes most of the manual hours, do it, run the modernised plan past the result, and see whether you still want it. Quite often you do not, and an application modernization company that is paid by project size will not suggest this order.

What does application modernization actually cost?

Scope decides the total, but the structure is consistent: understanding the existing system takes 15 to 30%, the modernisation work 40 to 60%, data migration and reconciliation 15 to 25%, and running both systems in parallel 5 to 15%. Quotes that omit the first and last are the ones that overrun.

Where the money goesShareWhat it buys
Understanding the current system15 to 30% of the projectReading code nobody has read in years, finding the undocumented rules, and discovering which of the 400 reports anyone still opens. Skipped on most quotes, and the single most common source of overrun.
The modernisation work itself40 to 60%The part every quote describes. It is also the part most teams estimate best, because it is the part they have done before.
Data migration and reconciliation15 to 25%Moving records is easy. Proving the new numbers match the old ones, to a finance team's satisfaction, through a year end, is not.
Running both systems in parallel5 to 15%Two licences, two sets of training, double entry in a few places, for as long as the cutover takes. Nobody budgets for it and everybody needs it.
Where the money goes on a modernization project Understanding the existing system takes 15 to 30 percent, the modernisation work 40 to 60, data migration and reconciliation 15 to 25, and running both systems in parallel 5 to 15. A typical project, by share of cost 22% 50% 20% The first and last bands are the ones missing from most quotes. Understanding the existing system 15 to 30% The modernisation work 40 to 60% Data migration and reconciliation 15 to 25% Running both in parallel 5 to 15%
The two bands most quotes leave out sit at opposite ends of the project, so neither shows up when you compare the middle.

Those shares come from how these projects are actually shaped rather than from a price list, and they are useful mainly as a test of a quote you have been given. If a proposal puts almost all of its hours in the middle row, ask who is paying for the first and the last, because somebody will.

The first row is the one worth defending. Reading an undocumented system is unglamorous and it is where the surprises live: the report that three people depend on and nobody mentioned, the integration into a system the vendor forgot existed, the rule that is wrong but load bearing. Every hour spent there removes several from the end of the project, which is also the most expensive place to find a surprise.

Does Dynamics GP end of support mean we have to modernise?

Dynamics GP end of support gives you a dated deadline, not a requirement to rewrite. Microsoft ends Dynamics GP support on 31 December 2029, with security patches continuing to 30 April 2031. That is enough time to plan properly, and enough time to waste if the decision keeps moving.

This is the clearest example of a deadline driving a modernisation decision, and it is worth stating precisely because several pages ranking for modernisation terms still print the wrong date. Microsoft originally announced 30 September 2029. In its January 2025 lifecycle update it moved the date to 31 December 2029, so customers could close a full fiscal year of payroll and tax obligations rather than cutting over mid quarter. Security updates continue until 30 April 2031. The source is Microsoft's own Dynamics GP documentation and its end of support announcement, not a reseller summary.

The three month shift matters more than it sounds. A finance team cutting over on 1 January starts a clean fiscal year in one system. A team cutting over on 1 October runs two general ledgers through a quarter and a year end simultaneously, which is where reconciliation projects go wrong.

What the deadline does not tell you is which way to go. Business Central is the obvious path and it is not the only one, and for manufacturers the decision is rarely about the general ledger at all. It is about the eleven spreadsheets around the ERP that hold the scheduling, the quality records and the customer specific pricing, none of which migrate automatically and most of which were built because the ERP could not do that job in the first place. Those are the parts to specify before choosing a destination, because they decide how much of the migration is configuration and how much is development.

If you are on Dynamics GP and running production, the useful first step is not a demo. It is an inventory of everything attached to GP: every export, every spreadsheet, every report someone built, every integration. That document is what makes the rest of the decision cheap, and you can write it without hiring anyone.

Why do application modernization projects fail?

Five failure modes account for most of it: a big bang cutover with no way back, no owner on the business side, preserving bugs as features by accident, modernising the part that was not hurting, and fixing scope before anyone has read the code.

Failure modeWhat it looks likeWhat prevents it
Big bang cutoverThe whole system switches on one weekend. When something is wrong on Monday there is no way back, because the old system has already been fed a weekend of transactions it cannot un-see.Cut over one workflow at a time, with the old system still authoritative until the new one has matched it for a full cycle.
No owner on the business sideEngineering asks what a field means. Nobody can say. The question goes to a committee, the committee defers, and the project waits.Name one person who answers questions about what the system should do. Not a committee. A person, with time allocated.
Preserving bugs as featuresA calculation has been wrong since 2011 and three downstream reports now depend on the wrong answer. The rewrite fixes it and the month end numbers move.Find the discrepancies during discovery, decide deliberately which to preserve, and tell finance before the cutover rather than after.
Modernising the part that was not hurtingThe database gets rebuilt because it is old. The thing costing twelve hours a week is still a spreadsheet nobody mentioned.Start from the hours, not the architecture. Ask what people do by hand and why.
Scope set before anyone read the codeAn estimate produced from a feature list, signed, and then discovered to be wrong in week three.Spend two weeks in the system first and re-estimate after. An estimate made before anyone reads the code is a guess wearing a suit.

The third row is the one people do not see coming. A system that has been running for fifteen years has been wrong about something for most of that time, and the business has quietly built around the wrong answer. A faithful rewrite reproduces the bug. A correct rewrite changes numbers that finance has been reporting for a decade. Neither is obviously right, and the decision belongs to the business rather than to engineering, which means it has to surface during discovery rather than during the cutover weekend.

Should you rewrite all at once or replace it piece by piece?

Piece by piece, in almost every case. Route one workflow at a time through the new system while the old one stays authoritative, and keep the ability to switch back until the new path has matched the old for a full business cycle. A single cutover weekend removes that option exactly when you need it.

The incremental approach is usually called the strangler pattern, after the fig that grows around a tree until the tree is gone and the fig is holding the same shape. The new system wraps the old one, takes one responsibility at a time, and the old system shrinks until nothing is left of it. It is slower on paper and faster in practice, because every step is reversible.

What makes it work is the parallel period. For one full cycle, usually a month and sometimes a quarter, both systems process the same work and somebody compares the outputs. The comparison is tedious and it is the entire point: it is how you find the calculation that has been wrong since 2011 before it is the only calculation you have. Teams under deadline pressure cut this period first, and it is the last thing that should go.

There is one honest exception. When the old system is so unstable that keeping it running through a parallel period costs more than the risk of a clean break, a single cutover is the lesser evil. That is rarer than it is claimed to be, and the claim usually comes from whoever is behind schedule.

What should you own when the project is finished?

All of it: source code in your repository from the first commit, infrastructure in your cloud account, data exportable in a documented format, the decisions written down, and every third party account in your name. If leaving a vendor means rebuilding rather than changing a password, you did not own it.

WhatWhere it should liveWhy it matters
Source codeIn your repository, from the first commitNot transferred at the end, not held until a final invoice clears. Assigned as it is written.
InfrastructureIn your cloud account, under your billingIf the environment lives in a vendor's account, leaving means rebuilding rather than changing a password.
DataYours, exportable, in a documented formatIncluding the intermediate tables. A system you cannot export from is a system you cannot leave.
DocumentationThe decisions, not just the APIWhy a rule exists is worth more in three years than what a function returns.
CredentialsEvery account in your nameDomains, certificates, third party services. The quiet form of lock in is an account nobody but the vendor can log into.

No vendor page raises this, because the honest answer removes the lock in that makes the next renewal easy. Ask it before signing rather than at the end. The answer is a contract clause, not a reassurance in a meeting, and the test is simple: if you ended the relationship on a Friday, what would you have on Monday?

The quiet version of lock in is not code, it is accounts. A certificate renewing on a vendor's card, a domain in a vendor's registrar account, a cloud project under a vendor's billing. Each one is a small thing that becomes a large thing on the day you want to leave.

How do you choose an application modernization company?

Compare how they decide rather than what they offer. Every vendor lists the same application modernization services, so the list tells you nothing. What separates them is whether anyone reads your code before quoting, whether they will recommend something smaller, and what you own when it ends.

The first page of this search is a wall of near identical service lists. Assessment, rehosting, replatforming, cloud migration, API modernisation, post migration support. Every firm offers all of it, which means the list cannot help you choose, and the comparison most buyers run, matching capabilities against a requirements document, compares nothing at all.

Ask every vendorWhat the answer tells you
What did your last three discovery phases recommend?If every one of them recommended the largest available project, you are talking to a sales process rather than an assessment. Ask how often they have told a client to do nothing.
Who reads the existing code, and when?If the answer is after the contract is signed, the estimate in front of you was produced without anyone looking at the system it describes.
What happens to the old system during the migration?You want to hear that it stays authoritative until the new path has matched it. If the answer is a cutover weekend, ask what the rollback plan is, and listen for whether one exists.
Which parts are you not proposing to change?A vendor who cannot name the modules they intend to leave alone has not looked closely enough to know which ones are fine.
What do we own on the day we stop paying you?Code, infrastructure, data, accounts. The answer belongs in the contract, and a vague answer here is the most reliable warning sign on this list.

There is a structural problem worth naming. A legacy system modernization project pays a vendor more than the integration that would often have solved the same problem, and far more than the honest recommendation to leave the system alone. Nobody on this results page is lying to you, but almost every firm on it has a financial reason to prefer the larger answer, and so do we. The only defence available to you is asking what they recommended last time and how often the recommendation was small.

On fixed price against time and materials. A fixed price for work nobody has scoped is not a protection, it is a bet, and the vendor prices the bet by padding or by narrowing the scope until the overruns become change requests. Fixed price is right for a defined first phase after discovery. It is not right for a whole modernisation programme quoted from a feature list, and a firm willing to quote that way is telling you something about how the rest will go.

On size. The large consultancies on this page are genuinely good at mainframe estate programmes with their own governance structures. If you are a two hundred person manufacturer with one system and no internal platform team, that machinery is expensive and most of it is not aimed at you. Ask who specifically will be in your repository, how many other clients they are on this quarter, and whether that is the same person who will be there in month five.

On references. Ask for a client whose project changed shape partway through, not the one that went perfectly. How a firm handles the week it discovers the undocumented integration is the thing you are actually buying, and that story is never in the case studies.

What is included in application modernization services?

Assessment of the existing system, a migration plan, the modernisation work itself, data migration with reconciliation, a parallel running period, and handover. The two that decide whether the project succeeds are the first and the fifth, and they are the two most often cut when a deadline tightens.

Assessment. Reading the code, mapping the data, and interviewing the people who use the system daily. The output should be a document you own and could hand to a different firm. If an assessment produces only a proposal, it was a sales exercise.

The migration plan. Which approach for which module, in what order, with the dependencies named. The order matters more than people expect: moving the module with the most integrations first means debugging everything at once.

The modernisation work. The rehosting, refactoring or rebuilding itself. This is the part every description of application modernization services covers well, and the part that usually goes closest to plan, because it is the part the vendor has done before.

Data migration and reconciliation. Moving the records is a week. Proving the new totals match the old ones, to a finance team's satisfaction, across a year end, is a quarter. Budget for the proof rather than the move.

The parallel period. Both systems running the same work while somebody compares the outputs, for a full business cycle. This is where the wrong calculation from 2011 surfaces, and it is the first thing cut when a date gets tight. Protect it.

Handover. Documentation of the decisions rather than the functions, credentials in your name, and a period where your own team makes changes with the vendor watching rather than the other way round. A handover that is a zip file and a final invoice is not a handover.

What is usually not included, and should be discussed before signing: the licence overlap while both systems run, the training time for the people whose daily work changes, and the first three months of small fixes after go live, when the system meets edge cases that discovery did not reach. None of those are hidden costs exactly. They are simply costs that nobody put in the proposal, and they land on the same budget.

How does Voliom run an application modernization project?

Two weeks reading the system and counting the manual hours, then a re-estimated plan with a fixed scope for the first phase, then one workflow at a time with a weekly demo and the old system authoritative until the new one has matched it for a full cycle.

Discovery, two weeks, paid and fixed price. We read the code, map the data, interview the people who use it and count where the hours actually go. The output is a document you own and can take to anyone: what the system does, what is attached to it, what is costing you, and what we would do about it. Roughly a third of the time that document recommends something smaller than modernisation, which is a result rather than a failure.

Re-estimate after discovery, not before. Any number produced before someone has read the system is a guess. We give a range during the first conversation, say what moves it, and replace it with a fixed scope for the first phase once we know what is in there.

One workflow at a time, with a demo every week. You see working software weekly, in your own environment, not a status report. The old system stays authoritative until the new path has matched it through a full cycle, and the switch back stays available until you decide you no longer want it.

Your repository from the first commit. Code, infrastructure and accounts in your name as the work is created. If you want to continue with your own team after the first phase, that is a normal ending rather than a difficult conversation.

FAQ

Common questions

What is an application modernization company?

An application modernization company updates software a business already relies on so that it stays supportable, by rehosting, replatforming, refactoring, rearchitecting, rebuilding or replacing it. Which of those is right depends on what is costing the business money, and the honest answer is sometimes to leave the system alone and connect it to something else instead.

How long does application modernization take?

A single workflow moved off a legacy system is commonly six to twelve weeks. A full migration with data reconciliation and a parallel running period usually runs six to eighteen months, most of which is not writing code: it is understanding the existing behaviour and proving the new numbers match the old ones.

How much does legacy application modernization cost?

Scope decides it, so any figure before a conversation is a guide. The structure is consistent: 15 to 30% understanding the current system, 40 to 60% the modernisation work, 15 to 25% data migration and reconciliation, and 5 to 15% running both systems in parallel. A quote missing the first and last of those will overrun.

Should we modernise our legacy system or replace it with a product?

Replace when the system does what every company in your industry does the same way, such as payroll or the general ledger. Modernise when the system encodes how you compete, because a product will flatten that to match your competitors. Many systems contain both, so the answer is usually different for different modules.

When does Dynamics GP support end?

Microsoft ends Dynamics GP support on 31 December 2029, with security patches continuing until 30 April 2031. The date moved from 30 September 2029 in Microsoft's January 2025 lifecycle update so customers could close a full fiscal year. Several third party pages still print the older September date.

Is it safer to rewrite everything at once or migrate gradually?

Gradually, in almost every case. Route one workflow at a time through the new system while the old one stays authoritative, and keep the ability to switch back until the new path has matched the old for a full business cycle. A single cutover weekend removes that option at the moment you are most likely to need it.

Do we own the code after modernization?

Yes, from the first commit, in your repository, with infrastructure in your cloud account and every third party service in your name. Ownership should be assigned as the work is created rather than transferred at the end, and it belongs in the contract rather than in a reassurance.

Can you work with the legacy system we still depend on?

Yes, and that is the usual starting point. Most engagements begin with the old system still running everything, because the alternative is a cutover before anyone understands what they are cutting over. We read it, document the behaviour, and move work across one piece at a time.

What if modernization is not what we need?

Then we say so. About a third of our discovery engagements end by recommending something smaller, usually an integration that removes the manual copying between two systems that both work fine. That costs a fraction of a modernisation project, and we would rather deliver it than sell you a rewrite you did not need.

Keep exploring

Related services

Let's talk

Tell us what you're building.

Get a free 30-minute strategy call. You'll leave with a clear plan, a realistic estimate and our honest opinion, whether or not you work with us.