The True Cost of Outsourcing
Outsourcing is a popular option for individuals and organizations trying to bootstrap their product in a cost effective way. Comparing the cost per unit of work at face value for a team in a developing country vs a developed country usually leads you to believe that there's big savings involved. But this isn't the whole story. Think through the following:
- What you gain in experience you lose in context. The up front cost of a more senior resource is lower when you outsource, but you lose some diversity in thought. An individual that hasn't experienced the problems that your product aims to solve may find it harder to empathize with the end users which can stop them from helping you innovate.
- Timezone and cultural differences can create indirect costs. Although execution costs are lower the feedback cycle is lengthened, especially if you're not working with a near shore partner. You may also need to create additional processes and checks to make sure the created solution actually solves the problem.
- Software services often charge per seat. You may be able to get two outsourced resources for the cost of an individual domestic resource, but your service costs will go up also.
So how do you determine what kind of resource to bring in? Answer the following the questions based on your situation to lead you to your answer.
Typically finding finding a domestic in the resource can take 6+ weeks if you have multiple rounds of interviewing and focus on culture as well as technical skill, whereas depending on timing you can get an outsourced resource as quickly as 10 days.
Domestic developers come at a higher up front time cost (recruiting) and higher salary. Outsourced development is cheaper in terms of hourly rate, however the true cost of outsourced development includes additional process creation and execution such as providing context, lost productivity due to prolonged feedback loop (timezone issues) and cost-per-seat services.
If you don't have competency in a skill you're hiring for, it's harder to recruit domestically. In this case it's favorable to find an outsourced resource first to help develop domestic competency and then go from there.
You would rather bring in lower level or less experienced developers domestically and mentor them and help them grow rather than have to pay for a junior outsourced developer and not benefit from their efforts in the long run.
If you don't keep ownership of a new project, it becomes harder to maintain in the long run. If you're going to supplement a domestic team with outsourced individuals, every project should ideally have a domestic resource as a lead to keep your knowledge in house.
I've created a comparison table below to help you decide the best strategy for your circumstance.
|Domestic||Your domestic team is one where the individuals are all hired by the same organization as you. It has nothing to do with geograpic location.||Culture fit, Industry context (they get the problem), More control over career growth, Build team|
|Nearshore||A nearshore team is one that is contracted by your organization but doesn't share the same geographic location. For example, companies in the US can take advantage of nearshore development teams in South America.||Less timezone issues, Can travel there or bring them here, Ability to scale team up/down|
|Offshore||Offshore development teams are contracted by your organization but are often in a very different part of the world. For example, companies in the US may look for offshore development teams in India, Africa or China.||Least expensive, Ability to scale team up/down quickly, Strong candidates, Bring experience & solutions from other projects|
I tweet about this type of thing a lot. If you enjoyed this article, you may enjoy following me.