A note on the examples: many of my clients are in the middle of valuations or are actively doing business. To protect their brands and their investors, I replace names and industries with generic labels like Company A and Company B.
Your software works, mostly. But it was built a few years ago, and the tools it’s made from keep moving forward. At some point, the company behind those tools stops providing fixes for the old version.
An application modernization consultant gets you onto a supported version before that happens, without breaking what your customers use. This post explains the job in plain words, gives you dates you can check yourself, and lists what to ask before you hire anyone.
What “modernization” means
Modernization means bringing software up to current versions of the tools it’s built with, and tidying its structure where needed, so it can be fixed, secured and extended.
Think of renovating a house. If the foundation is sound, you keep it and replace what’s worn out. If the foundation is cracked, patching the walls won’t help. Part of a consultant’s job is telling you which house you have.
The dates you can check
My clients’ applications are built with two tools, .NET and Angular. Both publish how long each version is supported.
.NET: Microsoft says its long-term releases get free support and patches for three years, and its standard releases for two. .NET 8 and .NET 9 both reach the end of support on November 10, 2026. .NET 10 is supported until November 14, 2028.[1] A “patch” is a fix, including security fixes. Microsoft’s page says that using a version after support ends may put your applications and data at risk.
Angular: Angular says each major version is typically supported for 24 months. For the first 12 months it gets regular updates and fixes. For the next 12, only critical fixes and security patches.[2]
If you don’t know which versions your software runs on, that’s the first question for your team. Ask them to write the version numbers on one page, and compare them with these dates.
Why the order of the updates matters
Angular’s own guidance for updating across several versions is to take each update one version at a time.[2] Skipping steps is the risky way to do it.
Company A shows what a gap looks like. Its app was five Angular versions behind, and the team was also writing Angular as if it were plain web pages. The lead engineer had told the owner the app couldn’t be stabilized, and was rewriting it from scratch.
I spent a month fixing bugs and stabilizing the app that already existed, and upgraded it to the current version. As the app stabilized and new features started shipping without bugs, the owner let the other engineers go. Engineering cost fell from $48K to under $9K a month, and today the app is managed for under $4K.
When modernizing isn’t enough
Sometimes repair costs more than a rebuild. Company B had spent about $1.3M on two versions of its software, and both lacked a sound design underneath. Repairing the second version would have cost more than rebuilding it, so I rebuilt it over 14 months, keeping about a quarter of the existing code. Maintenance dropped below $8K a month, then to under $2K.
I wrote about how to tell which situation you’re in in “Repair or rewrite? How to decide.”
Why waiting costs money
CISQ, the Consortium for Information & Software Quality, was co-founded by Carnegie Mellon University’s Software Engineering Institute and the Object Management Group, a software standards body, and it develops standards for measuring software quality from the source code. Its 2022 report estimates that poor software quality cost U.S. organizations at least $2.41 trillion that year, including about $1.52 trillion in what it calls technical debt.[3] Technical debt is the cost of fixing the shortcuts and outdated parts left in software.
At the size of your company, that shows up as slower changes and a bigger monthly bill.
Questions to ask any modernization consultant
1. “Which versions do I run, and when does support end for each?” A consultant should be able to answer from the vendor’s published dates, not from opinion.
2. “In what order will you update them, and will my software keep working between steps?” Updating one step at a time lets you see the software working at each stage.
3. “How will I know whether to repair or rebuild, and what does each cost?” Ask for both numbers, with a timeline for each.
4. “Who will do the work, and will I own everything?” Ask to talk to the person who will be in your software. Your source code, hosting and accounts should be in your name.
5. “How do you bill, and what will it cost?” I bill hourly, and you set a weekly hour cap, so there are no surprise invoices. A full-time rescue runs about $9,500 a month, and most projects are stable within 1 to 3 months. After that, maintenance usually costs a fraction of that.
What the first call covers
I work fully remotely with U.S. companies of 1 to 10 people, and I’ve built on .NET since 2009 and Angular since 2019. On a free 15-minute call, tell me which versions you run, if you know. You’ll hear what’s at risk and what it would take to fix.
If your software is getting old and you’re not sure what to do, book a free 15-minute call.
Sources
The Company A and Company B examples come from my own work.
- Microsoft, “.NET and .NET Core support policy.” https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core
- Angular, “Versioning and releases.” https://angular.dev/reference/releases
- Herb Krasner, The Cost of Poor Software Quality in the US: A 2022 Report, Consortium for Information & Software Quality (CISQ), 2022. https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2022-report/
