One of the major decisions that companies face these days is whether or not to invest in having in-house resources to develop the product. Or, is it better to outsource development to other third-party developers?
As a company, the assumption is that product development is one of the core competencies of the company or group. However, there is also the demand to go to market as fast as possible, which entails that the input of “experts” may be necessary. That way, pitfalls of technology development are avoided.
The truth is that both approaches have their positive and negative sides. So arriving at a decision is never really easy. The fact remains that much is levied upon the many cultural and business factors that affect the overall product. However, it goes without saying that this is a decision that needs to be determined during the early stages of the life of the company. This puts founders with the challenge to arrive at the most appropriate decision for their business.
The Decision Tree: To Outsource or Not
In order to arrive at the proper decision, it is important to process points into simpler steps.
First Step: Determine if the technology is a core or essential part of the product
In this step, it is important to take a look at what is going to be developed. Is the technology the core itself or the main part of the product? Or is it simply a portion that solves a need in the business?
If technology is a core proposition, then a huge part of the solution is to keep the development in-house. However, if the technology is used to solve a business issue, then it should be okay to outsource the development of the software.
However, there are instances that the difference is not so clear. There are grey areas in the product, when the core itself is essentially also just a tool.
Second Step: Determine the target audience or customers
In this step, it is important to determine if the product to be developed is aimed at specialists or developers as opposed to business customers.
Third Step: Determine if the product has some secret that makes it unique
This step is easy as it is simply determining if the product either has commonplace knowledge or is there some unique and secret feature.
To better illustrate, here is the visual breakdown of the decision steps mentioned above:
Outsource or Not? That is the question.
Based from the flow indicated above, it can be narrowed down that it is better to have in-house development in the following scenarios:
* The technology is essential or core to the product
* End users are specialists or developers
* Technology is unique and has secret features
Overall, any other scenario that does not fit the items above would be okay to either use in-house developers or outsource. Naturally, this depends on the willingness of the company or the stakeholders, as it still has a major impact on the business.
A look at other companies
Taking a look at other successful companies, there have been a number who have outsourced their software development.
* Alibaba is a successful company that has outsourced their software development. It is an example that Companies can lack supercharged tech persons but still succeed.
* Upwork is another business that is mostly built by contractors. They have hired their product and developers freelance.
* WhatsApp started with just a small amount as its capital, with an emphasis to keep operational costs minimum. By using offshore developers who are extremely capable, they were able to manage the distance and still have a good working product.
However, not all businesses who outsource end up successful. According to Joel Gascoigne, there are points to consider that leans towards tech Companies keeping development in-house.
1. “Your goals and a freelancer’s goals are completely misaligned.”
This statement is levied on the fact that agencies and freelancers’ goals are to make money. On the other hand, the founder wants to achieve a product that is a perfect fit for the company. The freelancers will agree to a price for the development of the MVP, and will make sure that the scope does not go further than what was in the budget. Founders also want to put his product out as possible, and then reiterate or grow from there. Going against what most freelancers or agencies do.
2. “The founding team should wear every hat.”
With this idea, it is believed that the co-founders should do pretty much everything from the start. This is because:
* At the point of hiring, founders would know the difference between average people and the really good ones.
* It establishes the right mindset
* For every area founders are involved in, a great passion for it is also achieved
3. “It gets you into the wrong mindset of what it takes to get a product off the ground.”
This is levied on the fact wherein most people believe that achieving success is based on getting a product built. And this is also why there is often a need to find a tech person to get things done if the founder is not capable of coding. However, sometimes in this case, the basics may still be done through the use of other tools before a core product is produced.
Still not sure?
If still not sure of what to do. Here are some pros and cons on the matter.
Pros of Outsourcing Software Development
* Focus – As a founder, it is essential to validate the idea as soon as possible. The sooner this is done, the better. So time is best focused on the business, sales, and marketing to build the viability of the business, than spending time onboard and managing developers.
* Timing – When outsourcing development, technical resources from the beginning are readily available. Otherwise, founders need to go through the procurement phase and may need to attract the right kind of assets.
* Value for money – This, however, is only applicable to certain areas. Tier 1 talents may require higher wages, and is a bit difficult for a company to handle. But then again, there are talents everywhere to check in terms of pricing.
Cons of Outsourcing
* Misalignment – Agencies and freelancers aim to make money, while founders may just want the minimum. Although not all, it is important to align well with the freelancers in this case otherwise they might push to build something bigger than what is actually needed.
* Lock-in nightmares – This often happens with agencies. When working with freelancers, make sure to check the contract so that in the end, you will be able to own the source code and intellectual property.
* Dependency – Some software development agencies and developers may not always follow the industry standards when it comes to project organization, conventions, and documentation. Sometimes their code may end up being too difficult for other new developers to follow. These things need to be determined when hiring the freelancers, plus make sure that as a founder, you have the decision to set the standards yourself.
Read more here: Pros and Cons of Software Outsourcing.
If outsourcing is a possible solution, the decision has to be based on the cultural and business factors surrounding the project. If the decision is really to outsource, then it would be best to make sure that it is on the right basis.