Most owners don't set out to start a software project. It builds up gradually. The Friday report takes half a day. New hires need three weeks to learn the quoting screen. One person, usually whoever has been there longest, gets a call every time something breaks. If you're trying to figure out how to modernize legacy software as a small business, the answer is rarely "throw it all out and start again." Legacy software modernization is usually a series of smaller, staged decisions.
How a small business can modernize legacy software without a big-bang rewrite
Here's the situation we see most often at 10–100 person companies. The old system still runs. Orders go in and invoices come out. Around it sits a ring of spreadsheets, copy-paste between screens, CSV exports emailed to accounting, and workarounds that only make sense if you know the history.
Modernizing can mean many things:
- Documenting and securing what you have
- Building a web dashboard on top of the old database
- Moving one workflow to an off-the-shelf tool
- Rebuilding one module at a time while the rest keeps running
A full rewrite is one option out of five, and usually not the first one to consider.
There's also a timely reason to look now. Several Microsoft support milestones landed this month. If your old system depends on a specific Windows or Office desktop setup, it deserves a review. That calls for a calm look at your setup, not panic. Details are below.
What counts as legacy software for a small business?
"Legacy" doesn't just mean old. It means software that has become risky or expensive to keep. It might be hard to support, hard to connect, tied to an old operating system, poorly documented, or built around how the business worked a decade ago.
In smaller companies, that usually looks like:
- A Microsoft Access database running order entry, inventory or scheduling
- An Excel workbook full of macros that calculates pricing or prepares payroll
- A PHP or classic ASP customer portal built in the 2000s
- A Windows desktop app written in VB6 or .NET Framework by a contractor who's long gone
- An ERP or CRM whose vendor stopped updating it, or was acquired and shut it down
- A vendor system with no API, where the only way to get data out is a manual export
- An internal admin tool built by a former employee who documented nothing
None of these are embarrassing. They got you here. The question is whether they'll get you to the next stage.
Signs your legacy software needs modernizing
Your team enters the same data in more than one place
A customer order gets typed into the old system, then into QuickBooks, then into a shipping spreadsheet, then summarized in an email. Every re-entry is a chance for a wrong quantity, a missed discount or a late follow-up. It's also the kind of work good staff quietly resent.
It doesn't connect to the tools you use now
Your team probably uses a modern accounting package, an online store, a CRM and maybe a helpdesk. The old system talks to none of them, so you rely on CSV imports that break whenever someone adds a column.
Often the fix isn't replacement. It's building an API or integration layer so the old system can share data with everything else.
Only one person knows how it works
Key-person risk is the most underrated threat in small-business software. The only person who understands the system might be a long-time office manager, a semi-retired developer or a one-person vendor. If so, you're one resignation, illness or retirement away from a serious problem.
Maintenance costs rise but nothing improves
Spending money to keep something alive is different from investing in something that makes the business better. Your yearly spend on patches, emergency fixes and vendor support may keep climbing while the system does exactly what it did five years ago. If so, you're paying more every year for something that's falling further behind.
Security, compliance or support deadlines are closing in
Here's where the main Microsoft dates stand as of this month. Check them against Microsoft's official lifecycle and ESU documentation, or with your licensing reseller, before you make purchasing decisions.
- Windows 10 Extended Security Updates (ESU), year one: commercial coverage ended on 13 October 2026.
- ESU year two: runs to 12 October 2027. Commercial ESU is cumulative. If you start in year two, you generally need to pay for prior-year coverage as well. Microsoft's published commercial list price for year two is US$122 per device, subject to licensing channel and region. The free consumer extension doesn't cover managed business devices.
- Office 2021 and Office LTSC 2021: reached end of support on 13 October 2026.
- Microsoft 365 Apps on Windows 10: security updates are scheduled to continue until 10 October 2028.
Some dependencies now have an end date. Examples include a desktop app that only runs on a particular Windows build, or an Access front end that depends on Office 2021. Add customer data you're obliged to protect, and the "it still works" argument gets weaker every quarter.
Five ways to modernize legacy software, from smallest to largest
The enterprise guides talk about "rehost, replatform, refactor, rearchitect." In plain terms, you have five choices. The budgets below are planning ranges before tax. They're quoted in CAD or USD depending on the vendor and location.
| Option | What it means | Planning range | Disruption | Rough timeline | Fits when | Doesn't fit when |
|---|---|---|---|---|---|---|
| 1. Keep | Secure, back up and document it | $3K–$10K | Very low | 2–4 weeks | Stable system, not blocking growth | Workflow is changing fast |
| 2. Wrap | Add an API, dashboard or portal around it | $15K–$80K | Low | 6–12 weeks | Core works, but data is trapped | Underlying data is unreliable |
| 3. Move | Shift the database or server to cloud/VPS | $10K–$50K | Low–medium | 3–8 weeks | Slow access, weak backups, aging server | The app itself is the problem |
| 4. Replace with SaaS | Move a standard workflow to an off-the-shelf tool | Licences + setup + migration | Medium | 1–4 months | Your process is fairly standard | Your process is your edge |
| 5. Rebuild in phases | Replace one module at a time | $40K–$120K per workflow | Medium, spread out | 3–4 months per phase | Custom workflow is holding you back | No budget beyond phase one |
Timelines and budgets vary with scope. Treat these as starting points for a conversation, not quotes.
Option 1: Keep, document and reduce the biggest risks
This is for systems that are ugly but stable. The basic steps:
- Set up tested backups, and restore one to prove it works.
- Lock down who has admin access.
- Write down how the system works, where it's hosted, what it depends on and who to call.
- Map which spreadsheets and tools feed into it.
- Draft a simple disaster recovery plan.
This is the cheapest short-term move, and everyone should do it regardless of what comes next. It's not a growth strategy, though. It buys you time to decide properly.
Option 2: Wrap the old system with an API or dashboard
This is the most overlooked option, and often the best value. The core system stays in place, and you build what's missing around it. That could be:
- A reporting dashboard that pulls live numbers
- A customer portal, so clients stop emailing for order status
- An API that syncs orders to your accounting software automatically
We call this building the missing 30%. It's a rough way of describing the part of your workflow that existing tools don't handle, which is where the spreadsheets live. Staff barely notice the change, except that the copy-paste work disappears.
Our web apps and internal dashboards work often starts here. If you're weighing a portal specifically, see our breakdown of customer portal development costs in Canada. Good UI/UX design matters here too, because a new screen only saves time if staff find it easier than the old one.
Option 3: Move the database or infrastructure
Sometimes the application is fine but its environment is the problem. Think of a server in a back closet, a shared drive that crawls over VPN, or backups on a USB stick.
Moving the database to a managed server can improve speed, remote access and reliability without touching how people work. So can migrating an Access back end to PostgreSQL or SQL Server. Our cloud setup and migration for old systems covers this. For smaller workloads, managed VPS hosting with daily backups is often enough, or a VPS setup and hardening engagement.
Option 4: Replace part of the workflow with SaaS
If your process for invoicing, helpdesk tickets or basic CRM is like everyone else's, don't build it. Buy it. A modern accounting, inventory or helpdesk tool will be cheaper to run and better supported than anything custom.
Be honest about the gaps, though. In practice, SaaS often covers the standard parts of a process well. The gaps are where workarounds return: special pricing, unusual approvals, industry-specific steps.
Plan for integrations or small custom modules to close those gaps. You can also look at tailored options like ERP systems for inventory, finance, HR and operations and custom CRM development.
Option 5: Rebuild the system in phases
When the workflow is genuinely custom and the old system is blocking growth, a rebuild makes sense. Do it in phases, not all at once.
Software architects often call this the "strangler fig" approach, after a vine that slowly grows around a tree. Here's how it works:
- You build the new quoting module and route quoting to it. Everything else stays on the old system.
- You do the same for order intake, then inventory.
- The old system shrinks one module at a time until you can switch it off.
At no point does the business depend on a single risky launch day.
Keep, wrap, replace or rebuild? A decision table
| Your situation | Keep / document | Wrap / integrate | SaaS | Phased rebuild |
|---|---|---|---|---|
| Workflow is mostly standard | Short term only | Possible | Best fit | Rarely worth it |
| Workflow is a competitive advantage | Short term only | Good | Poor fit | Best fit |
| Old system has no API | Doesn't solve it | Best fit | Possible | Good |
| Database is messy | Doesn't solve it | Clean up first | Clean up first | Good, cleanup built in |
| Staff can't stop using it during business hours | Good | Best fit | Needs careful cutover | Good if phased |
| Security risk is high | Do immediately | Partial fix | Good | Good |
| Budget is limited | Best fit | Good | Good | Start with one phase |
| You need customer-facing access | Poor fit | Best fit | Possible | Good |
Short version:
- Keep and document first.
- Wrap when the data is trapped.
- Use SaaS for standard processes.
- Rebuild in phases when your workflow is what makes you different.
What it costs to modernize legacy software for a small business in 2026
Published ranges vary widely:
- XB Software puts small apps at $30K–$70K.
- AppVerticals says $50K–$150K.
- Tkxel suggests $40K–$80K per phase, over three to four phases, for a 10–100 person business.
- Aimprosoft admits quotes can differ tenfold.
That spread is why we start with a written scope. It spells out what's included, what isn't, and the assumptions behind the price and delivery date. Where the scope is clear, you get a fixed price and a realistic launch date. Where it isn't, we'll say so and scope a smaller first phase instead. Without that, you're comparing guesses.
Typical budget ranges by approach
These are planning ranges for businesses with 10–100 staff. They're before tax, in CAD or USD depending on the vendor and location. They're not quotes.
- Risk audit and documentation: $3K–$10K
- API wrapper or reporting dashboard: $15K–$45K
- Customer or admin portal on top of existing data: $25K–$80K
- Cloud or database move: $10K–$50K
- Phased rebuild of one workflow: $40K–$120K
- Full custom system for a 10–100 person business: $100K–$300K+
For more context on rates, see our guide to custom software developer costs for small businesses.
What drives the quote up or down
- Data cleanup: duplicate customers and inconsistent product codes take real hours to fix.
- Integrations: each connected system adds work, especially systems with poor or no APIs.
- Users and roles: three internal users are simpler than staff, customers and vendors with different permissions.
- Reporting: a dozen custom reports can be a project of their own.
- Offline or mobile needs: field staff and warehouse scanners add complexity. See our mobile app development work and our guide to what an app costs a small business.
- Compliance: audit trails, data residency and access logging all cost something.
- Old code quality: readable code can be reused, and spaghetti code can't.
- Access to the people who know the work: if your experts can give us a few hours a week, discovery goes faster and costs less.
Modernization cost vs the cost of doing nothing
Doing nothing isn't free. The cost just shows up somewhere other than an invoice. Tally it up roughly:
- Hours per week spent on re-entry and copy-paste, multiplied by loaded hourly cost
- Errors that cost money: wrong shipments, missed price increases, billing disputes
- Follow-ups that slipped
- Time lost when the system or server goes down
- Overlapping software licences
- How long new hires take to get productive
- How much of the business depends on one person being available
If two staff each lose five hours a week to manual work, that's over 500 hours a year. Put in your own numbers, and the case usually becomes clear one way or the other.
A six-step modernization plan that keeps the business running
Step 1: Audit the system and map the workflow
List every screen, report, user, integration, database, server, device and permission level. Note the pain points.
Then sort features into three buckets: must stay, can change and can be retired. Most systems carry features nobody has used in years.
Step 2: Capture the business rules nobody wrote down
This is where most legacy projects get hurt. The old system often hides years of rules in its code. Other rules live only in people's heads:
- "Customer X gets net-60 and free freight over $2,000."
- "Orders over $10K need the owner's approval."
- "When stock goes negative, Maria adjusts it on Friday."
To find these rules:
- Watch the work happen. Sit with staff for a day, because interviews miss what people do on autopilot.
- Ask about exceptions. "What happens when a customer returns half an order?" uncovers more than "walk me through an order."
- Go through the spreadsheets. Every side spreadsheet is a rule the system doesn't handle.
- Check every report against its logic. If a total doesn't add up the obvious way, there's a hidden rule.
- Read the code where it exists, especially pricing and validation logic.
Write each rule down and get the person who owns it to confirm it. Then turn it into a test the new system must pass before cutover.
Step 3: Choose the smallest useful first release
Pick one workflow with visible payback. Good candidates are quoting, order intake, a customer portal, inventory lookup, a reporting dashboard or follow-up automation. A first release that saves hours in week one builds trust for phase two.
Step 4: Build in sprints and show working software early
We work in short sprints and show working software at the end of each one, not a slide deck at the end of the project. Your team clicks through real screens and spots the missing rule or the awkward step. We fix it while it's still cheap to fix. Problems turn up in week three instead of on launch day.
Step 5: Run old and new systems side by side
For a period, both systems run. There are two common ways to do this:
- Sync: data flows between the old and new systems.
- Pilot: the new module handles one slice of work, such as one location, one product line or a few pilot users.
Feature flags let us turn new functionality on for some people and not others. Backups are taken before every step, and there's a written rollback plan. If something goes wrong, you switch back instead of scrambling.
Step 6: Train, cut over and keep improving
Small teams don't need a training program. They need a one-hour walkthrough, short written procedures and someone to call.
Plan a support window after launch for questions and fixes. Keep a backlog for the improvements people request once they're using the system daily.
Data migration: where legacy projects succeed or fail
Data loss is avoidable. It just takes planning. The usual problems are predictable:
- The same customer entered three times with slightly different names
- Product codes that changed format in 2017
- Thousands of inactive records nobody wants to bring over
- Fields that used to be optional and are now half-empty
- Critical data that lives in spreadsheets outside the system entirely
Here's the process that works:
- Back up everything first.
- Agree on cleanup rules. Decide which duplicate wins and what counts as inactive.
- Run sample imports on a subset of the data and check them.
- Do a full test migration and reconcile it. Record counts, invoice totals, open balances and stock levels should match between old and new.
- Get sign-off. A named person on your side approves the result before the real cutover.
AltexSoft covers the technical side well if you want more depth.
Can AI make legacy modernization cheaper?
It can make parts of it cheaper. AI tools are useful for:
- Reading unfamiliar old code
- Drafting documentation
- Generating tests
- Converting simple code patterns
- Flagging data problems like likely duplicates
They don't replace discovery, business-rule capture, architecture decisions, security review or testing with real users. An AI can translate a VB function. It can't tell you that the function exists because of a deal your founder made with a supplier in 2011.
There's a longer-term benefit too. Clean, connected data is what makes useful AI automation for manual workflows possible later. Modernizing well is often the first step toward it.
Funding, grants and tax credits in Canada and the US
None of this is tax or legal advice. Treat it as a starting point for a conversation with your accountant.
Canada: CDAP. The Canada Digital Adoption Program (CDAP) is closed. It shouldn't be treated as available funding. Confirm the current status of any federal program on the Government of Canada website before relying on it. For current options, see our guide to funding for custom software development in Canada.
Canada: SR&ED. SR&ED is often mentioned but rarely fits routine modernization. Configuration, standard engineering and applying known solutions generally don't qualify. Work that resolves a genuine technical uncertainty may qualify, such as an integration problem with no documented solution.
The enhanced federal rate for Canadian-controlled private corporations is 35%. It applies to eligible expenditures up to applicable limits, subject to phase-outs and current CRA rules. Don't budget around SR&ED unless a qualified advisor confirms eligibility for your specific project.
US: Tax treatment of software development costs has changed in recent years and may change again. Check current federal rules and any state incentives with your accountant before budgeting around them.
When custom software is the right answer
Custom is the right call when:
- Your workflow is unique, and that difference is part of why customers choose you
- The missing 30% creates a measurable cost in hours, errors or lost sales
- You need portals for customers, vendors or field staff
- Several tools need to work together and none of them is the obvious centre
- SaaS would force your team into worse workarounds than they have now
For this kind of work, we build:
- Internal tools
- Customer portals
- Admin dashboards
- APIs and integrations
- SaaS products
- Phased legacy replacements
We typically use Next.js, React, Node.js, TypeScript, Laravel or Python on PostgreSQL.
You can read more about our approach to custom software development for legacy modernization or browse Eskore case studies. If you're not sure which option fits, a technology strategy and modernization assessment is a sensible place to start.
What to prepare before a modernization scoping call
You don't need a spec. Bring what you have:
- Screenshots of the main screens
- Two or three sample reports people rely on
- A list of users and what each role does
- A sample data export, if you can get one
- The tools the system connects to, or should connect to
- Where it's hosted: server details, OS version and Office dependencies
- Your top five pain points
- Features that absolutely must stay
- Any hard deadlines, such as Windows upgrades, a vendor contract ending or a busy season
- A rough budget range
- Compliance or privacy concerns
If you're comparing partners, ask each one to show you working software from a past project and an example of a written scope. How they handle unclear requirements tells you a lot. Our guide on how to choose a custom software developer for your small business has more questions to ask.
The bottom line on modernizing legacy software
To modernize legacy software, a small business needs a sequence of sensible decisions, not one big gamble. Secure and document what you have, wrap it where data is trapped, buy SaaS for standard processes, and rebuild in phases only where your workflow sets you apart.
If you'd like a second opinion on yours, book a free 30-minute scoping call. We'll tell you honestly whether to keep, wrap, replace or rebuild. If there's work to do, you'll get a written scope with clear assumptions. Where the scope is clear, it comes with a fixed price and a realistic launch date. Either way, you'll see working software every sprint.