1. Home
  2. Services
  3. Legacy Modernization
Legacy modernization

Legacy software modernization while the business keeps running

ScalaCode moves ageing systems to the web, Android and the cloud one module at a time, while your team keeps using the old one. Recent work includes replacing a DOS stock terminal for RMEPOS stores and moving SHG Group's hospital storeroom handhelds from Windows to Android.

Clutch top developers awardGoodFirms reviews badge

500+ projects shipped since 2012
ISO 9001:2015 certified, Clutch 4.8/5

An old beige desktop computer and keyboard on an office desk
1,300+

clients across 45+ countries

Trusted by teams at

NikeVolkswagenSonyMcDonald'sDomino'sAirtelBudweiser
Clutch award badge

Clutch 4.8/533 verified client reviews

GoodFirms badge

GoodFirmsReviewed software partner

ISO

ISO 9001:2015Certified delivery process

GDPR

GDPR compliantData handled under EU rules

The short answer

What legacy software modernization covers

Most of the risk sits in moving people and data off a system they use every day.

What is legacy software modernization?
Legacy software modernization is the process of moving an ageing application to a supported stack, platform or hosting model while preserving the business rules and data it holds. It ranges from rehosting on the cloud to replacing the system module by module or rewriting it, and it includes data migration, integration with current systems and user training.

Related: enterprise software development, cloud and DevOps and API development.

Why modernisation stalls

Four reasons legacy projects go wrong

Each one is planned out before the first module moves.

Everything was rewritten before anyone used it

A big-bang rewrite puts all the risk on one launch date. One module moves at a time, and each one is in use before the next starts.

Business rules lived only in the old code

Rules nobody wrote down disappear in the new system. A technical audit reads the code and data model and interviews the people who run the system.

The rollback plan was never tested

An untested rollback tends to fail on the day it is needed. Migrations and rollbacks are rehearsed on copies of production data first.

Staff were handed a new system on a Monday

Adoption suffers when the new screens ignore how people work. We study current workflows, shape screens with wireframes and train staff before rollout.

Not sure which module to move first?

Describe the system, who uses it and what breaks. We will tell you where we would start and what we would leave alone for now.

Book a 30-minute modernization call
Keeping operations running

Legacy system migration without stopping the business

In most cases the old system stays in use until the new one has proved itself on daily work.

Audit before any plan

We review the code, data model and integration points, and interview the people who know the undocumented rules, before proposing an order of work.

Code→Interviews→Risk map→Phase plan

Module-by-module replacement

A routing layer sends each module's traffic to the new system as it is ready. Everything else keeps running on the old one.

Legacy→Router→New module→Retire old

Parallel run on high-risk modules

Old and new run side by side for an agreed window, and we compare their outputs before switching over.

Old+New→Compare→Cut over

Rehearsed data migration

Scripts run first on copies of production data, then in off-peak windows with a tested rollback plan. Change data capture keeps databases in sync for online moves.

Extract→Transform→Verify→Load
RMEPOS Android app main menu with price maintenance, stock take, orders, deliveries and transfer options beside a new delivery form
Case study · DOS handheld to Android

RMEPOS: an Android stock and order app for SUNMI L2S Pro terminals

ScalaCode replaced RMEPOS's DOS-based Unitech HT630 stock terminal with an Android app for rugged SUNMI L2S Pro devices. Store teams handle orders, deliveries, price checks, stock takes and transfers offline, and data syncs with the EPOS system when the device connects.

Offline-first

stock and order operations

KotlinAndroid SDKJetpack ComposeSQLite
Read the RMEPOS case study
Choosing a route

Rehost, replace in phases or rewrite

Phased replacement suits most systems that run daily operations. Rehosting and full rewrites each fit narrower cases.

Replace in phasesRehost (lift and shift)Full rewrite
How it worksOne module moves at a time while the old system keeps runningThe application moves to the cloud or new servers as it isA new system is built alongside and everyone switches on one date
Risk to operationsSpread across small cutovers, each with a rollbackConcentrated in one cutover windowConcentrated on launch day
What it fixesCode, usability, hosting and integrations, module by moduleHardware and hosting only, while the code stays as it wasEverything, once it ships
Cost profileSpread across phases, each priced on its ownLowest up front, and running costs can exceed the old hostingThe largest single budget, with nothing in use until launch
Best forSystems in daily use that the business cannot pauseStable software on hardware that is ending supportSmall systems, or code with little worth keeping
The ScalaCode team: a large group outside the office, the team at a tech expo, the engineering floor and a planning meeting
How we work

How a legacy modernization project runs

Each phase ends with software your team uses, and the audit sets how many phases the system needs.

  1. 01

    Strategy call

    30 minutes with the ScalaCode team on the system, who depends on it and what has to change.

    30 minutes
  2. 02

    Audit and phase plan

    Code, data and integration audit, user interviews and a phase plan with cutover and rollback steps, in a free discovery sprint. Large or undocumented systems can need up to 4 weeks.

    1 to 4 weeks
  3. 03

    Build phase by phase

    Two-week sprints with a demo at the end of each. Automated tests run on every change, in your repository and CI pipeline.

    2-week sprints
  4. 04

    Parallel run and pilot rollout

    Every release goes through staging first. High-risk modules run alongside the old system, then go to a pilot group before everyone else.

    Per phase
  5. 05

    Training and handover

    Staff training before rollout, runbooks and recorded walkthroughs for your IT team, and a 30-day question window.

    After each phase
Tech stack

Where we move legacy systems to

