Skip to content

Guide

How to choose a software development company, at home or abroad

Look at software they run today and at who owns the code. Compare prices only after that.

By , Founder and CEO

7 min read
How to choose a software development company: the work order app of a platform we built, the kind of live work to ask a supplier to show, example with demo data
On this page
  1. 01Before you talk to anyone
  2. 02The work: checks 1 to 3
  3. 03The engineering: checks 4 to 6
  4. 04The people: checks 7 and 8
  5. 05The contract: checks 9 to 12
  6. 06A scorecard for your shortlist
  7. 07Red flags
  8. 08Comparing the prices

To choose a software development company, check three things before you compare prices: software of theirs that runs in production and that you can open, who will own the code and the accounts, and how they release changes without breaking what works. Then look at the people, the hours you share, the contract and the price. A company that passes the first three rarely fails on the rest; a company that cannot show them is a risk at any price.

This guide turns that into twelve checks you can run yourself, in calls and in writing, with what a good answer sounds like and how to verify it. It ends with a scorecard to put two offers side by side. It applies whether the company is in your own city or in another country; for the questions specific to working across borders, see nearshore vs offshore and, for US buyers, outsourcing to Europe from the US.

Before you talk to anyone

Write down what you need. Not a full specification, but the process today, who will use the software, the systems it must talk to, and a few real examples: an export, a spreadsheet, a form. Send the same description to every company, so their offers answer the same question. Our software requirements template holds those questions with room for your answers.

Decide also what you will not compromise on: hosting in the EU, a language your users need, a deadline that is real, a budget ceiling. Say them in the first call.

The work: checks 1 to 3

1. Software of theirs that runs today. Ask to see a platform they built, live, in the call: logged in, with demo data, the way users see it. A portfolio of screenshots shows design; a running system shows that they deliver and keep it running. Ask how long it has been live and how many people use it.

2. A client who uses it every day. Ask for one reference you can call, not an email address that answers with a paragraph. Ask the client what happens when something breaks, and how fast.

3. The repository from the first commit. The code should live in a repository in your organisation, or be mirrored to it, from day one. A company that hands over the code at the end, or after the final payment, holds your project hostage, even with good intentions.

The engineering: checks 4 to 6

4. Accounts in your name. Domains, cloud accounts, app store accounts, email services: in your company's name, with the supplier invited as a user. Moving them later is slow and sometimes impossible.

5. How a release goes. Ask them to describe the last release: was there a backup before it, how long was the system unavailable, how would they have gone back? A good answer names the steps and the seconds. On the transport platform we run, a release switches over in 2 to 6 seconds with a backup and a way back.

6. Automated tests. Ask how much of the core logic is covered by tests that run on every change. Not every screen needs a test; the rules your business depends on do.

The people: checks 7 and 8

7. The builders are in the calls. Ask who will write the code, and make sure they are in the second call at the latest. Layers of account managers between you and the developers add delay and lose detail.

8. Enough shared working hours. Two shared hours a day is workable with a disciplined written process; six to eight is working as one team. Check the overlap for your city and theirs in our time zone overlap calculator, including the weeks when daylight saving differs.

The contract: checks 9 to 12

9. Intellectual property and law. The contract should assign all intellectual property in what is built for you, in writing, and say which law applies and which courts decide. In Europe ownership of software moves by assignment, not by the US idea of work made for hire. Our software development contract template lists the clauses.

10. Data. Where will the software and its backups be hosted, and is there a data processing agreement? For personal data of people in the EU, the GDPR asks for both.

11. How changes are priced. Every project changes. Ask how: a new line with its own price, agreed before work starts, or more hours on the next invoice?

12. After go-live. Who keeps it running, how fast do they respond to a problem, what does that cost, and how do you leave if you want to: documentation, access, a handover?

