
If your developer went quiet, your agency delivered something that doesn’t work, or you’re sitting on a codebase nobody can explain, you’re not the first founder this has happened to, and it’s more fixable than it feels right now. Software project failure is common enough to have its own research behind it: independent industry analysis has found that roughly 1 in 5 software projects are cancelled outright before delivery, and about half of the rest run over budget, miss deadlines, or ship without key features. This isn’t a rare, embarrassing situation. It’s a known, well-understood recovery process, and here’s exactly how we run it.
Key takeaway: A stalled or abandoned codebase is a recovery problem, not a write-off. The process is the same every time, secure access first, audit before quoting anything, re-scope against what’s actually there, stabilize before adding features, and ship in short, visible phases. Full rewrites are the exception, not the default.
The three situations we usually see
Before any technical work starts, we sort what you’re dealing with into one of three categories, because each one has a different recovery path.
- The developer or agency went dark. No response, no access handed over, no documentation. The code exists somewhere, but nobody can currently explain it.
- The build was delivered, but it doesn’t work. You have a “finished” product on paper, but it breaks under real usage, real data, or real users, common with rushed builds, no-code platforms pushed past their limits, or AI-generated code that looked fine in a demo.
- The relationship is still active, but stalled. The vendor is technically still around, but timelines have slipped repeatedly, costs have crept, and confidence is gone.
Each of these needs a different first move, but all three start the same way: don’t touch the code yet.
Step 1: Secure everything, before anything else
The single most common mistake we see founders make is trying to “just get someone to finish it” before securing access to what already exists. If the previous developer still has admin access to your repository, hosting, domain, or API keys, that access needs to be locked down and transferred first, not after a new team starts working.
What we help you collect before any technical review starts:
- Repository access (GitHub/GitLab/Bitbucket, full commit history if possible)
- Hosting and infrastructure credentials (cloud provider, database, environment variables)
- Third-party API keys and service accounts (payment processors, auth providers, integrations)
- Any documentation, however incomplete, specs, Slack threads, email history, the last known working state
Even fragments help. A half-written README or an old Slack thread about a known bug can save hours of investigation later.
Step 2: Audit before we quote anything
We don’t price a takeover sight unseen, and we’re honest with clients when another vendor offers a firm, final number before actually reviewing the code, that’s a reason for caution, not comfort. Nobody can responsibly estimate unknown code without opening it first.
Our audit covers:
- Architecture review, what’s actually been built, and whether the foundation is sound or needs to be partially rebuilt
- Code quality and technical debt, security issues, missing tests, fragile dependencies, anything that will actively cause problems if left alone
- Gap analysis, what was promised in the original scope versus what actually exists and works
- Infrastructure and deployment state, is there a working environment, or does one need to be rebuilt from scratch
This typically takes a few days to two weeks depending on the codebase’s size and how much documentation survived. We treat this as diagnostic work, not a sales tactic, you get a real assessment whether or not you move forward with us.
Step 3: Re-scope based on what’s actually there, not what was promised
Whatever the original vendor quoted or promised is no longer the relevant number. The only honest starting point is what actually exists in the codebase today. After the audit, we give you:
- A revised estimate to finish the original feature set, based on the real state of the code
- A separate estimate for addressing any blocking technical debt or security issues found during the audit
- A clear recommendation on whether to continue building on the existing codebase, or, in the minority of cases where it’s genuinely unsalvageable, rebuild specific modules rather than the whole product
- A phased plan, so you’re never asked to sign off on months of work before seeing anything shipped
Most codebases are more salvageable than founders expect walking in. Full rewrites are the exception, not our default recommendation, we don’t sell rewrites, we stabilize and continue.
Step 4: Stabilize before we build anything new
Before adding a single new feature, we fix what’s actively broken: security vulnerabilities, fragile dependencies, anything that would compound if we built on top of it without addressing it first. This is the step most rushed takeovers skip, and it’s the reason “quick fixes” on inherited codebases often create a second mess on top of the first one.
Step 5: Ship in phases, with visibility at every step
Founders who’ve been burned by a stalled or ghosted vendor are, understandably, wary of long silent stretches between updates. We structure the rebuild in short, visible phases, working software and clear check-ins at each milestone, not another multi-month black box.
What this process is not
- It’s not a rewrite by default. Most of the time, a meaningful portion of the existing codebase is salvageable, and rebuilding from zero wastes both the money already spent and the time it would take to replicate what already works.
- It’s not a blame exercise. We’re not interested in relitigating what the previous vendor did wrong, we’re interested in getting you to a working, dependable product from wherever you’re actually starting.
- It’s not a guess dressed up as a quote. If a takeover quote arrives before a real audit, that’s not confidence, it’s a red flag.



