How to choose a software development company, and what to ask before you do
Most selection processes compare price, portfolio and headcount, which are the three things every vendor can present well. What actually predicts whether a build succeeds is who you get, how change is handled, and what happens if you leave. The questions that separate them, and the answers worth worrying about.
Key takeaways
If you read nothing else.
- 01
Ask who specifically will work on your build, by name and by allocation. A strong pitch team with an unnamed delivery team is the most common bait and switch in this industry.
- 02
How a vendor handles a change you have not thought of yet predicts the relationship better than anything in their portfolio.
- 03
A vendor who tells you what they would not build for you is worth more than one who says yes to everything.
- 04
Check that the code, the infrastructure and the documentation are yours from day one, in writing, before scope is discussed.
- 05
Score against written criteria before the first call, or the vendor who presents best will win regardless of who delivers best.
The idea in one picture
What to check, in the order it predicts delivery.
- 01
Who you actually get
Names, roles and how much of each person's week you have. Ask whether the people in the pitch are the people who build it, and get the answer written into the contract rather than said in a meeting.
- 02
How change is handled
Describe a requirement you have not thought of yet and ask what happens. You are listening for a process with a timescale, not for reassurance that they are flexible.
- 03
What you own at the end
Source code, infrastructure accounts, documentation and the right to take them elsewhere. Ask to see the clause before scope is discussed, because it is much harder to negotiate afterwards.
- 04
What they refuse to build
A vendor who has never talked a client out of scope is selling hours. Ask for a specific example and what they proposed instead.
- 05
How you hear bad news
Ask when you would learn that a date is at risk, and how. A weekly demo of working software answers this better than any status report.
- 06
What happens after launch
Who fixes a production defect at the point the project is finished, at what response time, and at what cost. Support is where most relationships quietly end.
Choosing a software development company is a decision made on incomplete information, usually by someone who will not be the one working with them daily, against proposals that have been written to look alike. The standard comparison points make it worse. Price is negotiable, portfolios are curated, and headcount tells you about the company rather than about your project.
What predicts whether a build goes well is narrower than that, and it is knowable in advance if you ask directly.
Before you speak to anyone
Write down what you are buying and how you will score it. Not a requirements document: a page.
Three things belong on it. The problem, stated as what is wrong today and what would be different if it were fixed. The constraints that are real, meaning a date that comes from outside, a budget that is actually approved, a system that cannot be replaced. And your scoring criteria with weights, agreed with whoever else is in the decision.
Doing this after you have met vendors does not work. Once you have seen three proposals, your criteria quietly reshape themselves around the one you liked, and the vendor who presents best wins regardless of who would deliver best.
The five questions
1. Who exactly works on this?
Names, roles, and what share of their week you get. Then: are these the same people I have been talking to?
The gap between the pitch team and the delivery team is the most common disappointment in this industry, and it is rarely a lie. It is a structural habit: firms put their strongest people in front of prospects because that is what wins work. The fix is simple and few buyers use it. Ask for the names in the contract, with a clause that says substitutions need your agreement.
Then ask what happens if one of those people leaves. A firm with a real answer has thought about handover. A firm that looks uncomfortable is telling you about its key-person risk.
2. What happens when a requirement changes?
Every build changes. What varies is whether the vendor has a process or an attitude.
A good answer has a shape: the change is written down, the vendor states the effort and schedule impact within a few working days, and you approve or decline it. Better answers include swaps, where a new item replaces an unstarted item of similar size at no charge.
A poor answer is “we are flexible”. Flexibility with no mechanism means the conversation happens later, under pressure, when somebody has already done the work.
3. What do I own at the end?
Source code, repository access, infrastructure accounts, the documentation, and the right to hand all of it to somebody else.
Ask to see the clause. Ask before scope and price are discussed, because a clause you raise at the end looks like a negotiating tactic, and a clause you raise at the start is simply diligence. If a vendor hosts the application on their own accounts, ask exactly what leaving looks like and how long it takes.
This costs nothing to establish up front, and it is close to impossible to fix after eighteen months of work sits inside somebody else’s infrastructure.
4. What would you tell me not to build?
The question that separates a partner from a supplier.
Every brief contains something that should not be built: a feature that serves one loud stakeholder, an integration that costs more than the problem, a report nobody will open. A vendor who has read your brief properly has spotted at least one. A vendor who says the whole thing sounds great has either not read it or is not going to argue with you about anything, which becomes expensive later.
Ask for a specific example from a previous client, and what they proposed instead.
5. When would I hear that a date is at risk?
You are testing the reporting culture, and there is a good proxy for it: working software, weekly, that you can use yourself. A vendor who shows you a running system every week cannot hide a slipping date for long. A vendor who reports progress as percentages can hide it for months.
Working through this now?
Thirty minutes with an engineer who has made this call on real projects. No pitch, and useful even if you never hire us.
Talk to an expertComparing quotes that look nothing alike
Wildly different numbers almost always mean the vendors are quoting different things. Normalize before comparing:
- The same feature list, at the same level of detail.
- Integrations named, with who supplies credentials and test environments.
- A shared definition of done, covering tests, documentation and acceptance.
- Who does user testing, who writes acceptance criteria, and who signs off.
- What the estimate assumes, written down by each vendor.
Most of the spread disappears here. What remains is usually seniority mix and contingency, and both are legitimate differences you can now actually discuss.
The reference call worth making
Ask for a client whose project was difficult, not a showcase. Then ask three questions: what went wrong, how did you find out, and how long was it between the vendor knowing and you knowing.
Everything goes wrong somewhere. You are not testing for a perfect record, which does not exist. You are testing whether problems traveled toward you or away from you.
Score it, then decide
Rank each finalist against the criteria you wrote before the first call. Where a score is low, write the sentence that made you mark it down. That sentence is what you take into the final conversation, and it is usually the thing that turns a close call into an obvious one.
If it would help to have the scoring sheet rather than build one, the free resource bundle includes a vendor scorecard, an RFP template and a build-versus-buy worksheet, none of which name a supplier or require anything from you. They are the documents we would want a client to use on us.
And if you would rather start from where your own operation actually stands, the readiness assessment is twenty questions about how the work runs today. It produces a scored report and a phased plan, which is a more useful thing to hand a shortlist than a requirements document written from scratch.
The documents we would want a client to use on us.
An RFP template, a vendor scorecard, a build versus buy worksheet and a readiness checklist. Free, printable, and none of them names a supplier.
Open the bundleFAQ
Questions readers ask.
What should I ask a software development company before hiring them?
Five questions carry most of the signal. Who exactly works on this, by name and by percentage of their week. What happens when a requirement changes mid-build. What do you own at the end, and can I see that clause. What is your team doing in week one that I would see. And what would you tell me not to build. The last one is the most revealing, because a vendor willing to argue you out of scope is a vendor who is not simply selling hours.
How do I compare software development quotes that are wildly different?
They are almost never quoting the same thing. Normalize first: same feature list, same integrations named, same definition of done, same assumption about who writes acceptance tests and who runs user testing. Most of the gap disappears at that point. What remains is usually seniority mix and how much contingency each has priced for the parts nobody has specified yet. Ask each vendor which assumptions their number rests on, in writing.
Is a bigger development agency safer than a small one?
Size buys continuity, not quality. A larger firm is less likely to disappear and more likely to have a process, and it is also more likely to put a senior team in the pitch and a junior team on the build. A smaller firm gives you the people you met, and carries real key-person risk. Ask either one the same question: name the people, and tell me what happens if one of them leaves.
What are the warning signs when choosing a development partner?
A fixed price offered before any discovery. A portfolio with no numbers or no named outcomes. Reluctance to show the code ownership and exit clauses. An estimate that arrives within a day of a vague brief. No question from them about your existing systems. And agreement with everything you propose, which usually means the pushback will arrive later, as a change request.
Should I ask for references, and what do I actually ask them?
Yes, and ask for one client who had a difficult project rather than a showcase. Then ask three things: what went wrong, how you found out about it, and how long it took them to tell you. Every project has something go wrong. What you are testing is whether the vendor reported it or you discovered it.
How long should choosing a software development partner take?
Two to four weeks for most mid-sized builds. Long enough for a scored shortlist, a working session with each finalist and two reference calls. Much longer than that and the requirement usually drifts. Much shorter and you are choosing on a proposal document, which is a test of writing rather than of engineering.
Where this applies
Put it to work.
Talk to an expert
Working through this yourself?
Tell us where you are and what is in the way. Someone who would work on it will reply, usually within one working day.
Or take the 8 minute readiness assessment