We pick the target stack on what your team can maintain after handover.

Web
ReactAngularTypeScript
Mobile and devices
KotlinJavaSwiftFlutterSUNMIZebra
Backend
.NETJavaSpring BootNode.jsPython
Data
PostgreSQLSQL ServerOracleMongoDBSQLite
Migration
DebeziumAWS DMSAzure DMS
Cloud
AWSAzureGoogle Cloud
A large group of the ScalaCode team at the entrance of the Noida head office
Since 2012

One team, 14 years of shipping

500+

projects shipped since 2012

50+

AI systems running in production

1,300+

clients across 45+ countries

14

years building software, since 2012

Client reviews

Rated 4.8/5 by the clients we build for

Verified reviews from Clutch and GoodFirms, and clients on camera.

Clutch4.8
★★★★★

33 verified reviews on Clutch

Farid Lalji of LearnArena in a video review
YouTube video reviewFarid LaljiLearnArena
Trustpilot review★★★★★
“The application was basically built from scratch, and was complicated, as the software was to be integrated with a certain Medical EHR software.”
Stephen HolmesCEO, Steve Holmes Group (SHG)Healthcare Android app integrated with a medical EHR
Clutch review★★★★★
“Their team quickly adapted and implemented updates without disrupting operations.”
AnonymousDirector, Sera PrognosticsCustom software development for a proteomic and bioinformatics firm
GoodFirms review★★★★★
“They translated complex requirements into an intuitive, scalable solution.”
Kasey McCormickBusiness Development Representative, Kurz Industrial SolutionsLegacy operations to digital workflow (software development)
Clutch review★★★★★
“They understood the business side of our requirements and often brought up solutions or ideas we hadn't considered.”
Lester ChenPartner and Head of Creators, Andreessen HorowitzCustom software for a venture capital firm
GoodFirms review★★★★★
“Scalacode delivered a secure, scalable, and efficient platform exceeding our expectations.”
Lou DiFruscioCEO, Blancco Technology GroupData sanitization platform (web development)
YouTube video review★★★★★
“In our project, we need flexibility, and ScalaCode offers that consistently.”
TomHealthMonitorNetworkNetSuite-integrated web and mobile apps
Clutch review★★★★★
“Working with ScalaCode was a rewarding experience. They brought structure, innovation, and a deep sense of partnership to the project, helping us take a meaningful step forward in how we manage and support our growing product ecosystem.”
Vishnu AnanthaUX Designer, UltiMakerCustom software and UX/UI design for a 3D printing company
Questions buyers ask

Legacy software modernization FAQs

Modernisation starts with a free discovery sprint that maps the system and the phases. Ask anything not covered here on the call.

Can we migrate without stopping the business?

In most cases, yes. The old system stays in use while modules move one at a time, high-risk modules run old and new side by side so outputs can be compared before cutover, and each data migration is rehearsed on copies of production data with a tested rollback plan. For RMEPOS, stores had to keep trading while the DOS stock terminal was replaced, so the Android app was delivered in stages.

Should we rewrite from scratch or modernise in phases?

Modernise in phases when the system runs daily operations and the business cannot pause. A full rewrite suits small systems, or code with little worth keeping, because all the risk sits on one launch date. Rehosting on the cloud fixes hardware and hosting but leaves the code as it was. Modernising one system is often the first step of a wider digital transformation.

How much does legacy modernization cost?

Modernisation is priced case by case, once a free discovery sprint has mapped the system and its phases. The size of the system, the volume of data to migrate and the number of integrations drive the cost most.

How long does a legacy system migration take?

It depends on the system. Each phase ends in software your team uses, and the audit sets how many phases there are. The audit takes 1 to 2 weeks for most systems and up to 4 weeks for large or undocumented ones. Larger programmes continue phase by phase after the first release.

What happens to our data during the migration?

Migration scripts are rehearsed on copies of production data, verified, then run in off-peak windows with a tested rollback plan. For online database moves, change data capture keeps the old and new databases in sync, so the cutover window is measured in minutes.

Nobody documented the old system. Can you still migrate it?

Yes. The audit reads the code, data model and integration points and interviews the people who run the system, so undocumented rules are written down before anything moves. On RMEPOS, the team studied the legacy workflows and EPOS data formats before designing the new app. On large codebases, AI code optimization can help map modules and dependencies during the audit.

Can you move old handheld or desktop software to Android or the web?

Yes. We replaced RMEPOS's DOS-based Unitech HT630 terminal with an offline-first Android app on SUNMI L2S Pro devices, and moved SHG Group's MEDITECH materials management from Windows handhelds to Zebra Android devices. Desktop and older web software can move to a browser-based app in React or Angular.

Will our staff need training on the new system?

Some, and we plan it into the rollout. Screens are shaped around current workflows with wireframes and mock-ups, new releases go to a pilot group first, and staff training happens before the wider rollout, as it did on the RMEPOS SUNMI devices.

Who owns the code after the migration?

You do, from the first commit. IP assignment is written into the master service agreement and NDAs are standard. We work in your GitHub or GitLab, and handover includes runbooks, recorded walkthroughs and a 30-day question window.

Working with ScalaCode was a fantastic experience, marked by their expertise and support.
Jeremy BodenhamerCEO, ShipHawk
Free 30-minute strategy call

Plan your first module in 30 minutes

  • 30 minutes with the ScalaCode team
  • Which part of the system to move first
  • What a phased plan costs and how long it takes

Book your modernization call

Takes 20 seconds