Web Design & Development

How to Choose a Software Company: Questions, Contract, Code

When choosing a software company, ask who owns the source code, how handover works, who maintains the system and whether the team will stay the same.

rabbitclip teamPublished: 6 min read

Short answer

When you choose a software company, the deciding test is not the attractive screens in the portfolio but what happens after you take delivery: who owns the source code, who holds the deployment and the access credentials, who fixes a fault and how quickly, and whether knowledge is lost if the team changes. If those four questions have written answers from the start, the other selection criteria become secondary. If they do not, even the best presentation carries risk.

This article is about choosing the company that builds your software, not about choosing a general digital agency. The difference is that a campaign ends and is closed, while software lives for years, is updated and has to be transferable to someone else. The choice should therefore look less at the first handover and more at how the third year will go.

Who should own the source code?

This is the most important question. If the contract does not state plainly that the source code passes to the client once payment is complete, the code may stay with the agency. If you later want to work with another team, or if you and the agency part ways, your access to your own product is then at risk. Picture a flooring manufacturer that falls out with the agency that wrote its ordering system. If the code sits on the agency's server, the manufacturer may not even be able to reach its own workflow.

Alongside ownership, access matters. In whose name are the code repository, the server, the domain name and the third-party accounts opened? Having them opened in the client's name settles, at the outset, the point that causes the most trouble later. For the detailed legal drafting it is sensible to consult a lawyer.

How should handover be done?

Handover is more than going live. A good handover includes the orderly transfer of the source code, the setup notes, the environment details and the administrator access. If another developer can bring the product up from those documents, the handover is complete. A practical way to test this is to have an independent developer read the setup notes before delivery.

Acceptance criteria and the testing process should be written down beforehand. A warranty period should also be discussed: fixing faults that appear after delivery free of charge for a set time is a safeguard offered by most serious companies.

  • The source code and its version history are transferred to the client.
  • Setup and environment notes are provided in writing.
  • Administrator access is set up under the client's own account.
  • Acceptance criteria and the test process are written in advance.
  • The period for fixing faults after handover is defined.

How should maintenance and support be arranged?

Software does not end at handover. It needs security updates, dependency renewals and small improvements. The maintenance agreement should state plainly what it covers, how a fault is reported and what the response time will be. Otherwise every small request becomes a separate negotiation, and in an urgent fault there is an argument about who is responsible.

The company that maintains the system need not be the one that built it, but tidy, documented code is what makes such a move possible. A company that does not discuss maintenance at the start of a project usually does not discuss it afterwards either. Asking about it in the first meeting is therefore the quickest way to learn whether a company stands behind its product.

Why does team continuity matter?

If a small company's work depends on a single developer, the project can stall when that person leaves. So you need to ask who will run the project, whether there is a back-up person and how knowledge is shared.

Written documentation, code review and a shared development routine are the concrete signs of continuity. It matters just as much to find out whether the person at the sales meeting is the person who will do the work. If you can, speak once directly to the developer who will do it; the ability to explain technical matters in plain language is a good sign.

Read this nextWhat Is an MVP: How to Narrow Your First Release

What mistakes are made when choosing a software company?

The commonest mistake is choosing on the quoted figure alone. A low quote usually means a narrow scope, a vague definition or extra requests that arrive later. The second mistake is not checking references. Talking to earlier clients about what happened after delivery is more instructive than most presentations.

The third mistake is not questioning the technical choices. The technology the product is built in decides whether another team can carry it on later. Widely used and well-documented technologies generally carry less risk. A very new structure, or one that only that company understands, can make maintenance costly and difficult.

  • Looking only at price: scope and assumptions should be compared.
  • Not asking for references: speak to an earlier client.
  • Not reading the contract: the ownership and maintenance clauses get skipped.
  • Confusing the salesperson with the developer: ask who will do the work.

When is a software company the wrong choice?

A company that quotes a price at once, without asking about scope, should be assessed with care. A company that proposes solutions without listening, refuses to hand over the source code or insists on keeping access credentials in its own account may leave you dependent later. None of these is proof of bad faith on its own, but each is a point on which an explanation should be requested before you sign.

A large software company is unnecessary for a small, one-off job, and a one-person team is risky for a critical, long-lived system. The right choice is the one where the size and structure of the company match the size and lifespan of the work.

Choosing a software company is not a presentation contest. It is a handover plan. If the ownership of the source code, the content of the handover, the scope of maintenance and the continuity of the team are all written down at the start, your choice rests on firm ground. If you would like to weigh your own project against these criteria, you are welcome to arrange a discovery conversation with rabbitclip.

FAQ

What questions should I ask a software company?

Ask who will own the source code, what is delivered at handover, how maintenance will work and which people will run the project. Get all four answers in writing.

Does the source code stay with the agency or with me?

It depends on the contract. If the transfer is not clearly written, the code may stay with the agency, so ownership and access should be stated as the client's from the start. Consult a lawyer for the legal detail.

Is there a difference between a software agency and a software company?

There is no firm line beyond the name. What matters is the structure of the company, its team and its form of contract, not the label.

Is a maintenance agreement necessary?

Any software running live needs security updates and regular checks. Whether the same company or another team does it, the scope and the response time should be in writing.

Should the company be based near me?

Location is not the main criterion. Meeting in person is convenient, but the real measures are the company's delivery discipline, its contract and the continuity of its team.

Share

Related serviceSoftware DevelopmentTurning an idea into a working product takes longer than it looks. From web and mobile apps to bespoke systems that automate your operations, we build software that’s simple and solid.

Related free tools

Terms in the glossary

Related articles

More on this topic

If you don’t know where to start, that’s fine; you’re in the right place.

Your project might already be clear in your head, or still just an idea. Either works. On a short call we talk through where you are and where you could go, together.

Let’s set up a call
Let’s talk about your project