The buzz around offshoring has certainly died down over the last year. For a period of time, you could not pick up a magazine or read a newspaper without a lead article on the dangers of offshoring. I had dinner tonight with a portfolio company CEO who has managed to shift most of his resources to India. Today the company has almost 100 employees in India, over 30 of whom have been with the company for 5+ years. Even more impressive is that the employee churn has been pretty low. When I asked him about the secret of success, he said it was quite easy.
"Let them work on your crown jewels."
In other words, most software development opportunities are with consulting firms where employees work on a project basis. So these jobs are usually fleeting and never last very long. Other software jobs are body-for-hire which, once again, is not that interesting and does not provide real upside for the developer. Many of the better opportunities have developers maintaining existing code, fixing bugs, and doing low-level programming. By making a strategic decision early to let the developers in India work on the core technology this company has been able to thrive and prosper and turn its offshore team into a real strength. All of the main architecture and design is still done in the US, but all of the development is done offshore. The other reason why this has worked so well is because the company also made a conscious decision to send over our existing VP Engineering and a few other key developers to seed and build the team in India. It is a wholly owned subsidiary and the employees all work for the company. The startup costs are obviously higher to do this but if you are looking to do offshore development and do it successfully I seriously urge you to consider building your own team if you can find the right lead project/eng. development manager. I have seen way too many companies fail in offshore development trying to just work with consulting firms as inevitably the churn and training costs end up being quite high. In addition, to make it really work, let your team build real product, work on new technology, and not just maintain old code.