This is a question I keep getting asked when I meet entrepreneurs, business leaders, CTO’s, or even CEO’s. There is no simple answer. Often times, you cannot do without an extended Information Technology team in India. Working with an offshore team could also become a pain-point. I have seen companies fire the outsourced vendor and assemble a team to work in-house. Ask yourselves a few simple questions on how to proceed.
Can I assemble the team I need in-house? If the answer to this question is yes, go ahead and get the team to work at your location. Can anything get better than working with a programmer across the desk? This will certainly assist in getting the work done quicker and with effective communication.
Do I need a long term solution / Is it a one off deal? Are you looking to complete a specific project / are you looking at long term needs? If there are specific projects you need completed and there is no extension of work, you are better off outsourcing the work to a vendor.
Do you have the bandwidth to manage the team? If the answer is No, outsourcing to a vendor can give you a lot of flexibility and bandwidth. This is also reduced ownership. The onus is on the vendor you hire to deliver and if things do not pan out as planned, you always have a recourse.
Are you doing core product development? If the answer is yes, you are better off hiring a local team and have them sit in the same room to develop the product.
Affordability / Costs: Is this a decision making factor? Do not base your decision just based on costs. Always hire the right team. For a project the client was looking to execute, he was looking for 5 LAMP (PHP) developers. It was not easy for the client to hire locally. There was a severe scarcity of quality talent. Outsourcing to a competent team was his best option.
Be flexible in making a decision. If you find excellent technical talent in Nigeria, go for it. Go wherever the talent is. Communication, Availability, Competence, Ownership, Reliability are key line items that should influence decision making.