How to Choose a Software Development Company: Questions, Red Flags and a Scoring Sheet
How to choose a software development company: the questions to ask a dev agency, the red flags that predict failure, and a scoring sheet to compare vendors.
Choosing a software development company comes down to one question: will the people on the call be the people writing your code, and will they tell you the truth when the plan breaks? Everything else (stack, process, price) follows from that. To choose well, decide which engagement model you need, shortlist three to five vendors on real evidence, ask each of them the same hard questions, compare quotes on equal terms, and sign only when IP, repository access and exit terms are in writing.
I have been on both sides of this table. For nine years I wrote production software, first inside product teams and corporate engineering departments, and then for clients. I have inherited codebases from agencies that won the pitch and lost the project. The patterns repeat. This guide is the checklist I would give a friend who is about to hire a dev shop.
Why choosing a software development company goes wrong
Most bad vendor choices are not made by careless founders. They are made by smart people evaluating the wrong thing.
You are shown a polished deck, a senior “solutions architect” on the sales call, a case study with a famous logo, and a quote that sounds reasonable. You sign. Two weeks later the architect disappears, a project manager runs weekly status calls, and the code is written by people you have never met. Six months in, the product is “80% done” and has been for a while.
The deck was never the product. You are buying a team and a way of working, not a proposal. So evaluate the team and the way of working.
Three things predict how a software project goes far better than the portfolio does:
- Who writes the code. Seniority, continuity, and whether you can talk to them directly.
- How bad news travels. Does the vendor tell you in week two that the estimate was optimistic, or in month five?
- Who carries the risk of a wrong estimate. If it is always you, the vendor has no reason to estimate carefully.
Step 1: Decide what you are actually buying
Before you talk to anyone, pick the engagement model. Different models suit different vendors, and many disappointments start with buying a team when you needed a product, or the other way round.
| Engagement model | Best when | What you manage | Typical pricing |
|---|---|---|---|
| Fixed-scope build (MVP or a defined product) | You know what version one must do and want a launch date | Scope decisions and acceptance | Fixed price for a written scope |
| Dedicated development team | You have a roadmap, not a single project, and need steady capacity | Priorities and product direction | Monthly, per engineer |
| Staff augmentation | You already have a tech lead and need extra hands with specific skills | Day-to-day work and code review | Monthly or hourly, per engineer |
| Rescue or takeover | Existing code is stalled, buggy or abandoned by the last vendor | The decision to fix or rebuild | Audit first, then fixed scope or monthly |
If you are a non-technical founder with an idea and a budget, you almost always want a fixed-scope build first. A team without a product owner who can make technical calls burns money politely. Our MVP development service is built around exactly this case.
If you already have a CTO and a backlog, a dedicated development team or augmentation is usually the better fit, and you should weigh that against hiring. The trade-offs are laid out in in-house vs outsourcing.
Step 2: Build a shortlist of three to five vendors
Where to look:
- Referrals from founders who shipped something similar in the last two years.
- Review platforms such as Clutch, read for the detail of reviews rather than the star count.
- Engineers you trust. Ask them which shops they would never hand their own code to.
- Open-source work and technical writing. Teams that explain their decisions in public usually explain them to clients too.
What to ignore:
- “Top 10 software companies” lists. Most are paid placements or written by one of the companies on the list.
- Award badges and partner tiers. A cloud partner badge says the company bought certifications, not that your project will ship.
- Headcount. A company with 400 engineers does not put 400 engineers on your project. It puts three or four, and you should evaluate those three or four.
Shortlist on one criterion above all: have they shipped a live product close to yours, and can you talk to the engineer who built it? “Close” means similar problem shape (a two-sided marketplace, a B2B SaaS with billing, an internal tool with integrations), not the same industry.
Step 3: The questions to ask a software development agency
Send every vendor the same written brief and ask the same questions. Write the answers down. The differences become obvious when the answers sit side by side.
Questions about people
- Who exactly will write the code? Can I talk to them before signing?
- How senior are they, and what did they build before this?
- What is the ratio of engineers to managers on my project?
- What happens if a key engineer leaves mid-project?
Questions about process
- How often will I see working software, and where? (The right answer names a staging URL and a cadence, such as every week or two.)
- Who decides what is “done”? Do you write acceptance criteria with me?
- How do you handle a change I request halfway through?
- What do you test automatically, and what do you test by hand?
Questions about ownership
- Do I get access to the repository from day one, in my own organisation account?
- Who owns the code and IP, and from when?
- Which accounts (cloud, domain, Stripe, app stores) will be in my name?
Questions about money and risk
- What happens if your estimate is wrong?
- What is not included in this quote?
- What does it cost to run and maintain after launch?
- How much notice do I need to give to stop?
Here is how to read the answers:
| Question | Good answer | Worrying answer |
|---|---|---|
| Who writes the code? | Names, seniority, a call before signing | “We’ll assign the best available resources” |
| Repository access | Your GitHub or GitLab organisation, day one | “We’ll transfer the code at the end” |
| IP ownership | Yours from the first commit | “Transfers on final payment” |
| Wrong estimate | “On a fixed scope, overruns are our cost” or a clear cap | “We’ll discuss it when we get there” |
| Changes | Scoped and quoted in writing before work starts | “No problem, we’re flexible” (then a surprise invoice) |
| Seeing progress | A staging URL updated every sprint | Status reports and screenshots |
| Exit | Short notice period, no lock-in | Twelve-month minimum commitment |
Red flags when hiring a dev agency
Some answers end the conversation. Watch for these:
- A price before questions. If you get a number before anyone asked who your users are, the number is a guess dressed as a quote.
- The sales engineer vanishes after signing. Ask in writing who stays on the project.
- No repository access until the final invoice. That is a hostage arrangement, not a payment practice.
- Estimates in months, not in scope. “Around three months” with no breakdown means nobody has done the breakdown.
- Everything is possible. Good engineers push back. If nobody pushes back on your feature list, nobody has read it carefully.
- A portfolio of mockups. Designs on Dribbble prove a designer exists. Live products with real users prove a team can ship.
- No staging environment. You will find the bugs in production, at the same time as your users.
- They want to build everything custom. Authentication, payments, email and admin panels are solved problems. A vendor that wants to hand-build them is selling hours.
One or two soft flags can be explained. A vendor that trips three or more is telling you how the project will go.
Step 4: Check the evidence
Talk is cheap. Before you sign, get three kinds of proof.
A live product. Click through something they shipped. Is it fast? Does the sign-up flow work? Does it still exist a year later? A product that is still running and maintained tells you more than any case study.
A reference call. Ask for a past client with a project like yours and ask that client two questions: “What went wrong, and how did they handle it?” and “Would you hire them again for the next project?” Hesitation on the second one is the answer.
A written plan for your project. Ask for a one or two page technical approach: architecture, stack, the riskiest parts, and what they would cut from version one. This costs a serious vendor an hour or two and tells you whether they understood the brief. If you are not technical, pay an independent senior engineer to read it. That hour is the cheapest insurance you will buy.
If you already have code, ask the vendor to look at it before quoting. Anyone who quotes a takeover without reading the repository is guessing. We do this as a free code audit because there is no honest way to price existing code otherwise.
Step 5: Compare quotes on equal terms
Headline prices are not comparable. A quote of 40,000 that excludes QA, deployment and bug fixing is not cheaper than a quote of 48,000 that includes them.
Normalise every quote against the same list:
| Check | Vendor A | Vendor B | Vendor C |
|---|---|---|---|
| Same written scope? | |||
| QA and automated tests included? | |||
| Deployment and hosting setup included? | |||
| Post-launch bug-fix period included? | |||
| Who pays for estimate overruns? | |||
| Price for changes I request | |||
| Monthly running cost after launch |
Then look at the rate behind the number. Industry rate surveys put senior developers at roughly $140–200+ per hour in the US, $110–160 in Western Europe and $60–80 in Central and Eastern Europe, with Latin America and Asia at other points on the curve. Our software developer rates guide breaks this down by region and seniority with sources. A quote far below the market rate for senior engineers usually means the work will not be done by senior engineers.
Finally, decide which risk model you want. On a fixed price, the vendor carries the risk of a wrong estimate, and fixed-scope work typically costs around 10–15% more than time and materials for that reason, according to vendor data. On time and materials, you carry it but keep more flexibility. Neither is always right, and the trade-off is covered in fixed price vs time and materials. For a first version with a clear scope, a fixed price is the easiest way to know what you will actually pay.
Step 6: Put the terms that protect you in writing
Before you sign, the contract or statement of work should cover:
- IP assignment from the first commit, not on final payment.
- Repository, cloud, domain and payment accounts in your name, with the vendor invited as collaborators.
- A written scope with acceptance criteria for each feature, so “done” is not a matter of opinion.
- A change process: every change is described, estimated and approved in writing before work starts.
- A demo cadence with a staging environment you can access at any time.
- A notice period you can live with. For ongoing teams, a few weeks is reasonable. Twelve-month lock-ins are not.
- Handover obligations: documentation, environment setup, and a knowledge-transfer session if you part ways.
- Who owns the risk of overruns, stated plainly.
If a vendor resists any of these, ask why. Sometimes there is a fair reason. Usually there is not.
A simple scoring sheet for comparing vendors
Score each shortlisted company from 1 to 5 on each line, multiply by the weight, and add it up. The weights reflect what actually predicts project outcomes in my experience. Adjust them to your situation, but decide the weights before the sales calls, not after.
| Criterion | Weight | What a 5 looks like |
|---|---|---|
| Seniority and continuity of the actual engineers | 25% | You met them, they have shipped similar products, they stay for the whole project |
| Relevant live products | 15% | Two or more live products with a similar problem shape |
| Quality of the written plan | 15% | Clear architecture, named risks, a sensible cut list |
| Risk model and pricing clarity | 15% | Fixed price for written scope or a clear cap, all inclusions listed |
| Ownership and exit terms | 15% | IP from day one, your accounts, short notice period |
| Communication | 10% | Direct access to engineers, straight answers, fast written replies |
| Reference feedback | 5% | A past client would hire them again without hesitation |
A vendor that wins on price but scores low on the first line is the most expensive option on the sheet. You just pay later.
Freelancer, agency or a small senior team?
The choice is not only between companies. Freelancers can be excellent for a bounded task when you have someone technical to review the work. Large agencies bring process and capacity, and also layers: account managers, project managers and juniors learning on your budget. Small senior teams sit in between: one accountable company, but the person on the call is the person writing the code. If you are weighing these, our comparison of freelancers vs an agency goes deeper.
Whatever you choose, use the same filter: who writes the code, how does bad news travel, and who pays when the estimate is wrong.
The short version
- Pick the engagement model before you pick the vendor.
- Shortlist three to five companies on live products and named engineers.
- Ask every vendor the same fifteen questions and write the answers down.
- Walk away from a price given before questions, no repository access, or IP that transfers on final payment.
- Compare quotes on the same scope and the same inclusions.
- Get IP, accounts, acceptance criteria, change process and notice period in writing.
If you want a second opinion on a quote, a vendor’s plan, or code you already have, we will give you one. Send us the brief and you get a fixed written quote after a free scoping call, or start with a free code audit of your existing codebase. Either way, you will talk to an engineer, and you will get a straight answer, even if the answer is that another vendor is the better fit.
FAQ
How many software development companies should I talk to before choosing one?
Three to five is the useful range. Fewer than three and you have nothing to compare quotes and answers against. More than five and you spend weeks in sales calls, and the quality of your own evaluation drops. Shortlist on evidence (similar projects, the people you would actually work with), then run the same questions and the same written brief past every vendor.
Should I pick the cheapest software development company?
No, and not the most expensive either. Pick the one whose quote you understand. A low quote with vague scope usually turns into change requests later. Compare what is included (QA, deployment, documentation, post-launch fixes), who does the work, and what happens when the estimate is wrong. A fixed price for a written scope is the easiest number to compare.
What questions should I ask a dev agency on the first call?
Ask who exactly will write the code and whether you can talk to them before signing, whether you get repository access from day one, who owns the IP and when, what happens if the estimate is wrong, how they handle changes you request, how often you see working software, and what the notice period is if you want to stop.
What are the biggest red flags when hiring a software development company?
Refusing to name the engineers, no repository access until final payment, a price given before anyone asked about your users, IP that transfers only on full payment, vague estimates like 'about three months', no staging environment, and a portfolio full of mockups with no live products. Any one of these is a reason to slow down. Two or more is a reason to walk.
Is it better to hire freelancers or a software development company?
Freelancers work well for a clearly bounded task with an owner who can review the code. A company makes more sense when you need several skills (backend, frontend, DevOps, QA), continuity if someone gets sick, and one party accountable for the result. Small senior teams sit in between, with agency accountability and freelancer-level access to the engineer.
How do I check a software company's quality if I am not technical?
Ask for a live product you can click through, a reference call with a past client, and a short written technical plan for your project. Then pay an independent senior engineer for an hour to review that plan, or ask for a code audit of a past project with client permission. Clear writing about your project is a strong signal of clear code.