fozbaca's comment on Cringely's thoughts about outsourcing IT (http://www.pbs.org/cringely/pulpit/pulpit20030814.html) got me thinking, and prompted me to log my thoughts about the subject.
The company I work for (small consulting firm of 4 people, all programmers) has partnered with a company that does 90% of their software development and support out of India.
For me it's 13.5 hour time difference. That's just the most impossible time zone: the best time to work with them ends up being from 8pm onwards. By 6 or 7am when I get out of bed and jump online, they have all gone home already. Hence I'm often working late nights to get support issues resolved. Sometimes I can sleep in, but other times I still have to support my customers in Ontario (who start at 4am my time) and BC (who start at 7am).
As far as communciation issues, we haven't really had any problems with mis-communication. Instead, communication just takes longer. They want/require fully documented specs and business cases for every piece of code that needs to be written. Their written English is fine, that hasn't been a problem. They have major accents of course, but I very rarely actually talk to them. Most communication is done by email, MSN messenger, and web-based support systems. Cultural differences haven't really come into the play very much. They are a very focused bunch of people that go by the book to the letter... to the point that's almost annoying. My other gripe is that they often take the long way around... they could write a book about how to tie your shoe. When asked to write something that could be done in 20 lines, they'll come back weeks later with something that's 400 lines, although it's a work of art. When asked to point at their ear, they'll put their left arm over their head and touch the right ear instead of the closest one.
Overall Cringely isn't too off the mark. The particular bunch of Indians we deal with have been working their for like 10 years. Have a look at http://midas.vanenburg.com/ for an example of an organization that helps IT companies "expand" into India.
The company we have partnered with has been very helpful with supplying lots of free support, development, etc to help us get us built up. However, they have started pushing us to spec business requirements out, and have the software written in India. We don't want to do this more then we have too... we'd rather build our own competency center inhouse. We want to build our knowledge so that we can more quickly create solutions for our customers -- in a matter of days (if not hours & minutes) instead of weeks and months.
An example of culture differences. In order to overcome said differences
"by the book to the letter... to the point that's almost annoying"
they have required heavy detail, probably as a preventative measure.
U.S. Programmers at Overseas Salaries
Interesting article about a way of not outsourcing software development to other continents:
It's interesting that the issue of culteral differences has arisen on a number of occasions in threads at the Outsourcing Forum: http://www.outsourcingforum.net
Not a cause of serious problems, it seems, but something that needs to be monitored.