First, let’s get some things straight and clarify what is meant by outsourcing. It is an activity of delegating processes or functions outside the organization, to an external entity. Outsourcing clearly means something different than offshoring or nearshoring. Offshoring or nearshoring is about using resources from another location to execute the tasks, but it doesn’t state if the team is inside the organization or if it belongs to an external organization.
Here’s a chart that visualizes an orthogonal relation between outsourcing and nearshoring or offshoring.
Before we go any further, let’s look at the cases when outsourcing is actually a good choice.
Outsourcing of generic software development simply to extend your capacity makes perfect sense when it is a temporary staff augmentation. Outsourcing of tasks that require specific skills for which there is no competency in-house is also a legit move. There’s a domain you don’t specialize in and you don’t intend to. It requires very specific knowledge. You focus on where your market differentiation is, without investing in building skills that you don’t need. Another situation is when you hire external contractors to sit in your office with your team, and outsourcing is just a way of employing people, without actually doing so.
There are, however, numerous cases when outsourcing is not the best option.
Let’s look at 7 reasons why setting up a subsidiary can work better than outsourcing.
If there is one thing that influences the quality of your deliverables (and it’s free), then this is a company’s culture and values. It is very difficult to recreate culture and values in a team that is outsourced from an external vendor, a team that doesn’t sit in your office and is a temporary group.
Remember, the culture is about how you do things in your organization, and if you find working with outsourced teams difficult, it’s because they do things in a different way. Examples? Open communication, asking questions if you don’t know something, admitting mistakes. One culture doesn’t have to necessarily be better than another, it’s simply different.
When you add the values dimension, things get even more complicated. If, in your organization, you value things like diversity, taking ownership, community then having your outsourced team recognize these values is difficult.
The reason is that you learn culture and values by being around people with certain culture and values and practicing them (through the power of habit). Otherwise it just won’t happen.
It’s different when you hire someone. First, you can hire people that culturally fit your organization. Second, a person, by being a member of your organization, will slowly start acquiring your values and adopting your culture.
One of the key elements of the successful business is the right communication and understanding of your customers’ needs. You shape your offer and products based on the feedback you get from the market. You deliver your services based on the needs communicated by the customer.
The challenge is that sometimes it is difficult to propagate the information from the customer or from the market into the organization. It could be because of the silos. It could also be because some people in your engineering departments are disconnected from the real world, they speak a different language and don’t understand the business of your customers.
Unfortunately, it is very difficult to avoid this situation when you outsource. The external teams you hire simply never had a chance to understand your business, your market and your service. And, by the way: it is also difficult for them. The more complex the domain is, the more often they have a feeling that they don’t know how something is going to be used in real life or why they even have to do it.
In general, the more understanding your engineers have of your business and your customers’ business, the better the fit it is for customers’ requirements and a better quality of the deliverables.
Let’s focus here on some practical problems that may impact your satisfaction when hiring the outsourced teams. We grouped them into three categories: Skills, Seniority and Process.
Skills. Since the team already works for the outsourcing firm anyway, you will get people that are available, but they will not necessarily match the skills you need. Why not? Simply because the developers are probably not sourced from the market, but from the pool of all developers the firm has available. Also, someone’s interpretation of proficiency in a specific technology doesn’t have to be equal to yours, so unless you have a chance to interview yourself, you can end up being disappointed with the skills you get.
Seniority. The reality is that the more senior you are as a developer, the less likely you will want to work for an outsourcing company. You’d rather choose a product company or a services business that specializes in a particular domain. And, guess what: outsourcing firms know this very well and they know their most senior people are very precious. These people are almost always allocated to the ongoing projects and difficult to get.
Process. When you outsource your development to an external organization, and the end result you get is a piece of code, then you don’t really have an influence on the process that is used to engineer this code. This product will only be as good as the process that was used to create it, and you don’t have control over it.
If building your product or service requires extensive domain knowledge and you need to train your team before they are able to start working, then there is an upfront investment that you are making. Are you certain you want to invest in a team that are not your employees?
You may as well say that there is no knowledge transfer needed. This is possible in two cases: either the outsourced personnel already have the skills you need or there is no domain knowledge needed to develop the code. If you’re convinced it’s the latter you should see it as a red flag, or at least yellow. It ties back to our point (2): sometimes your product is of low quality simply because your developers don’t understand your business and your domain. How can they have this understanding if you’ve never trained them?
How is outsourcing influencing the value of your business? This could be a subject for another blog post, but in general, many product companies benefit from outsourcing. When doing a valuation of a product company, you often consider the revenue per employee ratio, which you can protect by using external resources. This assumes that you don’t outsource your competitive advantage.
The story can be different for a services company. The skilled resources and internal know-how are the primary asset of a services company. If you outsource, you build the value (and skilled resources) outside your company. Also, you most likely share your internal know-how with another organization. In the long-term, it can be quite a risky strategy.
A rule of thumb of outsourcing says “never outsource your core competency”. Seems obvious, but it is sometimes not all that clear where the company’s core competency lies. Sometimes your core competency, all of a sudden, becomes a commodity.
For each company, it is different, but the common element is to protect the competitive advantage. Product companies should never outsource their R&D or engineering of key components. Services companies should be even more careful as replicating their model is much easier.
In general, anytime you outsource tasks that are close to your core competency, you are putting your know-how and intellectual property at risk.
We are leaving this for the end as this should not be your determining factor. Let’s do some math. Let’s assume we’re talking here about hiring a Java Developer with 5+ years of experience in Poland. Using the outsourcing model, and employing engineers from Poland, you would have to pay at least 50 EUR per hour. This is a cost of approximately 88 000 EUR per year.
For a salaried employee, if we assume a monthly gross salary of 3 500 EUR and include the overhead related to social security cost, office and recruitment, the annual cost of a developer should not exceed 55 000–60 000 EUR. This means you can save as much as 33 000 EUR annually if you decide to hire an employee in your office in Poland, instead of using an outsourcing company.
And this doesn’t count the cost of vendor management.
Finally, a practical note on setting up your subsidiary. It’s fast, cheap and easy. It’s not a reason to set one up, but it is a reason not to avoid setting up one.
Most of the tech companies that set up a permanent presence in Poland register an LLC. It takes up to two weeks to go through all the paper work. The government fees are up to 3 000 EUR, including the minimum share capital. The monthly legal and tax overhead is around 500 EUR for a small LLC.
The LLC is fully owned by the parent entity. The corporate tax in Poland is relatively low (19%); however, the operations of the subsidiary can be structured in a way that only a minimal profit is generated to assure local tax compliance.
View all job offers
Download the report
Read the full client story