Home / Problems solved / The app nobody can maintain
Problem · The app nobody can maintain

The system that runs the business — and the one person who understands it is retiring.

It's FoxPro, or Access, or something written in-house in 1999. It works, mostly. Nobody wants to touch it, the vendor is long gone, and every ERP salesperson who hears about it quotes seven figures and eighteen months. Here's what's actually underneath that, and how it gets fixed without betting the company.

What's actually going on

It isn't really a software problem. It's a knowledge problem.

The code is rarely the hard part. The hard part is that twenty years of business rules live in it, undocumented, and the rules the business actually follows have drifted from the ones the code enforces.

KNOWLEDGE

The rules live in the code, not the manual

Pricing exceptions, the reason lot 4 is always excluded, why the report skips Fridays — encoded twenty years ago and forgotten. Replacing the system without extracting them means re-learning them from angry customers.

DRIFT

The workaround became the process

Somewhere along the way people started keying it twice, keeping a side spreadsheet, or emailing the approval. The new system has to be designed around how the work should flow, not around reproducing the old screens.

RISK

The clock is the actual problem

The system isn't failing. The person is leaving, the OS is going out of support, the database has grown past what the platform was built for. The cost of waiting is now higher than the cost of moving — that's new.

How it gets fixed

Reverse-engineer. Rebuild one module. Reconcile. Repeat.

No big bang. The old system keeps running until each new module has earned its place on real data.

01

Phase 0 — read the whole thing

AI reads every line of code, every table, every report, in days. We verify it against how the business actually uses the system and write the first real documentation it has ever had. Most of the business rules come out of this step.

02

Design the workflow

Where does the same number get keyed three times? Where does approval live in an inbox? The new module is designed around the answer — role-based screens, barcode capture, exceptions surfaced.

03

Build and reconcile

AI-accelerated build on a modern web stack. Then the new module runs beside the old one on real data until every difference has a root cause. Documented, not "fixed".

04

Cut over one module. Repeat.

The old module is retired only when the new one has earned it. Each cutover pays for the next. Tests, docs and a runbook ship with every module so anyone can maintain it.

From the ledger

An ERP our principal wrote in FoxPro — modernized twenty-five years later.

Decades ago our principal wrote a foundry consumables manufacturer's ERP in FoxPro. It has run their business ever since. They needed a path to a modern web platform without a rip-and-replace, from a partner who understood every quirk — and the conversion is piece by piece, each module replaced only when its successor is proven. Twenty-five years of institutional knowledge conserved instead of discarded.

At a forging operation, quality ran on an Access database nobody fully understood. We insisted on a Phase 0 gate — fully reverse-engineer it before writing migration code — then built module by module: customer scorecards, returns, audits, defect-to-resolution. When the scrap numbers disagreed with the legacy system, we reconciled both to root cause and documented exactly why. The portal caught a data-integrity problem the plant had lived with for years.

More entries in the case ledger →

Documentedthe first complete documentation of your system — often the most valuable deliverable on its own
Modulareach module live and earning its keep before the next is started; no big-bang cutover
Reconciledevery difference between old and new traced to root cause before the old one is retired
Maintainablemodern, ordinary stack; tests, docs, runbook. Your team or any competent shop can own it
Let's talk

What's it written in, and what does it run?

Who still understands it, and what happens if it stops. That's enough for a straight read on what the first module should be.

You'll get a straight answer and a tight scope. If we can't help, we'll tell you that too — and usually who can.

No newsletter. No drip sequence. Just a reply from us.

Got it — thanks.

We read every one of these ourselves. Expect a reply within one business day. If it's urgent, email us directly at dan.mindlin@mindlinconsulting.com.