Software development agency vs freelancer vs in-house: the short answer
Hire a freelancer for a small, defined job that someone on your side can check. Choose a software development agency or studio when you need a whole system built and handed over, and you have no engineers of your own. Hire in-house when software is your product and needs work every week for years, and you can hire more than one person.
This guide is for founders and operations leads at UK and EU companies of 10 to 200 people. Most comparisons of a software development agency vs a freelancer weigh price against speed against control. Two other questions decide it more often: who will check the work, and what happens when the person who knows the system leaves. You may have two quotes on your desk, or a job advert half written.
The second question holds a surprise. Employing your developer doesn't give you control by itself. A well-documented public case of an organisation locked out of its own network involves an employee, not a supplier.
We're a studio, so we're one of the three options and we have an interest. We've written this so you could use it to choose a freelancer or a new hire over us. If you want a view on your own situation, our software consulting gives you a written recommendation you can act on with or without us.
The three options side by side
A freelancer sells you one person's time. An agency sells you a team and a way of working. An in-house developer is a person whose whole job is your system. The table sets out what each one means in practice.
| Freelancer | Agency or studio | In-house developer | |
|---|---|---|---|
| Best for | A small, defined job, or extra hands for a developer you already have | A whole system built and handed over, with no engineers on your side | Software that is your product, or needs work every week for years |
| Time to start | As soon as you've found the right person | Once a written scope is agreed | Months: recruiting, a notice period, then learning your systems |
| Who manages the work | You | The agency, with you setting priorities | You, or a technical lead you hire |
| Who checks the work | Nobody, unless you arrange it | A second engineer, if the agency reviews its code | Nobody, if they're your only developer |
| If the person leaves | Work stops until you find someone new | Another engineer picks it up, if the code is documented | Work stops, and the knowledge leaves with them |
| Who owns the code by default (UK) | The freelancer, until they assign it in writing | The agency, until it assigns it in writing | Your company, for work done as part of the job |
| Paperwork to get right | Employment status, copyright assignment, data processing terms | Copyright assignment, data processing terms, subcontractors | An employment contract, plus the usual employer duties |
There's no cost row, on purpose. A day rate is the easiest number to compare and the least useful one. The total depends on how much management and rework the project needs, and on who does it. With a freelancer or a single hire, most of that lands on you.
When a freelancer is the right choice
A freelancer fits a job that is small, clear and has an end. Think of a new report in a system you already run, a link between two tools, or a fix to one feature. A freelancer also fits when you already have a developer or technical lead who can brief them and review what comes back.
Most of the risk comes from there being one person. If they fall ill, go on holiday or take a bigger contract, your work stops. You're also the manager. Someone on your side writes the brief, answers questions, tests the work and decides when it's done.
The copyright starts with them. Under the Copyright, Designs and Patents Act 1988, the author of a work is its first owner unless the author is your employee. A transfer counts only in writing, signed by the owner. Put the assignment in the agreement, even for a two-week job.
Employment status, if the job grows
A freelancer who works for you full time for months, at your direction, may count as an employee for tax. In the UK, the off-payroll working rules, known as IR35, cover contractors who work through their own company. Since 6 April 2021, a medium or large private sector client must decide the contractor's status and give them a status determination statement with its reasons. If your company is small, the contractor's own company decides.
HMRC's Check Employment Status for Tax tool works for contractors and for people you engage directly. HMRC says it will stand by the result, as long as the information you gave stays accurate.
EU countries have the same problem under another name. Eurofound, the EU agency for working conditions, calls it bogus self-employment: employment disguised as self-employment. Each country applies its own test, so check the rules where the freelancer works.
When an agency or studio is the right choice
An agency fits when you need a whole system built and you have no engineers to run the work. Think of a customer portal, an internal tool to replace your spreadsheets or a booking platform. You're buying people who have built this kind of system before, plus a way of working. Someone scopes it, someone reviews the code, and someone covers when an engineer is away.
Agencies have their own ways of going wrong, and you can check for each before you sign.
- The people in the sales meeting may not be the people who build. Ask for the engineers' names and speak to one.
- An account manager between you and the engineers slows every question and loses detail in both directions.
- Some agencies pass work to freelancers. If those freelancers will handle personal data, Article 28 of the GDPR requires your prior written authorisation.
- If the domain, hosting and code repository sit in the agency's accounts, leaving is slow and expensive.
- The agency owns the copyright in what its staff write until it assigns it to you in writing.
Our guide on how to choose a software development company turns these into three questions to send every agency on your shortlist. If the agency is in another country, our guide to working with a software studio in Albania covers the contract and data points that change across a border.
Here's how we answer those three questions. You talk to the engineers writing the code, with no account manager in between. You get a written scope before work starts, a written update every week and a shared staging site to click through. The domain, hosting, repository and documentation sit in your accounts, and everything moves to you at handover.
When to hire your own developer
Hire in-house when software is what you sell, or when a system needs changes every week and will for years. An employee learns your business in a way no supplier will. They sit in your meetings and they're there for the small change on a Tuesday afternoon.
The law is on your side here.
In the UK, section 11(2) of the 1988 Act makes the employer the first owner of work an employee makes in the course of their job. Across the EU, Article 2(3) of the Software Directive does the same for software. The employer holds the economic rights in programs an employee writes as part of their duties, unless a contract says otherwise. Neither rule covers a freelancer or an agency.
The risks sit elsewhere. Recruiting, a notice period at their current job and months of learning your systems come before much ships.
A single developer is also a team of one. Nobody reviews their code, nobody covers their holiday, and nobody else knows how the system fits together. A non-technical owner can't judge their work or their next hire either.
So when you hire in-house, hire two. With a budget for only one, arrange an outside review: a senior developer who reads the code each month, or an audit once a year.
Decide who will check the work
You can't judge code by using the product. A demo that looks finished tells you little about the second release, and AI tools now make finished-looking software cheaper to produce than ever. Whichever option you choose, decide who reviews the work before it reaches you.
With an agency, ask who reviews each change and ask to see a recent review. With a freelancer or a single in-house developer, nobody does by default, so arrange someone. Our list of questions to ask before you hire a software developer shows how to test an answer about review, and about AI.
A buyer who can't judge the work is the buyer most likely to pay for how impressive it looks. The supplier worth hiring closes that gap instead. It explains its reasoning in writing, so you end each month better able to judge the work. For us, AI does most of the production and none of the direction, and a person reviews the output before you see it.
Plan for the day the person who knows it leaves
Every system has a truck factor: the fewest people who would have to leave before a project stalls. A 2016 study of 133 popular open-source projects on GitHub found that 65% had a truck factor of two or fewer. Those projects are public, with many contributors. A company system built by one freelancer or one employee starts at one.
Employing the developer doesn't fix this, as the court record in People v. Childs shows. Terry Childs, a network engineer employed by the City of San Francisco, built and ran the city's new fibre network from 2005. From spring 2007 he was the only person with administrative access. In July 2008 his managers asked for the passwords, and he gave them false ones.
On 21 July, through his lawyer, he gave the passwords to the mayor, and with further details from him the city's engineers got back in. A jury convicted him of denying computer services, and the California Court of Appeal upheld the conviction in 2013.
Childs is an extreme case. The everyday version is quieter: a developer leaves on good terms, and the passwords, the deployment steps and the reasons behind the design leave too. San Francisco owned the network on paper and still couldn't change a thing on it. Shared access and written knowledge are what would have protected it:
- Accounts in your company's name, with at least two people on your side who can log in.
- The code in a repository your company owns.
- Documentation on setting the system up from scratch, and on everything it connects to outside itself.
- A second person who has read the code.
Our guide to checking whether you own your website has five checks that work for any software, and most need nothing from your developer.
Most companies use more than one, so plan the handover
Your choice isn't permanent. One common path runs like this: an agency builds the first version and a freelancer makes small changes after launch. A year or two later, the company hires its own developer to take over. Another runs the other way: an in-house team brings in an agency for a project it has no time for.
Each move is a handover, and it goes well only if the last developer left something the next one can use. So before any option starts, write down what you'll receive at the end. That means the repository, the accounts, the documentation and a call between the outgoing and incoming developers.
We plan for that from the start. We build so that whoever works on the system next can carry on without a rewrite, and the documentation is written for them. When we take over someone else's codebase, we start with an audit and a written recommendation. It includes the case for rebuilding, when rebuilding is genuinely the better path.
When you don't need any of them yet
Sometimes the right answer is to hire nobody for now.
- A product you can buy already does most of the job. Our comparison of custom software and off-the-shelf tools covers when building your own pays off.
- You can't yet describe the problem in a page. Nobody can quote it properly, and whoever you hire will build their guess. A software discovery phase comes first, and it works with any of the three options.
- Nobody on your side has a few hours a week to answer questions and test. A freelancer or a new hire needs more of your time than an agency, and no option removes the need entirely.
If none of these applies, answer the two questions for each option on your list. Who will check the work? Who else could run the system if that person left? The option with real names next to both answers is usually the right one.
Questions
Should a non-technical founder hire a CTO first?
Usually not, if software supports your business rather than being the business. A senior technical hire with nobody to lead and little to build tends to leave, or to build more than you need. Start with an outside audit or a technical adviser for a few hours a month. Hire a CTO when software becomes the product, or when you have developers for them to lead.
Do we need a contract for a small freelance job?
Yes, and it can be short. It should say what will be delivered, assign the copyright to your company, cover confidentiality, and include data processing terms if the freelancer will see personal data. Without the assignment, the freelancer keeps the copyright in the code they wrote for you, even after you've paid.
Can we hire the agency's developer when the project ends?
Read the contract first. Agency contracts often include a non-solicitation clause, which stops you hiring their staff for a set period or charges a fee if you do. If you might bring the work in-house later, say so before you sign. A good agency would rather plan that handover with you than find out about it afterwards.
How we wrote this: drafted with AI, then checked and edited by the people who build our projects. Figures come from our own work or from the linked sources.