This question is definitely almost as old as the industry itself, and one would find as many arguments for as well as against outsourcing. Many technology leaders whom I spoke to prefer to have their software developers on-site and directly employed. Their reasons are as below:
• The communication is easier, and one can just have a quick chat if there arises a need to brainstorm a topic or discuss an issue.
• Developers possess critical product knowledge that should stay within the company.
• Having everybody working for the same company is better for motivation of the employees, since everybody is sharing the same goals. Moreover, developers can be provided additional incentives and benefits (not necessarily financial).
These are valid points, and it is difficult to imagine a product development company with a fully outsourced workforce. However, in the current environment, the entire team sharing the same office and going out together for an after-work beer is unusual, and something that we have not seen for a while and might not see very soon. The risk of losing a critical know-how still exists, since good developers can easily find alternatives in the current market. In addition, there are also situations, as stated below, where there is no way around outsourcing:
• The company has more demand than its capacity.
• The company needs the know-how for a specific technology that it does not have inhouse.
• The company wants to free up its internal developers for strategic work by outsourcing the routine tasks.
All these points sound obvious, but there are still many reservations (at least in Switzerland) regarding outsourcing. In my opinion, it is a trust issue, and taking the first step is never easy.
From the experience of our clients, as well as my own, I have realised that the chance of a product becoming a success or failure depends on a number of factors that have nothing to do with whether the product development was outsourced or carried out inhouse. Much more important is to have a right team for the job, clear understanding of one’s goals and a good rapport with the client and one’s team.
If someone has certain concerns about outsourcing, they can try it out by developing a small project and decide if it is worth adding to their development team mix.
#softwaredevelopment #nearshoring #outsourcing #management