The short answer. Some leaders assess every part of a modernization program. Others look at the code, where AI has cut the cost, and assume the rest got cheaper too: data migration, integration changes, testing, cutover, parallel running, and retiring the old system. Their estimates come in too low. In the modernization programs I have run, that other work was the larger part of the cost.
The question matters now because vendor deadlines force these decisions inside the hold. Microsoft’s .NET 8 and .NET 9 lose support on 10 November 2026. A deadline requires a decision: upgrade, migrate, replace, or retire.
Four questions test any modernization proposal. What depends on the system? What change is required, by when, and why is the proposed option better than the alternatives? Has every line beyond the code been assessed and costed? What has to start during this hold, and is it in the plan?

Table of Contents
Research Grounding
Two published facts frame the decision.
Microsoft, 29 June 2026. Microsoft confirmed that .NET 8 and .NET 9 will reach end of support on 10 November 2026. After that date, Microsoft will issue no new security updates for either version. .NET is a common platform for business software written in the last decade, so many portfolio companies will meet this date during the hold period.
Amazon, 1 August 2024. Amazon reported that it used an AI code transformation agent to upgrade tens of thousands of production applications from older versions of Java to Java 17. Amazon estimated the savings at more than 4,500 years of developer work, compared with doing the same upgrades by hand.
Amazon’s figure is strong, and it compares AI-assisted upgrades with manual upgrades. It does not measure data migration, integration changes, customer testing, or cutover, and it does not claim to. AI tools can help with some of that work too, such as generating tests or mapping data between schemas. Those savings may be real, but they must be estimated from evidence on the program in question.
Estimates come in too low when that limit is ignored. A saving demonstrated on coding work is easy to assume for the rest of the program. The rest of the program has to be assessed on its own evidence.
The PE Translation

A vendor support deadline requires the company to deal with an unsupported component. It does not require a rebuild. Engineering has four practical options, and a program can combine them.
OPTION | WHEN IT FITS | WHAT IS USUALLY UNDERESTIMATED |
|---|---|---|
Upgrade | The application still meets the business need, and a supported version exists | Testing, and third-party libraries that have not been upgraded |
Migrate | The platform or environment has to change, but the application logic is sound | Whatever data and integrations the move touches, and parallel running |
Replace | Replacement has a stronger business case than an upgrade once transition costs and risks are included | Everything beyond the code: dependencies, data, customer cutover |
Retire | Nothing important depends on the system anymore | Hidden dependencies, and records the company must keep |

A replacement should be chosen when its business case is stronger than an upgrade’s, after transition costs and risks are included. An upgrade can be technically possible while a replacement is still the better investment because of operating cost, security, maintainability, or platform consolidation. Companies should consider retirement more often than they do.
Some companies choose a fifth course for a limited time: they keep the unsupported version running in an isolated environment with compensating security controls. That can be a reasonable decision. It is a risk decision rather than a modernization plan, so it needs an owner, an end date, and the board’s knowledge.
Two mistakes are common. The first is an unnecessary replacement. A team hears the support date and assumes it means we must rebuild, and a deadline becomes a replacement program. The second is an underpriced replacement. A team estimates the new code with AI assistance, extends the savings to the whole program, and presents an affordable number.
Both mistakes affect the operating plan. An unnecessary replacement takes engineering capacity from growth work. An underpriced replacement can overrun inside the hold or finish after the sale. The program may consume cash and engineering capacity during the hold without delivering the expected operating improvement before exit. Issue 5 described the same risk.
A buyer’s technical diligence team will review the runtime versions, vendor support windows, and modernization plan. A seller who can show the option chosen for each affected system, the reason for it, and a fully costed estimate gives the buyer less uncertainty to price.
Operator Experience
The vendor sets the deadline, and engineering has to choose the response.
When I am asked how long a system has left, I don't answer based on its age. I look at four triggers.
Vendor support for the platform it runs on. The .NET date in November is a current example.
Retirement schedules for the services it depends on. Cloud providers retire service versions on published schedules, and AI model providers retire models the same way.
The people who can still change it. A system that only one or two engineers understand has a shorter life than its code suggests. Issue 7 described how to measure that.
The next product requirement it cannot support. Some architectures cannot accept a feature on the roadmap without substantial rework.
The first two triggers are external and dated. The second two are internal, and they are usually known only to engineering.

