Hiring or outsourcing – which option will be more viable? The content below combines knowledge from reports, researches, and whitepapers to give you a clear answer to that question.
A QUICK SUMMARY – FOR THE BUSY ONES
On average, it takes around 40 days to recruit an in-house developer, and you have to take on recruitment-related expenses.
It takes about 1-4 weeks to find an outsourcing company (depends on your requirements and engagement). The biggest expense here is related to your time.
The average European developer’s salary oscillates around €50K (annually). In the United States, according to Glassdoor, it’s around $90K.
Additional costs increase this number by 2.7x (according to Joe Hadzima, MIT). These costs can pay off in time (especially while software will be the core of your business).
The average rate in outsourcing is $50-100 per hour, per person (in Europe & the USA, the rate depends on the country – check them here). Any additional costs are minimal.
The number of developers working locally is limited. The level of experience is highly dependent on the person. Your location is also the key here.
Outsourcing grants access to a global pool of talents. Companies are more likely to have extensive experience with various projects. Outsourcing providers with experience and talents will offer higher rates.
Hiring & firing people is not an easy task, and it consumes time. Some skills are almost impossible to find locally. Also, it can be hard to find developers eager to join short-term projects.
Outsourcing to a software development company resembles an on-demand service – you can adjust the contract freely. The flexibility of scaling is one of the biggest advantages of outsourcing.
The speed of building things in-house is limited by the number of people on board and time to recruit.
Temporary teams can be quickly set up with outsourcing, which might translate into faster development.
Face-to-face communication is smoother and easier, but more prone to de-focusing and unnecessary chit-chat. In-house development ensures better language and cultural fit.
Online communication creates more friction and is less natural but limits distractions. Outsourcing to other countries may cause language and cultural problems. Finding high-quality partners is crucial here.
Onboarding in-house employees requires an introduction and training. It takes time and effort but is very rewarding. You need someone to manage the team. With an in-house team, there will be no time zone differences.
Outsourcing teams have experience in getting onboard quickly, are self-organized and independent, but are less likely to treat your project as their own. Finding an engaged partner may take some time. Time zone differences may require special workflow organization.
Both solutions require Intellectual Property protection measures.
Software houses are usually more anxious about neglecting security than single developers.
You need to choose between investing 100% of your time and effort into the core business activities and spending a part of those resources on building and managing a software development team.
If building this software is a core of your business, time and money investment may pay off. Otherwise, consider that carefully.
TABLE OF CONTENTS
Unbelievable, another software house is writing an article to compare hiring in-house developers and outsourcing.
But before you click that close button – wait a second.
Yes, you’re right:
That’s why we decided to take a different path.
Follow the rule of data, forget assumptions, and wishful thinking. Give honest, brutal truth, provide evidence, and real-life examples.
After all, if you decide for hiring in-house, we wouldn’t be a good fit anyway. This article just saves us both time and money.
It took us 16 hours to write, and it’s based on 6 industry reports, 3 whitepapers, 3 pieces of research (links at the bottom and in the article) lots of statistics, and my own experience of working with 60+ companies of different compositions in the last 10 years.
Hope you’ll learn something from it.
So, how to approach the decision-making process?
At the very broad level there are three paths you can take:
The decision depends on your project, location, goals.
Sometimes building an in-house team will be a better option for you – we’re ok with that and we won’t try to convince you that it’s different. On the other hand, in some cases outsourcing allows you to solve a bunch of problems.
It all comes up to analyzing 8 aspects.
I will present various points of view here. At the end of each passage, you will find consideration points and the overall winner. Take some time to analyze each aspect and refer it to your project.
Let’s begin.
Many articles analysing the viability of hiring and outsourcing point to the fact that the process of hiring a new developer is long-lasting and fairly expensive.
Considering that true, will it ever be profitable to hire a new employee?
The devil lies in the details. First, let’s look at the data:
What about Europe? Workable compares the average time to fill various positions in the US, UK, rest of Europe, and the rest of the world:
Well, the data differs depending on the research. However, you can assume that the hiring process will take at least a month, and probably even around 2.
But, remember about the period of notice. It often takes 3 months before developers leave their previous companies (although this period varies depending on a region and a developer’s contract).
Why does it take so long to find a good employee? The “2019 State of the Workplace” report mentions top reasons organizations struggle to hire perfect candidates:
According to the previously mentioned Glassdoor analysis, the average company in the United States spends about $4,000 to hire a new employee. According to the Human Capital Benchmarking Report, the average cost-per-hire in the United States is $4,129.
Recruitment costs can be related to:
According to the State of Software Development 2020 report, hiring talents is the 2nd biggest challenge managers face. The lack of workforce is an industry-wide issue for a few years.
<span class="colorbox1" fs-test-element="box1"><p>A word of advice: Recruitment takes time, which generates costs you may not expect. Will they pay off?
Yes, if you look for a developer for a longer, core project. If you need developers only for a limited time or your demand will be decreasing, efforts related to recruitment and office settlement may not pay off.</p></span>
How long does it take to find an outsourcing provider? There’s no simple answer to this question.
Most often, companies research for a few best candidates. The selection stage can include at least a few calls with the best ones. If you’re highly motivated, it can take a week. Most often it takes a few. After all, the decision is crucial.
Also, while looking for an outsourcing provider the main resource you use is time. Hours spent on research and meetings are your price. There are no costs connected to workplace integration or training.
Although, you have to consider the cost of knowledge transfer.
When external developers join your team, you also need to spend some time on knowledge transfer before they start to work effectively (the cost of transition is around 2-3% of the overall cost of the project). Of course, this factor applies also to hiring.
In general, outsourcing means a quicker start and less money spent before you kick off the project.
<span class="colorbox1" fs-test-element="box1"><p>Winner: OUTSOURCING
It’s really tough to determine the winner here. Objectively outsourcing has more advantages. It’s easier and cheaper to find and contract a company than to hire developers in-house.</p></span>
Let’s dive into the most contentious topic, shall we?
The salary you need to pay to your developers depends on your location, industry, project you want them for, and of course – their experience.
Let’s look at some data.
Annual salaries of IT experts in the United States, according to Glassdoor, in 2020 shape as follows:
In the case of European developers, the average annual salaries (2019, Glassdoor) look like this:
What is more, there are employee-related costs you need to remember:
Based on research from Joe Hadzima, a senior lecturer from MIT, the true cost of a new in-house developer could be 2.7x the base salary because of employment taxes, benefits, office space, and equipment needed (data from the United States).
<span class="colorbox1" fs-test-element="box1"><p>A word of advice: Hiring comes with many additional expenses. They will pay off with time. Spending a lot of money to equip the office or rent additional space for your team won’t pay off if your project will last a year and then your demand will decrease.</p></span>
In outsourcing, you clearly know your total cost upfront. The hourly rate of a single developer varies from region to region.
So what is this true, total costs?
Toptal made a tool to calculate the true cost of an in-house employee and an outsourced one.
Based on their research, while the hourly rate for an internal employee per hour will double if you add up all the costs, the total cost of an hour of work of an outsourced developer will increase by about 20% of his base salary.
Existek presents the in-house vs outsourcing cost comparison like that:
However, the forgotten cost of outsourcing is connected to creating the contract (checking or co-creating a contract with an expert). You also have to pay the cost of server management.
<span class="colorbox1" fs-test-element="box1"><p>Winner: OUTSOURCING
The average total cost per hour of an outsourced developer is lower than the total cost per hour of an in-house developer.
Similarly to recruitment costs (but on a bigger scale) additional costs will pay off in time.</p></span>
Finding specialists locally might be a challenge, especially when you don’t know the technology yourself, and thus have little to no idea how to verify their expertise. What is more, your location may come up crucial in that case.
<span class="colorbox1" fs-test-element="box1"><p>Note: some technologies can be considered niche and may be unavailable locally.</p></span>
Take a look at the map below. Did you notice how the number of developers varies from country to country?
Outsourcing becomes handy especially for locations:
In the case of outsourcing, when you need new competencies, you simply contract them for the desired scope or period. If a single agency doesn’t offer all of the skills you require, you can pick and choose people from various companies to build one team.
<span class="colorbox1" fs-test-element="box1"><p>A word of advice: the fewer the technologies the company works with, the more likely it is that they have real experience and expertise.
They’ve probably used those technologies on multiple projects with different profiles, and they may have already built apps/features similar to yours.</p></span>
<span class="colorbox1" fs-test-element="box1"><p>Winner: OUTSOURCING
Outsourcing grants access to a global pool of talents; developers working for software houses usually have more extensive experience. It might be hard to find experienced talents to hire in some locations.</p></span>
It can be difficult to start a new project quickly, while your in-house team is scheduled for a few months in advance.
What’s more, the flexibility of an in-house team is also limited.
You need time to hire and onboard people in order to increase the size of the team. And when the number of people becomes too high for a specific set of tasks, it would be wise to reduce it. But, as we all know it, downscaling an in-house team is painful, as you’re forced to dismiss your co-workers.
<span class="colorbox1" fs-test-element="box1"><p>Thing to remember: flexibility of an in-house team and speed of in-house development start are limited.</p></span>
In comparison, once you decide to start development and find an outsourcing agency, you simply contract them, and later can upscale and downscale the number of outsourced people. You can change that flexibly as if you were using an on-demand service.
Of course, it may take a while (sometimes you can make a change right away, other times it will take a few weeks), but it’s typically a faster and cheaper solution.
That’s the undoubtful advantage of outsourcing over hiring – when time is precious and you want to start fast, hiring will slow you down.
Also, developers often don’t join companies for short-term and unstable projects very eagerly.
<span class="colorbox1" fs-test-element="box1"><p>Winner: OUTSOURCING
Outsourcing wins undoubtedly in that case. It’s faster to set up an outsourced team than the inhouse one, it’s also easier to adjust team volume and development speed.</p></span>
Let’s look for the most frictionless solution and find out which option promotes productivity.
Hiring people locally means they will most likely communicate in your native language and have a similar culture. When you outsource (depending on where you outsource to), you’re more likely to cooperate with people who don’t speak your native language and have different customs.
If English is your native language, or you feel completely comfortable speaking it, you’re lucky. Most reputable providers are fluent in English and you won’t find it problematic. However, their culture may be far different from yours.
Also, in terms of internal culture, hiring allows you to find people who fit your company’s culture. With outsourcing, it should be the same. Note, that companies differ in terms of culture: shared values, goals, attitude, and best practices.
Remember about that while looking for your perfect match.
<span class="colorbox1" fs-test-element="box1"><p>Winner: IN-HOUSE
There are rarely any noticeable language or cultural differences within an in-house team. Finding an outsourcing partner who provides English fluency and cultural understanding is more challenging.</p></span>
One of the main reasons companies stick to in-house development is the fear of communicating with and managing remote teams.
How is communication different when we talk about in-house vs outsourcing?
Talking face-to-face is always easier and smoother. When your developers are in the office, you can talk to them at any time. It’s easy to micromanage if you want.
However, this form of communication is more prone to off-topic chit-chat. It can be de-focusing, might distract people, make them less productive. On the other hand, it’s easier to build relations between colleagues, as well as between you and the team.
When working with an outsourced team, you typically communicate online. Online communication, in general, generates more issues. Although, the coronavirus crisis forced almost every one of us to learn how to cooperate remotely. In most cases, it comes down to proper tools and discipline.
<span class="colorbox1" fs-test-element="box1"><p>Key take-away: talking face-to-face is easier, but more prone to de-focusing.</p></span>
There are plenty of online communicators on the market and everyone can pick the solution they find most fitting. But it’s still harder to build natural, personal relationships between team members.
On the other hand, the advantage of talking online is increased productivity. Coworkers communicating online in most cases won’t call each other specifically to talk about things unrelated to their work.
Although your outsourced development team will most likely work in their office, so the problems with defocusing will be applicable to them, too.
Again, it all comes down to the quality of the team and the level of their engagement.
<span class="colorbox1" fs-test-element="box1"><p>Winner: TIE
If you want close relations and a natural atmosphere, in-house will be better. If your focus is on productivity, outsourcing will be a good fit.</p></span>
By that, I understand team management and workflow organization.
When you hire people in-house, your responsibilities don’t end at hiring. You need to:
You’re the manager and they look up to you.
However, this effort comes with a reward. If you take care of your team well, it will be loyal and will treat your project as its own, and do what it can to help it succeed.
When you outsource, the external team becomes your partner, it’s their job to get on board quickly. Their responsibilities were defined upfront, their direct employers keep them happy and their needs satisfied. And it’s their task to help you, so in most cases, they will self-organize and be proactive. Holding their hands every step of the way won’t be necessary.
It’s less likely that outsourced developers will treat your project as their own, and get as involved as in-house employees. Although it depends on the potential partner and your relation.
<span class="colorbox1" fs-test-element="box1"><p>Winner: IN-HOUSE
Although employees require more attention, they usually are more loyal and personally involved in the project.</p></span>
Working from one place/time zone has surefire advantages. Your employees are available at the same time as you. They get up, start work, drink coffee, eat lunch, and finish their work at hours similar to yours.
In the case of outsourcing, it depends. You can work with a foreign company and still operate in similar hours, but you can also deal with a 10-hour time difference and operate completely unsynchronised.
Does that mean you’re destined to fail?
Of course not. It’s your software provider’s job to run procedures that will ease cooperation. What’s important to note is that you don’t need to communicate all the time to get great results.
<span class="colorbox1" fs-test-element="box1"><p>A word of advice: While dealing with large time zone differences, the proven way to maintain efficient workflow is to set up regular meetings at times most suitable for both parties.
The goal is to gather all the necessary information about the task and requirements. Then, your outsourced development team will be able to basically get the job done while you will be sleeping.</p></span>
Remember that not all companies have the same approach, and working with some might be problematic.
<span class="colorbox1" fs-test-element="box1"><p>A word of advice: Ask your potential partner how they organize workflow with clients from different time zones. How will they do it with you? Details are crucial.</p></span>
<span class="colorbox1" fs-test-element="box1"><p>Winner: IN-HOUSE
There are no time zone differences, and communication is smoother.</p></span>
Let’s talk about security for a moment.
When hiring employees, most companies sign contracts and agreements to stop people from giving sensitive information away. They usually include annotations about high financial penalties.
The procedure is pretty similar when starting cooperation with an outsourcing company. Usually, the scope of the agreement is wider and penalties even higher.
What about being deceived or scammed?
Both individuals and companies can be dishonest about their skills and experience. Triple checking your potential employee or partner will protect you from that.
What about stealing intellectual property or money?
It’s easier to get away with this kind of fraud when you’re just one individual. Companies can’t disappear as easily, have the well-being of dozens of people at stake, and are usually easier to hold accountable.
<span class="colorbox1" fs-test-element="box1"><p>Remember: both individuals and companies can lie about skills or experience. Always triple check your potential employee or partner.</p></span>
<span class="colorbox1" fs-test-element="box1"><p>Winner: TIE
Both solutions come with a certain risk.</p></span>
I hesitated to include this part earlier in the article, as it may not be relevant for everyone. However, if software development isn’t a part of your core business, read on.
So here’s the first thing you should consider when thinking about hiring developers in-house:
<blockquote><p>Will your business benefit from building an in-house team?</p></blockquote>
If building software isn’t a core of your business, it might become an unnecessary burden.
Building a software development department in your company is like building a company inside a company. It’s arduous and time-consuming and might distract you from what’s really important in your company.
Always consider the potential gains and losses.
There’s no black-and-white answer to this, as I said in the beginning.
In-house development teams may have a full and exact understanding of your project, values, and culture, but may also lack specific skills in unexpected situations. It may be harder to find talents and start the project quickly.
Meanwhile, a software agency you outsource to may work in a different time zone and speak a different language. You will communicate with them remotely.
However, they will provide valuable expertise in addressing current needs, be more flexible and cost-effective. You will get access to experienced talents even in niche technologies and start the project quickly.
What’s my advice?
<span class="colorbox1" fs-test-element="box1"><p>Consider hiring people in-house if:<ul><li>Software development is the core of your business</li><li>Close relations between team members are important to you</li><li>You foresee a stable level of work and task loads</li><li>There are plenty of developers in your area</li><li>You have a large budget</li><li>You’re not in a rush</li></ul></span>
<span class="colorbox1" fs-test-element="box1"><p>Consider contracting an external provider if: <ul><li>Software development isn’t the core of your business</li><li>Your workload is unpredictable or fluctuates a lot</li><li>It’s difficult to find developers in your area</li><li>You’re looking for expertise in the field</li><li>You have a limited budget</li><li>Speed is key</li><ul></span>
Our promise
Every year, Brainhub helps 750,000+ founders, leaders and software engineers make smart tech decisions. We earn that trust by openly sharing our insights based on practical software engineering experience.
Authors
Read next
Popular this month