I was at a client's office for a straightforward integration job. The brief was simple: connect to their ERP, read some inventory data, push some updates back. An afternoon's work, maybe two.
Then they opened the ERP.
2002 called. It didn't want anything back.
Gray panels. Beveled buttons. Multiple Document Interface โ that thing where windows live inside other windows like Russian dolls, back when Microsoft thought that was good UX. A menu bar with seventeen items across the top. The font was Tahoma. I would have bet on it.
My first instinct was VB6. I was that certain.
I was off by one version. VB.NET. Custom-built in the early 2000s for this company's industry. The vendor is still alive, still selling it, still issuing updates, still charging annual maintenance. And the client has been running it continuously since installation โ which, judging by what I was looking at, was somewhere around the time we were all still burning CDs.
That's not a support contract. That's a twenty-year relationship with a codebase that peaked during the dot-com bubble.
But here's the thing
"It still runs" is a low bar to set for something that shapes how your entire business operates every day.
I wrote about this before โ the way companies get trapped by their ERP and convince themselves that staying is safer than moving. What I saw last week is what that logic produces at year twenty-plus. The software hasn't gotten worse. It's just been standing still while everything around it changed.
The vendor is still writing VB.NET patches for a 2002 architecture in 2025. That money goes toward keeping something alive โ not toward making it better. It stopped evolving a long time ago. At some point, maintenance isn't upkeep. It's just a slower way of staying stuck.
Legacy software doesn't rot. It just falls further behind every year โ while looking exactly the same.
What this tells you
If you're running software that old, the question isn't whether it works. The question is whether you've decided to stop moving. Because the software already has.
There's a version of this story that ends with a migration and a much better outcome. There's also a version where this client is still on VB.NET in 2035, still paying maintenance, still loading gray panels every morning. Both are possible. Only one of them is a choice.
๐ก First step: Open your ERP. Look at it the way a new employee would on their first day. If the honest answer is "it looks like it was designed before iPhones existed" โ it probably was. That's worth a conversation. Start here.