the orphaned-software lifecycle
how custom software gets abandoned at small and mid-sized companies, and what it costs at each stage.
Every custom software project at a small or mid-sized business follows more or less the same arc. The shop hires someone — a friend’s nephew, a freelancer, a small agency — to build the thing nobody off-the-shelf will. It works. It ships. The team uses it every day. And then, somewhere between two and seven years in, it becomes an orphan.
We see this pattern repeatedly in construction, HVAC, restoration, landscaping, light manufacturing, and logistics shops with under 500 employees. The details change. The shape does not. Below is the lifecycle as we’ve observed it, with notes on what the business is actually losing at each stage — not just in dollars, but in the ability to keep operating the way it has been.
phase 1 — honeymoon (months 0-18)
The developer is present, responsive, and excited. Bugs get fixed in a day. Small feature requests get turned around in a week. The system is better than the spreadsheets or the off-the-shelf package it replaced. Everyone agrees this was the right call.
What’s quietly happening: the developer is building business logic into the code and database that nobody else understands. The person who hired them doesn’t notice, because they shouldn’t have to. But a year in, the system already encodes dozens of decisions about how this specific company does work — how jobs get costed, how crews get scheduled, how exceptions get handled — and those decisions live only in the developer’s head and the code.
phase 2 — dependency (months 18-48)
The system is entrenched. It’s how the company runs. But the developer has gotten busy with other clients, or has raised rates, or has grown the team in a way that means the original person doesn’t touch the code anymore. Responses now take weeks. Small fixes get bundled into quarterly releases. Larger features get quoted at prices that make the owner wince.
The business is still functional — the software still works — but a quiet accounting has started. Every friction point now has a price tag attached to it, and the owner is triaging: is it worth asking for? The list of “things we’d like to change eventually” gets longer and longer. What used to be a responsive tool is now a frozen artifact.
The cost at this stage isn’t dollars; it’s opportunity. The team can’t run a pricing experiment, can’t onboard a new customer type, can’t integrate with the new accounting package, because all of those would require changes nobody is willing or able to make. The business’s rate of learning about itself drops to zero.
phase 3 — ghost (month 48+)
The developer is genuinely gone. Maybe they took a full-time job. Maybe the agency folded. Maybe they’re alive but won’t return emails. Maybe they said “call me if something breaks” three years ago and it hasn’t yet, and everyone is terrified of the day it does.
At this stage the software is still running, often on a server in a closet nobody wants to look at. The source code may or may not be recoverable. The database is the one reliable thing — it’s still there, still writing rows, and whatever the business has learned over the last five years is sitting in its tables. But the business is now one motherboard failure or one Windows update away from a crisis.
This is also the stage where the owner starts thinking about selling the company and discovers that nobody wants to acquire a firm whose operational backbone is software that can’t be modified. Valuation takes a hit that often exceeds the entire original cost of the build.
what’s actually lost — in priority order
- the ability to adapt. You can’t change how you price, schedule, bill, or report without starting over. This kills every initiative that requires a software change, which in a modern services business is roughly every initiative.
- the institutional knowledge encoded in the system. Not the data — the data is safe — but the rules: the edge cases, the exceptions, the “oh yeah, if it’s that customer we always…” patterns. This is the irreplaceable part. Rebuilding from scratch loses it.
- resale value. Buyers discount heavily for operational software risk.
- morale. The team works around the frozen system instead of with it. Every new hire inherits a list of manual workarounds that never get removed.
- cash, eventually. A full rewrite from a new vendor typically runs 2-5x the original build cost, because the new vendor has to re-derive every business rule.
why it happens
The root cause is almost never malice. Developers age out of caring, get good jobs elsewhere, burn out, or simply outgrow small clients. Agencies grow up-market. Freelancers get a kid. The business, in the meantime, has gotten more dependent on the software, not less. The two curves were always going to cross.
The traditional answer has been “write better contracts” — retainer SLAs, source code escrow, documented handoff. These help a little, but only if the business is willing to pay to keep the developer close. Most aren’t, and so most don’t.
why now is different
For the first time, the AI layer can be the programmer. The SQL database is still the source of truth — all that institutional knowledge lives in its rows — and an AI-driven front end on top of it can be re-shaped by a conversation rather than a release cycle. That doesn’t eliminate the need for a real human operator, but it collapses the dependency on one specific person who holds the business logic in their head.
Put differently: the old lifecycle ended in phase 3 because the system had fused with one person. A newer lifecycle — where the front end is generated from the database and the business rules, and is re-generatable when those change — doesn’t have a phase 3 in the same sense. The software can still fall out of use, but it can’t get orphaned in the way that makes companies feel stranded.
what to do if you’re in phase 2 right now
- Locate your source code. Confirm somebody on your side has it, can read it, and knows what’s in it. If not, that is the first problem.
- Confirm where the SQL database actually lives and who has administrative access. In older systems this is frequently just one person; make it two.
- Run a plain dump of every table with the column names and row counts. Share it with someone who can read it. You want to know what you have before you start weighing options.
- Stop asking the old developer for new features. At this stage that money is better spent on inventory and options, not incremental band-aids.
We wrote a field guide to that last step in a separate piece. It’s the single highest-leverage action a phase-2 owner can take before making any bigger decisions.
Want to talk through this in the context of your shop? Talk to a builder. No pitch deck, no sales motion — just a conversation.