Over the past seven years, I have worked on a variety of outsourced software projects with people from the US, Europe, India & China which has led me to one rarely spoken but rather obvious truth: even in well-managed environments outsourcing doesn’t work very well and often leads to less-than-satisfactory outcomes.
This has less to do with cultural differences than the plain fact that the client and service provider are thousands of miles apart and more often than not the latter oversells their capabilities and underestimates the complexities in order to win the contract. Since the only real reason the client wants to offshore is to save money it becomes a self-fulfilling prophesy that even the best technologies and processes cannot solve.
Having experienced both onshore & offshore sides first hand (as client and provider) I can tell you that neither is pretty. One side ends up working all hours to deliver (poorly) on impossible schedules while the other spends much of their time trying to smooth over the cracks and divert any blame. In all this chaos best practices fly out the window and it becomes an unsightly scramble to the finish line. In the end, both sides lose out.
This is not to say anyone is incompetent or malicious, just that the odds are stacked against them. Think about all the silly misunderstandings you’ve had with family or friends caused by simple communication mistakes. Now remove the face-to-face element and translate it into a foreign language you only partially understand. You get the idea.
There are undoubtedly examples of successful projects which have been outsourced but dig a little beneath the surface and you may not like what you find.
In a perverse sort of fait accompli as the world begins to flatten, outsourcing will become a thing of the past since an engineer in China/India will no longer be that much cheaper than one down the road. Those working in outsourcing jobs today will become more focused on domestic markets in the future but for those considering sending projects offshore now, it deserves a second thought. In the medium-long term, the costs/benefits simply don’t add up.
For companies who don’t have the right talent in-house to deliver complex technology projects, it’s better to look at cloud-based solutions which are externally managed rather than trying to reinvent the wheel yourself. Where this isn’t possible the closer to home you can find the skills required, the better.