Amazon’s report shows what AI can do for mechanical, well-bounded work such as a framework version upgrade. That matters, because a system that once looked too expensive to upgrade may now be upgraded rather than replaced.
The same tools make replacements easier to propose. AI can reduce the coding effort for a new system, so the code estimate comes in lower than it once would have. Some of those proposals will be sound. Others will be underpriced, because the estimate covers the code and the other work was never assessed.
An AI saving on the coding line of an estimate should not be applied to the other lines without evidence.
In one company I worked in, when I retired a data center and moved our databases to Azure SQL, the code changes were modest: mostly connection settings and deployment scripts. Most of the effort went into three kinds of work. The first was moving data without losing or corrupting it. The second was re-pointing every integration that customers and partners depended on. The third was running the old and new environments in parallel and agreeing cutover dates with customers.
In that program, customers had to agree to cutover dates, and the old and new environments ran side by side until they did. Other migrations are handled differently. Some are invisible to customers, and some use a scheduled outage instead of running in parallel. The lesson that applies to all of them is that the transition method, customer coordination, and validation effort each need their own estimate.
This is where a non-technical operating partner can add the most value. When a modernization estimate arrives, ask whether every line beyond the code was assessed and costed, and what evidence supports each one.
Board Question
Which of our systems need a modernization decision before the end of the hold, which option has been chosen for each, and is the full cost in the operating plan?
Four Questions to Ask Before Approving a Modernization Plan
1. Which workflows, customers, and integrations depend on this system?
The engineering lead and the business process owner answer this together. A weak answer is: we’ll discover that during migration.
2. What change is required, by when, and why is the proposed option better than the alternatives?
The platform or architecture lead answers this. A weak answer is: the vendor support date means we must rebuild.
3. Has every line beyond the code been assessed and costed: data migration, integration changes, testing, cutover, parallel running, and retirement?
The delivery lead answers this. A weak answer is that AI can rewrite the code quickly, offered in place of those estimates.
4. What work has to start during this hold, and is its full cost in the operating plan?
The CTO and the operating partner answer this together. A weak answer is that it will be the next owner’s problem.

Three Decisions
1. List every system whose vendor support ends before the planned exit
For each one, record the triggering date, the option chosen, the reason, and the owner. Any system on .NET 8 or .NET 9 reaches that point on 10 November 2026. The same check applies to other runtimes, databases, and cloud services.
2. Require every modernization estimate to cost each line separately
Ask for data migration, integration changes, testing, cutover, parallel running, and retirement as separate lines, each with its own basis. Do not accept an AI saving on the coding line as a reason to reduce the others.
3. Ask finance to assess the accounting consequences once the option is chosen
Where an affected system was capitalized, replacing it earlier than expected can mean a revised remaining life, an impairment, or expensing the unamortized balance when the replacement happens. Those are non-cash accounting effects. Keep them separate from the cash the modernization program needs.
One Number for the Next Operating Review
The number of systems whose vendor support ends before the planned exit and that do not yet have an agreed plan with an owner, a budget, and a completion date.

Each of those systems is an unresolved exposure inside the hold. We’ll upgrade it does not count as a plan until someone owns it, it is funded, and it has a date.
Board Takeaway
A vendor support deadline forces a decision: upgrade, migrate, replace or retire. Choose a replacement when its business case, including transition costs and risks, is stronger than an upgrade’s.
When a modernization estimate arrives, ask whether you assessed every line beyond the code. AI savings on coding are not evidence that the rest became cheaper.
Portco Brief is a weekly briefing for PE operating partners and portfolio company executives focused on technology, AI, and value creation. If this was forwarded to you, subscribe at portcobrief.com.
Sources
Microsoft: .NET 8 and .NET 9 will reach End of Support on November 10, 2026, and June 29, 2026.
Amazon Web Services, Amazon Q Developer just reached a $260 million dollar milestone, August 1, 2024.
