Software Agency Not Delivering: What to Do When Your Vendor Leaves You Half-Done
You signed with an agency and the software never arrives: constant delays, half-finished deliverables, a contact who goes quiet. Here's how to recover the project — and why the agency case is different, and more insidious, than a lone developer.
With an agency the script is different from the freelancer who stops replying. An agency that doesn't deliver usually keeps replying and invoicing while the software never arrives: they update you, they reassure you, they push the date — and meanwhile the product stays half-done. Here the problem isn't finding a person: it's a contractual and organizational problem, with different levers and different timelines. Let's look at how you recover.
If your case is instead a single developer who vanished into thin air, the sequence to follow is a different one and I wrote it here: your developer isn't responding anymore. This article is built specifically for the agency case, which is more insidious precisely because it looks under control.
Why the agency case is different (and more insidious)
With an agency you have an organization in front of you, not a person. That changes everything:
- Whoever talks to you isn't whoever codes. The account or project manager reassures you, but doesn't write the code: the information you get is filtered and almost always more optimistic than reality.
- The team rotates. The developer who understood your project has left, and the replacement starts from the learning curve — at the cost of your time.
- There's often subcontracting or offshore. Part of the work is passed to others, with one more layer between you and whoever actually touches the code.
- The code can sit on their infrastructure. Repository, servers, and credentials in the agency's name: as long as it's that way, you don't hold the asset you're paying for.
- There's a contract (and a legal entity). It's an advantage — you have clauses to lean on — but also a risk: an agency knows how to protect itself with lawyers and fine print better than a freelancer.
The practical consequence: you don't need to chase anyone, you need to reconstruct the facts and get yourself back into a position of strength, both contractual and technical.
The signs the agency won't deliver
It's rarely a sudden blackout. Usually there are warning signs that get ignored because "they're working anyway":
- The dates keep slipping, but a little at a time — never a flat no, always "one more week".
- The demos show slides and mockups, not software running in production.
- You don't have direct access to the repository, or you have it as a mere spectator.
- Whoever understood the project has changed, and the new contact asks you questions you'd already answered.
- The invoices arrive on time, the deliverables don't.
What to do, in order
Three steps, in the right order. Skipping one is the fastest way to weaken your position.
1 — Re-read the contract: SOW, code ownership, exit
Before writing to the agency, pick up what you signed again. Look for three things: the Statement of Work (what was owed, with which milestones and acceptance criteria), the intellectual property clauses (who owns the code, and from when), and the exit clause(how the relationship ends and what they must hand over). It's these three items that tell you which levers you actually have, before you even talk about delays.
2 — Recover code, access, and credentials
Whether you decide to stay or to switch, you must hold your asset. Get owner access to the repository, hosting, domain, database, and third-party services — not as a collaborator. If the agency registered the domain or cloud in its own name, you're in delicate territory. I wrote the step-by-step procedure for taking everything back here: how to recover source code, domain, and access.
3 — Capture the real state of the project
Put in black and white what was actuallydelivered, feature by feature: what runs in production, what's half-done, what never started. Compare it against the Statement of Work. This document is the basis you'll decide on — and, if needed, the evidence that the deliverables don't match what was agreed.
Your options: renegotiate, replace, bring it in-house
With the contract and the real state in hand, you have three paths. None is wrong by default: it depends on how much code is salvageable and how recoverable the relationship is.
Option A — Renegotiate and finish with the same agency
Makes sense if the code is decent and the problem is management, not competence. In that case you don't settle for promises: you formalize a written recovery plan, with short milestones, acceptance criteria, and payments tied to verified deliverables. If they refuse to commit to verifiable milestones, you have your answer.
Option B — Replace the agency
You take the code to another team. First, though, you need an independent assessment of what you're handing over: without it, the new vendor will tell you — out of self-interest — to redo everything from scratch, and you pay again for what you'd already paid.
Option C — Bring development (closer to) in-house
You put your own technical lead to oversee the project and coordinate whoever writes the code, agency or freelance alike. It's often the move that breaks the cycle of vendors who don't deliver, because at last someone on your side controls both quality and timing.
How to avoid it next time
Almost all of these disasters are prevented with four rules, to put in the contract before signing:
- Small, production-verifiable milestones — not slides, software that runs.
- You own the repository and infrastructure, from day one. The agency collaborates, it doesn't own.
- Written IP assignment, with clear timing and not tied to a final payment that can be used as a hostage.
- Demos at fixed intervalsof what's live. If an agency avoids them, you already know how it ends.
In short
An agency that doesn't deliver isn't a freelancer who vanishes: here the playing field is the contract and ownership of the asset. Re-read what you signed, take back code and access, capture the real state, and only then choose whether to renegotiate, switch, or oversee in-house. The decision should be made on the data, not on yet another reassurance.
Frequently asked questions
What's the difference between an agency that doesn't deliver and a developer who disappears?
A lone developer who disappears simply stops replying: the problem is finding a person and the access. An agency usually keeps replying and invoicing, but the software doesn't progress: the problem is contractual and organizational, not one of reachability. The levers change — contract, SOW, code ownership — and so does who you're dealing with.
Does the agency own my code if I haven't paid in full?
It depends on the contract. If the contract assigns intellectual property on final payment, until you settle the agency can claim the code. Re-read the clauses on IP, license, and payments before making any move: that's where who holds what is decided.
Can I stop paying an agency that's behind schedule?
Not on your own and not in the heat of the moment. Suspending payments without a contractual basis can put you in the wrong. Have the contract reviewed, formalize the delays and missed milestones in writing, and tie any remaining payments to verifiable deliverables.
Should I have another agency finish the project or bring it in-house?
First you need an independent technical picture: what was actually delivered, what's recoverable, what's missing. With that in hand you decide whether to renegotiate with the current vendor, hand the code to another team, or oversee development with your own technical lead. Without it, you choose blind and pay twice.
How do I avoid ending up with an agency that doesn't deliver?
Small, production-verifiable milestones, ownership of the repository and infrastructure in your name from day one, IP assignment written into the contract, and demos at fixed intervals. If an agency refuses short milestones or refuses to give you access to the code, that's already a signal.
If the agency left you half-done and you want someone on your side to get the project moving again, that's exactly what I do: I unblock stalled software projects. The first call is free and I'll reply within 24 hours.
