You Know This Application
It processes orders. Or calculates commissions. Or manages inventory. Or generates compliance reports. It was built between 2010 and 2018 by a developer or small team that has since moved on. It runs on a framework or language that was current when it was built and is now outdated. The documentation, if it exists, is years out of date. The test coverage is minimal or zero.
It works. Most of the time. And everyone is terrified of it.
The Anatomy of the Problem
The Risk Calculation Nobody Does
What happens if this application fails at 2am on a Saturday? Who fixes it? What's the business impact per hour of downtime?
Add the maintenance cost ($120K-$400K) to the expected downtime cost ($200K-$2.4M) to the opportunity cost of developers maintaining instead of building ($95K-$190K). The true annual cost of that one custom application: $415,000 to $2.99 million.
A modern rebuild — properly documented, properly tested, on a current framework with available talent — typically costs $80,000 to $300,000 one-time. The math is not close.
Why It Doesn't Get Fixed
The rebuild cost is visible and requires approval. The maintenance cost is invisible and distributed across budgets. The downtime cost is probabilistic — 'it might not happen this year.' The opportunity cost is unmeasurable — 'what would those developers have built instead?'
So the application persists. Another year. Another year of rising risk. Another year of declining talent availability. Another year where the rebuild gets more expensive because the gap between the old stack and the current one widens.
This is the legacy trap. And it's running in every organization large enough to have built custom software.