Seventy percent of software projects fail or run over budget — and the pattern is rarely a bad idea. It's the wrong partner, chosen without the right warning signs. Here's what to look for before you sign anything.
Any agency that responds to a project brief with a price within 24 to 48 hours, without asking meaningful questions, is not pricing your project — they're pricing a story they've told before.
Real software development is specification work before it's execution work. An agency that skips discovery is either guessing at scope (and will recover margin through change orders later) or is inexperienced enough that they don't yet know what they don't know. Either way, the number they're quoting is fictional.
A legitimate agency will ask: What does success look like in 90 days? What integrations does this touch? Have you validated this problem with real users? What's the business cost if launch slips by a month? Those questions aren't obstacles — they're the signals that someone is actually trying to understand what they're agreeing to build.
If none of those questions arrive before the proposal, the proposal isn't worth much.
Key Takeaways
Portfolio slides are easy to produce. Screenshots can be borrowed, Figma mockups can be passed off as live products, and projects that never shipped can look polished in a PDF. Impressive-looking proposal decks are not evidence of delivery capability.
What you want to see is working software in production. A real URL. A live demo. A client reference you can actually call. An agency with genuine delivery experience will have no hesitation showing you real systems that real people are using right now.
Ask directly: 'Can I see a live version of a recent project? Can I speak with a client whose build is in production?' A reluctant or evasive answer is your answer. Agencies that hedge on this question typically have something worth hedging about.
Key Takeaways
One of the most consistent complaints from buyers who've been burned: they met senior engineers during the sales process, signed the contract, and then quietly got handed to a team of juniors they had never seen or vetted. This bait-and-switch is structurally common in volume outsourcing shops, where the business model depends on billing senior rates for mid-level work.
Before you sign, ask to meet the specific team members who will work on your project — not account managers, not sales engineers, not the CTO who shows up for the pitch. Ask for CVs, LinkedIn profiles, or GitHub handles for the people assigned to your build.
A good agency will expect this question and answer it without hesitation. One that hedges, offers to 'assign resources closer to kickoff,' or deflects to team bios on their website is telling you something important about how they actually operate.
Key Takeaways
Some upfront payment is normal — agencies need assurance you're a serious buyer before committing senior time to your project. But a large majority of the total fee paid before any work begins, with no milestone-based structure tied to deliverables, is a different signal entirely.
Milestone payments protect both parties. The agency gets predictable cash flow; you retain leverage and visibility throughout the engagement. Typical structures tie payments to discovery completion, design approval, working prototype, acceptance testing, and final delivery — each tied to an objectively verifiable outcome.
Agencies that can't or won't structure payments around milestones are either underfinanced (and will stretch your project out to stay solvent) or they are in the business of collecting deposits. Neither builds good software. If an agency proposes 50% or more upfront with nothing in return but a start date, treat it as a serious warning regardless of how the rest of the pitch felt.
Key Takeaways
Every legitimate software development agency has a testing discipline. Ask: 'How do you handle quality assurance? What does your testing process look like before handoff? What documentation does the client receive at delivery?'
An agency that responds with vague assurances — 'we write clean code' or 'we follow best practices' — without describing specific testing protocols (unit tests, integration tests, staging environments, user acceptance testing handoff procedures) is signaling one of two things: they don't have a structured QA process, or they have one thin enough that they'd rather not be specific about it.
Undiscovered bugs are one of the leading drivers of post-launch cost overruns. A real QA process is a real cost to the agency — it's also what prevents you from spending the first three months after launch fixing problems that should have been caught before delivery. Agencies with strong testing practices talk about them readily and specifically.
Key Takeaways
Code ownership should be non-negotiable and fully explicit in any development contract: you own the code, the IP, and all work product from day one. That's not a negotiating position — it's the baseline.
Some agencies, particularly at the cheaper end of the market, write contracts that retain licensing rights or tie deliverables to their infrastructure, giving them leverage in renewal conversations or making it technically difficult to move your product to another team. Others simply never address IP clearly, assuming clients won't notice until it becomes relevant.
Ask directly before signing: 'Who owns the code? Can I take the full codebase and work with a different agency tomorrow if I need to?' If the answer isn't an immediate and unqualified yes, you're looking at a vendor lock-in risk. Read the contract's IP clause yourself — don't rely on verbal reassurance from a sales call.
Key Takeaways
This one is counterintuitive — but experienced buyers know it well. A proposal that arrives in 24 hours, perfectly formatted, confidently scoped, and suspiciously close to your stated budget is almost never what it appears to be.
Proposals built to close deals are not the same as proposals built to deliver projects. Real project scoping takes time. Understanding a new client's business, technical environment, existing integrations, data model, and definition of success is work — not a template exercise. A rushed quote almost always means a rushed understanding of your problem.
The best agencies are often the ones who come back with more questions before they come back with a price. A slightly slower, more rigorous response that clearly reflects thinking about your specific situation is a quality signal — even if it's less exciting than a polished instant proposal. The agency that takes two extra days to ask the right questions is more likely to actually build what you need.
Key Takeaways
The difference between a development partner that delivers and one that doesn't is usually visible before you sign — if you know what to look for. None of these seven warning signs require technical expertise to spot. They require the same clear-eyed due diligence you'd apply to any significant business relationship. At StepTo, we expect to be asked every hard question on this list before any engagement begins. Clients who vet us rigorously make better long-term partners — and build better software as a result. If you're currently evaluating development agencies and want a direct conversation about team composition, process, IP ownership, and how we actually work, we're here for that conversation.
StepTo helps European and US companies build senior-led nearshore engineering teams in Serbia. Let's talk about what your next engagement could look like.
Start a conversationIgor
stepto.net