Outsourcing your IT needs has a lot of benefits as it is cost efficient and provides instant access to specific knowledge and expertise. Nonetheless, these benefits go hand in hand with risks that cannot be avoided. Yet, there is a way to mitigate their impact. How? That’s what I’m going to talk about.
Risk 1. The Ability of the Outsourcing Company to Nurture Your Project
The first question, and actually the risk, that comes to mind — “Is the company actually able to complete the tasks needed?”. Most of the companies here and there are shouting about their “high-end” technologies, possibilities, and expertise in almost everything that surrounds us. But how to ensure that the company you are choosing is not just another braggart, and it is capable of efficient achievement of the goals you set?
You’ll need to spend some time researching. Things to consider here are:
- The maturity of the company: for how long is the company presented on the market, the average project size, the quantity of the employees, etc…
- The quantity of the long-term projects/clients and the amount of successful projects — for the past year
- The company’s website. Why would those guys make something valuable for you if they are not able to create something valuable for themselves.
- Company’s social media activity. IT provider’s will to share its knowledge and its inner life with the society is a good sign.
- The knowledge sharing process and technical skills development inside the company and company’s participation in the global events.
- Take a look at company’s ranking on the independent review platforms such as Clutch.co
- Case studies. Those include clients overview, history of the cooperation, problems that client wanted to solve, challenges appeared, the solution itself, and the technology stack used.
- Get feedback directly from clients(current and past). Past clients are especially important to speak with because they have nothing to lose by telling the truth. However, do not forget that all of them are business people busy by nurturing their projects, and the response time can take a while.
- If possible, make an on-site visit to validate your “compatibility” — you’ll need to cooperate with those people in future. Discuss the project related topics with people in the office directly.
- Asking for a code example used to implement some functionality won’t be a bad idea
In case you are interested in the full-cycle development add the following to the things listed above.
Does the company:
- know the complete flow?
- have previous from scratch completed projects?
- have its own projects?
Risk 2. Loss of the Control
No doubt business managers will lose some control over the processes outsourced by the IT provider, as all the outsourcing staff is managed on IT provider’s side. Lack of communication and visibility may result in the increase of time needed to complete the project.
- Is that an in-house team?
- Discuss the way of cooperation and the methodology that will be used on the project
- Ask for previous experience in working with different development methodologies. What were the cons and pros of using various approaches?
- Ensure that the IT provider able to chose/create custom solution and process flow depending on the client’s needs and projects
- In case you have your own preferences regarding methodology to be chosen — be careful; choosing the methodology you are not expert in can break the process and result in the budget overrun.
- Require full transparency of the project, including the work schedule and developers’ task distribution info. As a client, you should have a live access to all the project related data and communication tools such as issues trackers, code repository, communication channels, etc…
Risk 3. Vendor Lock-in
- Check the cost of changing developers on a system, or hiring another outsourcing company to support the project after completion. Most companies won’t be building in ‘raw’ Python, Ruby, .Net or Java — they will make use of open source or commercial systems such as frameworks or applications. Make a little research of how easy it is to find other development partners to work on it.
- Check if the company follows the coding conventions
- Integrate rather than extend. Tight coupling between different applications makes lock-in much easier, increases the complexity of the code base, and makes the flexibility of a system equal to the least flexible component of that system.
- Retain ownership of your data and ensure that it remains accessible at any time
- Document the processes
Risk 4. Hidden Costs
Keep in mind that any vendor expects you to pay for work not covered by the scope in your initial contract. You may end up spending more than contract suggests.
- Pay attention to how the company provides estimates and how do they describe the way of money distribution
- What contract types does the outsourcing company accept? Are those T&M or Fixed Price or Fixed Price per Feature or Fixed Price for Iteration? Chose the one more suitable for you
- Check the contract for the absence of VATs and similar fees
- Define project requirements as clear as possible. That will decrease the time needed to complete tasks and minimize the chance of redo process
Risk 5. Confidentiality of information
Ask for some questions and proofs:
- Is the outsourcing company open for signing up NDA?
- Does the company have previous experience in working with the sensitive data?
- Successfully completed projects in financial, medical or government industries would be a huge plus
Risk 6. Geolocation
Face the fact — geolocation matters. It has a direct impact on: “How easy would it be to make business with that company?”.
Pay attention to the:
- Time zones and the way outsourcing company overcomes those
- Distance and the accessibility. How easy would it be to make on-site visits? Are there any traveling issues?
- Payment options available
- Place of company registration
- Place where company holds their accounts. In some cases the location is important due to financial monitoring
- Increase awareness of the region laws and regulations to better plan for incompatibilities and allowable tradeoffs.
- Language barrier
- Stability of the political situation in the country that won’t affect the long-term functionality of the company