Twelve checks, two offers side by side

  • 1. Software of theirs you can open, running today

    Offer A: cheaper hourly rate: screenshots only

    Offer B: fixed price per module: two live platforms, shown in the call

  • 2. A client you can call who uses it every day

    Offer A: cheaper hourly rate: references by email

    Offer B: fixed price per module: meets it

  • 3. The repository is yours from the first commit

    Offer A: cheaper hourly rate: handed over at the end

    Offer B: fixed price per module: meets it

  • 4. Cloud accounts and domains in your name

    Offer A: cheaper hourly rate: their account, transfer on request

    Offer B: fixed price per module: your account

  • 5. Releases with a backup and a way back

    Offer A: cheaper hourly rate: not described

    Offer B: fixed price per module: written down per release

  • 6. Automated tests on the core logic

    Offer A: cheaper hourly rate: missing

    Offer B: fixed price per module: meets it

  • 7. The people who build are in the calls

    Offer A: cheaper hourly rate: an account manager

    Offer B: fixed price per module: meets it

  • 8. Enough shared working hours

    Offer A: cheaper hourly rate: 2 hours

    Offer B: fixed price per module: 7 hours

  • 9. Written assignment of all IP, clear governing law

    Offer A: cheaper hourly rate: IP on full payment

    Offer B: fixed price per module: meets it

  • 10. Hosting region and processing agreement

    Offer A: cheaper hourly rate: region not stated

    Offer B: fixed price per module: EU, agreement attached

  • 11. Changes priced before work starts

    Offer A: cheaper hourly rate: billed by the hour

    Offer B: fixed price per module: a new line per change

  • 12. Support and exit after go-live

    Offer A: cheaper hourly rate: support undefined

    Offer B: fixed price per module: response time and exit written down

Both offers are invented to show the scorecard at work. The empty scorecard is in the text above: copy the rows and score your own shortlist.

A scorecard for your shortlist

Score each company on every check: 2 when they meet it and showed it, 1 when they meet it on paper, 0 when they do not. Weigh the first three double.

CheckWhat a good answer looks likeHow you verify it
1. Software running todaya live system shown in the calllog in, click through, ask how long it has run
2. A daily user to calla name and a numbercall and ask about the last incident
3. Repository from day oneyour organisation, from the first commitask for access in week one
4. Accounts in your namedomain and cloud registered to youcheck the registrar and the cloud billing
5. Releasesbackup, downtime in seconds, a way backask for the release notes of the last change
6. Teststhe core rules covered and run on every changeask to see the test run
7. Builders in the callsthe developers in the second callname them in the contract
8. Shared hoursenough for your way of workingcalculate it for both cities
9. IP and lawwritten assignment, named law and courtsread the clause
10. Datahosting region and processing agreementask for the agreement before signing
11. Changespriced before work startsask for an example of a change and its price
12. After go-liveresponse time, cost, exitread the support terms

Red flags

Red flagWhat it usually meansWhat to ask instead
A price before questionsthe estimate is a guess, and you will pay for the guess"What do you need from us to price this per module?"
No live work to opendelivery or upkeep is not their strength"Can you log in to a system you built and show it?"
The code arrives at the endyour project depends on their goodwill"Can we create the repository in our organisation today?"
Everything is possiblenobody has thought about scope, time or budget"What would you leave out of the first version?"
Only an account manager in the callsdetails get lost between you and the builders"Who writes the code, and can they join the next call?"
A best-of list with themselves on topmarketing, not evidence"Who can I call that uses your software every day?"

Comparing the prices

Only now look at price. Hourly rates differ by country and by what the hour includes; see developer rates by country. A fixed price per module shows who believes their estimate: it puts the risk on the supplier. Compare the price of the same modules, add your own time as product owner, and check what is included after go-live. What custom software costs per type of project is in custom software development cost.

Choosing a supplier, briefly

How do I choose a software development company?

Ask to see software of theirs running in production, make sure you own the code and accounts from day one, and check how they release changes. Then compare people, shared hours, contract and price.

How many companies should I ask for a quote?

Three is usually enough: send each the same written description, so the offers answer the same question.

Should I choose a fixed price or time and materials?

A fixed price per module suits work you can describe; the supplier carries the estimate. Time and materials suits work that changes every week, with someone on your side deciding priorities.

Is a software company abroad riskier?

Not by itself. The same twelve checks apply; add shared working hours, governing law and where your data is hosted to the questions.

Custom software

How VBS answers the twelve checks

We are a team in Ghent that builds platforms companies run on. In a first call we show them live: the platform DA Logistics uses every day, with planning, fuel stock under Belgian excise rules and a driver app for around thirty drivers, its core covered by 1,396 automated tests; the same core running for Zuco Logistics on a server of its own; and the Business Centrum platform that replaced a payroll office's spreadsheets. The repository is yours from the first commit, every release has a backup and a way back, and we give a fixed price per module after the first call. See custom software development, or book a call and run the twelve checks on us.

Tell us where you stand.

A few sentences will do. We reply within 24 hours with a proposal for a first call.

Optional, if you prefer a call.

What do you want to achieve, and what is already there?

We only use your details to reply to you.