Defining the differences between outsourcing and in-house recruitment
In 1989, Peter Drucker advocated companies “sell the mailroom”, back when a key part of internal and external corporate communications required mailrooms.
In that article, he was advocating the modern concept of outsourcing. It started as a way of cutting costs and headcounts. Corporate payrolls needed trimming, but work still needed to be done. So why not send that work to an outsourced third-party?
Outsourcing started with back-office, admin functions, then spread into other areas such as customer services, manufacturing and later, IT and software development. These days, IT outsourcing is big business. According to Stratistics MRC, the global IT outsourcing market (including help and service desks) is expected to reach $481.37 billion by 2022, with a compound annual growth rate (CAGR) of 6.2%.
Regions such as Eastern Europe – for clients in Western Europe – and Mexico – for American and Canadian companies – are increasingly popular destinations for IT outsourcing (also known as near-shoring, due to geographic proximity). However, in some sectors, such as financial services, we are seeing a reversion to insourcing, also known as traditional in-house recruitment.
Insourcing and Outsourcing: what do they mean?
Every role in every company can be done one of two ways:
- Insourcing: Recruiting and employing an employee in-house to fulfill a specific role in the business, e.g. customer service, sales, graphic design;
- Outsourcing: Working with a freelancer or contracting a firm to perform a specific function.
Both options have pros and cons. In many cases, especially for software development, it comes down to whether you have or need to hire the in-house skills, or whether you can find those skills outside the organization.
In this article, we will compare the pros and cons of outsourcing vs. insourcing for software development. We will also look at the hybrid approach and explore whether that is something companies should consider for software development projects.
How to decide: Outsource vs. Insource?
1. How “core” is this function?
In every business, there are core and non-core roles.
For example, an insurance company needs actuaries and risk assessors. Insurance companies also need customer service teams and salespeople. All of these are essential to the operation of the business. Outsourcing any of these functions means one company is entrusting a core part of what makes them successful to another company, which is always risky.
However, an insurance company also needs reception staff, janitors, and other non-essential teams. Do they need to hire these in-house, or can they outsource? Since the late 80s, the argument has been to outsource that sort of work. In many ways, for many large corporates and small and medium companies, software development work sits between a “core” – essential function – and non-core, and therefore something that is outsourced – or some of the work outsource and the rest managed in-house. Software and IT is essential for the operation of many companies.
And yet, many companies prefer to outsource a percentage of the work they require. Software often plays a key operational and strategic role in the growth and service delivery plans for many companies. Even most financial, health and insurance sector companies can’t manage without chief technology and chief data officers. Behind those in senior management roles are whole teams delivering on core objectives. And often, working with them, are outsourced teams making a substantive and significant contribution.
In smaller companies, this hybrid approach may not be affordable. Therefore, the outsourcing model, from a cost perspective is the preferred route.
- Insourcing is better when the role is a core business function and for one or more reasons (reduce risk, compliance, company culture, etc.), you need to keep it in-house.
- Outsourcing is better when a role is non-core and you would benefit from lower costs, increased innovation or there is strong competition for talent (e.g. as is the case with software developers).
2. What will it cost?
Since the outsourcing movement trend started, it was about cost. Keeping internal, in-house – also known as insourcing – costs low.
When you have an insource team, you have to factor in the following costs:
- Gross salary
- Tax and other mandatory government contributions
- Pension contributions
- Office and IT costs
Recruitment and training are also costs that need to be taken into account. And bonuses and expenses, potentially, depending on the role and competition for the talent that you need internally. If you are struggling to recruit for a specific role, then chances are your competitors are eager to hire those same skills, forcing up the salaries and other benefits that companies need to offer.
When you outsource, you agree on a fixed hourly or daily rate for the life of the contract, with potential adjustments depending on flexible elements of the project/contract, and that is it. The firm or individual you have partnered with are managing their own costs (such as office overheads and pension contributions, etc.) as a percentage of the payment agreed between both parties.
Software developers – especially those with several years of experience and niche skills in competitive fields (e.g. data scientist engineers and blockchain developers) – are in demand. Recruiting the talent you need can be difficult. It is also worth questioning whether you need those skills in-house, or if outsourcing would be a more effective solution?
Developing a complex software platform or product could require a team of 5 or more. Going the insource route means determining the skills required, the right salaries to offer, recruiting the team, and paying those salaries for at least one year. Whereas, when you go the outsource route: all of the recruitment work – and associated costs – have been taken care of by a third-party. Once the project is complete, your obligations and costs are over. It is that simple.
- Insourcing is better when a core team of developers is needed long-term. A company is looking to grow and develop a team of software specialists and this function is more effective when it is brought in-house.
- Outsourcing is better when a project has a defined end-date and goal in mind. Recruiting an internal team would prove too expensive, take too long and it would mean assigning them a new task once the project is complete, or letting them go. In cases such as this, outsourcing always proves more effective.
3. How urgently do we need this delivering?
Insourcing – going the traditional recruitment route – takes time. You need to advertise a role – or a whole team – and either work with a recruitment agency (which is an extra cost) or manage the process internally, which absorbs in-house resources (more time, more money). After that, you need to make offers, onboard new staff and then get the project moving forward.
The insourcing recruitment process can take anything from a few weeks – which is quick – to several months. If you’ve spotted a star potential hire in another firm, they aren’t going to want to wait that long. Top talent is soon snapped up by an eager competitor with a bigger budget or faster process.
When it comes to hiring developers, anyone who’s ever recruited for software roles knows how competitive the landscape is. Talent doesn’t come cheap. Neither does experience. You are competing against big tech firms, other corporates, high-growth startups, and development firms. Your company is also restricted by geography. Most new hires come from within a commutable distance – in most cases, up to an hour.
Outsourcing software development allows tapping into global tech talent. The talent that wouldn’t ordinarily find your company is suddenly accessible and ready to work with you. And the beauty of outsourcing means that you aren’t waiting months from deciding to go ahead with the project and having the team in place to deliver the work. In some cases, you can assemble a skilled team ready to work on a project within two weeks.
Compared to insourcing, outsourcing can save a huge amount of time and money.
- Insourcing is better when you are recruiting a team for a long-term project and you know an internal team is a preferred method. Just be ready to invest the time and budget to put this team together.
- Outsourcing is better when a team is needed to get moving on a project quickly. Waste no time, and keep your costs lower with outsourcing. Outsourcing software development projects can actually help strengthen other core processes. When you outsource software development to other companies, you avoid overwhelming your in-house developers with work that doesn’t match their skill level, further allowing them to focus more on strategic goals.
4. What skills do we need?
Putting the right team together depends on the technology stack already in use, how the new application or platform is going to interact and integrate with that stack, and the skills you’ve already got on-board. Outsourcing software development is the right solution when you need access to rare technologies. There are over 2000 different programming languages out there and, certainly, you can’t hire engineers who know all of them in-house.
With an internal team, you need to be sure you are going to need those skills for a fixed period of time (e.g. 6 to 12 months, at a minimum). Is the project scope sufficient for them to be kept busy, full-time, over a prolonged period, and if not, what mix of skills would it be useful for them to have to support others on the project?
If you are going to outsource software development work to a technology team, you need to start with a clear understanding of the scope and therefore skills required. Developing this scope should involve the input – if not the direction of – an internal tech leader. Someone who can scope out the project and bring the insight that translates business goals into technology outputs. With these insights, you can outsource or insource a team that includes the most relevant and useful skills to deliver the project outputs and goals required.
Whether you go with outsourcing or insourcing depends on other factors, such as cost and how soon the project needs completing.
- Insourcing is better when you are recruiting for a set of skills that already align with other core competencies, and these skills are going to be needed long-term.
- Outsourcing is better when the skills required are non-core, when it’s more cost-effective to outsource and those skills aren’t essential to the company in the long-term (e.g. once the project is complete). Outsourcing software development can actually help strengthen other core processes. When you outsource software development to other companies, it does not overwhelm your in-house developers with work that doesn’t match their skill level, further allowing them to focus more on strategic goals.
5. What risks are involved?
While outsourcing software development can offer many benefits for a company, it also involves some additional risks that have to be considered. Managing risk is something companies are increasingly aware of when outsourcing.
When software and data are involved, the greatest risks involve the potential theft of data and failing to comply with regulatory burdens (such as GDPR in Europe and PCI DSS).
Quality control is another risk that comprises worry about when outsourcing software development. How can we be sure the work will meet the standards we need? Is our data secure with a third-party? Is our companies IT security in safe hands?
Insourcing means that you retain control. You’ve got more control over the quality, over the transfer and movement of data and over ensuring that compliance standards are maintained. It doesn’t mean that things can’t go wrong. Unhappy employees can steal data. Internal systems can fail, causing data breaches. And the quality of work delivered – internally – is often on the same level, if not worst – than the service provided by an external provider.
Whatever the reason for seeking outsourcing developers may be, the need to find a trustworthy partner always remains. One way to mitigate and manage these risks when working with a third-party is to verify and vet them. Make sure that they’re a reputable firm, or in the case of developers, that they have strong references and are used to working with similar companies. Or better yet, work with a partner such as YouTeam to make sure you are getting someone with the right skills, experience, and reputation needed to deliver high-quality, impactful work.
Outsourcing is better when you have closely vetted an external provider and are confident they will deliver the work needed without compromising data security and compliance. If the work being delivered poses little risk to data integrity and the customer-experience then outsourcing is a sensible and cost-effective approach.
6. Control vs. Innovation
Another argument for outsourcing is that external companies can solve problems more effectively. Internal teams soon get bogged down in office politics and internal processes that can slow down innovation. Neither of which is helpful when you are creating innovative software products and solutions.
Working with external providers reduces the risks associated with internal teams. Outsource teams can move faster, innovate quicker, are more agile and will come up with solutions those on the inside often miss.
- Insourcing is better when core skills and competencies from the innovative process need to be kept in the company.
- Outsourcing is better when you need a team who can move fast, come up with innovative new solutions and deliver quickly.
What about a hybrid solution?
Sticking to one solution over another isn’t always the way forward, not when you could take a hybrid approach. When you’ve got an internal software/IT team with a range of core skills, and then you need to augment those internal skills with more specialised experiences from a third-party, outsourcing to support the internal team is a smart and cost-effective move.
This way, your internal team gains the strength of the external provider for the duration of the project, without the overheads and long-term costs associated with hiring more insource team members. Your company gains the best of both worlds.
- There are many benefits to outsourcing software development.
- Outsourcing is more cost-effective.
- It gives you access to a wider talent pool without the risks associated with trying to recruit talent that everyone else is scrambling to hire.
- Compliance and regulatory risks can be managed using vetting, contracts, and the support of a trusted platform that verifies developers and the firms they work for, such as YouTeam.
- Launching a software development project is quicker when working with an outsourced team: You can go from green light to getting started within two weeks.
- Outsourcing software development projects allows growing through innovation while reducing risks and increasing profit simultaneously.
- Assemble all of the skills and experiences you need, without going through a prolonged recruitment and onboarding process.