The short version
Watch for the '90% complete' lie, project managers shielding you from engineers, demos that only work on happy paths, and hourly billing without caps. Good agencies ship working software every 2 weeks and tell you what you don't want to hear.
I’ve taken over 4 projects from agencies that promised the world. Here’s what the founders wish they’d known earlier.
These aren't edge cases. They're patterns.
The “90% Complete” Lie
“We’re 90% done” is the most dangerous sentence in software development. Every founder we’ve rescued heard some version of it, repeatedly, before realising something was wrong.
Here’s the truth: progress isn’t linear. The first 90% might take 10% of the time. The last 10% (integration, edge cases, production readiness) often takes 90% of the time.
When an agency keeps saying “almost there” but never ships, pay attention.
Questions to ask when you hear “90% complete”:
- Can I use this product right now? (Not “see a demo,” actually use it)
- What’s the list of everything that’s left?
- When was the last time you deployed to production?
Red Flags in Communication
Project managers as shields
If you can’t talk to the people writing your code, that’s a red flag. Agencies use project managers to filter bad news and keep founders happy. The problem is: you need the bad news.
Vague updates without demos
“Making good progress” means nothing. Demand to see working software every two weeks. If they can’t show you, they don’t have it.
”It’s complicated” as a response
Technical work is complicated. But a good partner can explain what’s happening in terms you understand. If every question gets deflected with “it’s technical,” they’re hiding something.
Promises that keep slipping
One missed deadline might be bad luck. Three missed deadlines means something structural is wrong.
Red Flags in Delivery
Demos that look good but don’t work
This is the classic trap. The demo works perfectly, as long as you follow exactly the path they show you. Try anything else and it falls apart.
”Technical debt” as an excuse
Technical debt is real. But it shouldn’t be an excuse for everything. If every problem gets blamed on technical debt, the real problem is poor engineering.
Scope creep blamed on you
Some scope change is normal. But if the agency keeps saying “that wasn’t in the original spec” for basic functionality, they either scoped badly or they’re padding the bill.
Red flag
No working software after 3+ months
If you’ve been paying for three months and don’t have anything deployed, something is deeply wrong. This is the clearest signal that the project is in serious trouble, not just a rough patch.
Red Flags in Business Practices
Lowball quotes that balloon
The cheapest option is rarely the cheapest in the end. If someone quotes half what everyone else does, they’re either cutting corners or planning to make it up later.
Hourly billing without caps
Hourly billing incentivizes taking longer. If there’s no cap, there’s no reason to finish.
Resistance to code handoff
Your code is your code. If an agency resists giving you access or documentation, they’re creating lock-in.
No documentation
If you can’t maintain the code without them, you don’t really own it.
- You only talk to a project manager, never the engineers
- Updates are vague: 'good progress', 'almost there'
- The demo works perfectly in their controlled environment
- Every delay is 'scope creep' or 'technical debt'
- Still 90% done after three months
- Direct Slack or call access to the engineer on your feature
- Ships working software you can actually use every 2 weeks
- Tells you 'that won't work', and explains why clearly
- Owns mistakes and fixes them without billing you
- Honest about timelines, even when it's not what you want to hear
Green Flags to Look For
Direct access to engineers
You should be able to talk to the people building your product, without going through layers of managers.
Working software every 2 weeks
Deployed software is the only proof of progress that matters: not presentations, not demos, not status reports.
Honest “no” answers
The best sign of a good partner? They tell you what you don’t want to hear. “That won’t work.” “That’s harder than you think.” “You don’t need that yet.”
Clear ownership of mistakes
Everyone makes mistakes. Good partners admit them, fix them, and learn from them.
What To Do If You’re Already In Trouble
Assess where you actually stand
Get an independent technical review. Don’t rely on the agency’s self-assessment.
If you’ve been paying for 3+ months and don’t have anything deployed, something is deeply wrong. An independent technical review is worth every penny. You need an honest assessment before committing more money.
Ask hard questions
- What’s actually working right now?
- What would it take to ship tomorrow?
- How much of this code is salvageable?
Know when to cut losses
Sometimes the right answer is to start over. It’s painful, but it’s better than throwing more money at something that will never work.
Prepare for a transition
If you’re going to leave, do it cleanly. Get all your code, documentation, and access credentials. Don’t burn bridges, but protect yourself.
Is your agency showing these red flags?
Tick any that currently apply to your situation.
No red flags visible. Either things are going well, or it is still early days.
Get future guides direct to your inbox
If this sounds familiar, you’re not alone.
Four of our current clients came to us after exactly this experience.
Let’s talk about what it would take to fix it →