In 2018 we are back with our “CTO asks” series with fifth article addressing real issues, which CTO’s need to tackle in their daily work. This question was asked by Nick Chernets from RankActive.
Can outsourced dev team replace in-house development?
XSolve’s Customer Success Manager Adam Ziemba answers his question:
In today’s world, faced with a constantly growing number of high-complexity tasks, companies delegate more and more work beyond the parent organization, looking for external know-how. Thanks to a variety of specialized services and portals, delegating tasks to outside entities is becoming easier and brings major savings to the company. At the same time, it facilitates an instant response to market needs which is often crucial for the commercial and financial success. Is outsourcing, however, a good solution for your business?
In 2016, the number of freelancers in the US rose above 55 million which, according to Forbes, is nearly 34% of the entire US labor force. The Old Continent is following the same pattern. According to “Future Working: The Rise of Europe’s Independent Professionals”, in 2013, the number of freelancers in Europe increased by 45%, from 6.2 million to 8.9 million people. These numbers perfectly reflect the trend of delegating tasks and projects which is visible in almost all sectors of the global economy.
Platforms such as Upwork.com, to give one example, make it easy to employ individual freelancers and portals like Clutch.co make it possible to hire entire teams, including cross-functional development teams. There are many entities on the market that can provide your company with access to professionals. However, this does not mean that outsourcing is a remedy for every problem nor is it the only correct solution.
Why companies choose to outsource
The answer to this question would be a good topic for a separate article. However, without going into too much detail, we can identify four situations in which outsourcing becomes an option worth considering, namely: implementing risk control, lacking the adequate skill set in the organization, lacking adequate financial resources, and lacking time. Each of these factors individually as well as combined may bring about a decision to outsource.
For example, the lack of the necessary skills required to implement a given project makes it necessary to employ appropriately qualified people, build an efficient and reliable team, and create corresponding processes. This is a big logistical challenge for any company – not to mention a money- and time-consuming one.
Having said that, finding the right outsourcing partner and working with a remote team is a challenge as well. It involves a number of risks, including hiring incomplete, overloaded teams consisting of freelancers who are not cohesive or have no sense of mission and connection with the company for which they work. Low levels of engagement and a high turnover of team members – such issues can reduce the effectiveness of the project and the quality of the product.
Therefore, when deciding whether to delegate tasks and projects outside or implement them in-house, it is worth taking into account several important aspects that may determine the success or failure of the process.
Corporate culture and values
Creating a team within your own company allows you to convey the values and culture of the company and assess whether a prospective employee fits within that framework from the first meeting. The whole process of team building and its evolution is based on the concept of clear and transparent company values that apply to every employee. The framework of values makes work and decision-making considerably simpler with everyone heading in the same direction.
In the case of a remote team, cultural adjustment rarely reaches the level of internal employees. An external service provider may have similar values but interpret them in a completely different way or use them differently while cooperating with the client company. When a culture or value is not shared, the attempt at cooperation can cause great tension and conflict.
When selecting an outsourcing provider, it is worth discussing this topic with providers, asking directly about the values and culture of your future partner. One of the biggest problems in outsourcing is that cultural differences can affect cooperation and reduce the effectiveness of the project. Such values as integrity, timeliness of task completion and quality of communication are not just empty slogans, they really influence the workflow.
When creating business processes, you have the opportunity to implement your own solutions in development (e.g. GitHub flow), project (e.g. workflows), and corporate (e.g. recruitment) processes that are suitable for the domain and values of your organization. Similar to the situation outlined above, it is easier to understand your own processes created from scratch than to adapt to readymade ones created by someone else.
External companies have their own processes that may not always meet your business requirements or working style, and it is not always possible to change them. I know from experience that some of our clients, having familiarized themselves with our processes, actually considered them to be more suited to their project than those implemented in-house.
Remember: processes should serve people not the other way round. Discuss with the service provider and create flexible processes that will meet the needs of both parties (and the project, of course). If the company operates without fixed processes or does not review previous arrangements, this should raise concerns.
Communication and transparency
Next on the list is communication and transparency. Having your own team at your office gives you greater control over the flow of information, the use of daily face to face meetings and the building of human relationships. Even if your employees work from different offices, the quality of the bond between fellow employees is much stronger than with total outsiders.
With an external company, on the other hand, all communication takes place remotely, sometimes with a large time difference due to distant time zones. Of course, this is not an insoluble problem. For example, a team from Europe cooperating with a client from the US may start work later than a team working for customers from the Emirates (you can read the article by our colleague Basia on how to overcome the problems that can afflict communication with remote teams).
At XSolve, we strengthen communication through on-site team meetings with a client at their or our office. Working hand in hand like this allows us to establish strong relationships, understand our customers’ needs better, and solve any problems that stem from working at a distance as they arise.
According to the majority of people in the industry, the main argument for outsourcing is lower costs and that point is difficult to refute. Taking into account the cost and time needed to create your own team, the savings are substantial.
The recruitment process is one of the most serious expenses that an organization can incur at the early stage of any project and outsourcing can help reduce that cost. Below are the recruitment costs for XSolve in 2017:
No. of applications: 2100
Job offers: 59
People employed: 40
Rejected job offers: 19
Rejected candidates: 2041
Cost of a single successful recruitment: PLN 6,500
Total cost of new employees in 2017: PLN 260,000
Although these are bulk data, they illustrate perfectly how high an organization’s recruitment cost can be. The unit cost of successfully recruiting one employee in XSolve reaches PLN 6,500. It is worth emphasizing that we are talking about the cost borne by a company located in Central Europe, where the outlays for acquiring specialists are still relatively low compared to Western Europe or the US.
If we add an employee development fund, which in 2017 in XSolve amounted to nearly PLN 280,000, the cumulative cost will reach nearly PLN 540,000 ($159,000 USD).
Recruitment costs, however, are not where the expenses end. Outsourcing allows you also to reduce expenses on salaries of specialists. This aspect can be considered twofold: work time and location optimization. A company that decides to employ a remote dev team pays only for the hours actually spent on the project. In this way, the costs of “idle time” are eliminated.
As far as location is concerned, the company may decide to select a team from regions where the outlays on employees’ salaries are lower, yet where their qualifications and cultural fit are still strong, consistent with the company’s DNA. These differences are clearly reflected in the data published by Accelerance, showing that the hourly rate of an outsourced senior developer in the US varies between $154-163 USD. In comparison, the hourly rate for the same position in Central and Eastern Europe is approximately $45-50 USD; less than a third of the United States.
Costs related to recruitment and salaries are, of course, the biggest liability for most companies, but it is also worth remembering that by employing an external team, the costs related to running an office (energy, maintenance, canteen, etc.) will also be proportionally reduced. The costs of training, conferences, private health care or other employee benefits are also eliminated.
Remember, however, that the price factor is not the most important and choose a company that will not only allow you to reduce costs but also meet your requirements in terms of quality, cooperation and values.
Another point in favour of outsourcing is time: both the time needed to gather the right team and the time needed for the development project itself. A ready-to-go, well-coordinated team will deliver a product increment faster than a new, growing team. The time (and energy) saved can be invested in new research, building your company brand, or acquiring new customers.
A good example here would be a project we conducted with a client from Saudi Arabia – Takamol Holding, for which XSolve developed an e-commerce system (check out our case study). Our dev team spent nearly 120 working days on the system’s implementation. Those 120 days were the minimum time that our client saved by passing on the project to XSolve. If the project had been implemented in-house, it would have been additionally delayed by the time spent on the recruitment of appropriate employees and synchronizing them into a fully functional team.
In contrast to outsourcing, where teams account only for the hours spent on the project, with an in-house team of employees you also have to consider the cost of “idle time”. Therefore, the implementation period is likely to be longer than 120 days. Thanks to their decision to outsource, our client could spend this additional time on other business activities.
If you have the means, time and budget to build your own team, outsourcing is probably unnecessary. However, if you need an experienced team with domain knowledge and its own know-how and which has already completed projects similar to yours successfully, or if you want to reduce costs or respond to market needs more quickly, then outsourcing may be a great choice for you and your organization.
Pros of in-house teams:
• own processes implemented
• cohesive culture and values
• long-term teams
• daily f2f meetings
• easier communication
Pros of outsourcing:
• no need for recruitment – saving time and money
• no need for building and training a team – the outsourced team is already experienced and compatible
• lower total cost of project implementation
• faster project completion within the production cycle
• flexible replacements and changes within a team
Finally, check out the rest articles in the CTO asks series. I would especially recommend diving into “5 Problems of Software Outsourcing: a briefing for the decision-maker” by XSolve founder Piotr Majchrzak.