Consultant, agency or in-house team: who should build your software?
The right builder depends on three things: how central the software is to how your business makes money, how long it will need active work, and whether anyone inside your company can own it. An in-house team is best for software you will develop for years, an agency or offshore team is best for capacity on a well-defined project, a freelancer is best for a narrow task, and a senior consultant who also builds is best for getting the plan and the foundations right with little management from you. Many companies get the best result by combining two of these, usually a senior builder working alongside their own people and then handing over.
You should know where we stand. VC Media is the last of those options: a senior partner who plans and builds, and works next to the client’s team. We have tried to describe every option fairly, including where ours is the wrong fit.
The five options in plain terms
An in-house team is developers you employ. They work only on your systems and stay as long as they stay with the company.
A large agency is a firm with designers, developers, project managers and account managers. You buy a project or a block of their time, and they staff it.
An offshore team is a development company in another country, often in a very different time zone. Some work like an agency. Others supply developers who join your team and take direction from you.
A freelancer is an independent developer hired for a task or a stretch of time. Freelancers range from junior to very senior, and most specialise in one area.
A senior consultant who also builds is an experienced engineer or small firm that helps you decide what to build, then builds it. The difference from a freelancer is scope: the consultant shapes the plan, the architecture (how the parts of the system fit together) and the priorities, not only the code.
What matters when you compare them
Five things decide whether a software project goes well long after the contract is signed:
- Continuity. Will the people who built it still be around when it needs changing?
- Speed. How quickly can work start, and how fast does it move once it has?
- Accountability. When something breaks or a deadline slips, is one person clearly responsible?
- Knowledge staying in the company. When the engagement ends, do you still understand your own system?
- Management overhead. How much of your time goes into directing, reviewing and checking the work?
No option wins on all five.
How they compare
| Continuity | Speed to start | Accountability | Knowledge stays with you | Your management time | |
|---|---|---|---|---|---|
| In-house team | High | Slow, hiring takes time | High | High | High, you run the team |
| Large agency | Medium, staff can rotate | Medium | Shared across roles | Low unless planned for | Medium |
| Offshore team | Varies | Medium | Varies with the contract | Low unless planned for | High, specs must be detailed |
| Freelancer | Low | Fast | High for the task | Low | Medium to high |
| Senior consultant who builds | Medium | Fast | High, one person owns it | High if hand-over is planned | Low |
These ratings are general. A well-run agency can keep the same people on your project for years. Ask how each team actually works rather than assuming.
When should you hire in-house?
Build an internal team when the software is part of how you win and will need steady work for the foreseeable future. Your own developers learn the business deeply, sit in the meetings where decisions get made, and keep that knowledge inside the company.
The costs are time and management. Hiring good engineers is slow, and a first hire with no senior technical lead has nobody to check their decisions. Someone also has to set priorities, review work and keep people. Without technical leadership, an in-house team is hard to start from zero.
When does an agency or offshore team make sense?
An agency suits a project with a clear scope and a clear end, where you need several skills at once: design, front end, back end, testing. It can put a whole team on the work quickly, which no single person can match.
The risks are continuity and knowledge. People can move between client projects, and when the engagement ends the understanding of your system may leave with them. Account managers and project managers also sit between you and the people writing the code, which helps on large projects and slows things down on small ones.
An offshore team can add a lot of capacity. It works best when someone on your side can write detailed requirements, review code and answer questions across time zones. Without that person, misunderstandings tend to surface late, when they cost the most to fix.
When is a freelancer the right choice?
A freelancer is a good fit for a task you can describe precisely: a new report, an integration with one system, a set of fixes. Good freelancers are fast and focused.
The limit is scope. A freelancer usually does what was asked, and nobody checks whether it was the right thing to ask for. Plan for the code and notes to be complete when the work ends.
When is a senior consultant who builds the right fit?
This option suits projects where the hard part is deciding what to build and getting the foundations right: a new data platform, a dashboard pulling from many systems, an AI feature that has to be reliable. One experienced person makes the architecture decisions and writes the code, so nothing gets lost between a planner and a builder, and you are not managing a team.
The trade-off is capacity. One senior builder, or a small firm, can cover a surprising amount. We built Focal, a Windows screen recorder, solo, covering its design, engineering and website. But one person is still one person. For a project that needs many people working in parallel for a long time, a consultant should be one part of the setup, not all of it.
How to combine them
The combinations that work best give each party the job it is good at:
- A senior builder alongside your team, then hand-over. The consultant designs the system and builds the hardest parts with your developers, who learn it as it is built. When the foundations are solid, your team takes over and the consultant steps back or stays on for occasional help.
- A senior lead with an agency or offshore team. Someone senior on your side, employed or contracted, writes the specifications and reviews the work. This protects you from the most common problem with outsourced teams: nobody checking the decisions.
- In-house for the core, outside help for the edges. Your team owns the systems that make the business different. Freelancers or an agency handle well-defined pieces such as a marketing site or a one-off integration.
Whichever you choose, write the hand-over into the plan from day one: the code lives in your accounts, the infrastructure is in your name, and documentation is written as the work happens. Our article on planning an AI project makes the same point for AI work.
Questions to ask before you sign
Put these to any team you are considering:
- Who will actually do the work? Ask for names, and whether those people stay on the project to the end.
- Who is responsible when something goes wrong? You want one name, not a department.
- Where will the code and accounts live? They should be in your company’s accounts from the start.
- What will we have at the end? Ask for the code, documentation, and a walkthrough your team can follow.
- How much of our time will this need each week? A good answer is specific about who on your side is needed and for what.
- What happens after launch? Find out whether they support what they built, and on what terms.
- Can we see something you built and still run? Software that a team operates itself, like our FFSN, tells you more about their standards than a portfolio of finished handovers.
If a team cannot answer these clearly, that tells you something before you have spent anything.
Where to start
Write down two things: how central this software is to how your business makes money, and who inside your company will own it after launch. If you cannot name an owner yet, start with a senior partner who builds and plans a hand-over, rather than a large team that needs directing. Our app development and maintenance pages explain how we build alongside teams and how we stay on or hand over afterwards. If you want a second opinion on which setup fits your project, tell us about it.
Questions people ask
Is it better to hire an in-house developer or an agency?
Hire in-house when the software is core to your business and will need steady work for years, because the knowledge then stays with you. Use an agency when you need a lot of capacity for a defined project and have someone internal who can own the result once it ends.
What is the difference between a freelancer and a consultant?
A freelancer is usually hired to complete a specific task you have already defined. A senior consultant helps decide what should be built and how, and one who also builds carries that plan through to working software.
Can a consultant work alongside my in-house team?
Yes, and it is often the strongest setup. A senior builder sets up the architecture and the hardest parts with your team, then hands over the code, the documentation and the know-how so your people can run it.