And this leads us to why many development efforts of western companies in India don't work out. The problem with Indian software development is typically two-fold. In one sense, the Indian developers can't relate very well to the foreign end-users (us), and that can lead to problems. But far worse is a problem that is almost the opposite: The Indian coders are treated as just that -- coders -- with all architectural decisions being made 12,000 miles away. There is virtually no input to the architects from the coders because none is sought. That means problems that ought to be noticed early -- and probably are, but in India, not the U.S. -- are noticed too late.
One solution is to allow the Indians greater autonomy, but I think the best solution is to make the architects, whomever they are, live with the coders -- something that is literally NEVER done.
Very, very true. In fact, this sort of outsourcing takes us back to the worst days of early IT - the requirements get tossed over the wall to a bunch of people that are hard to communicate with, and the finished application gets thrown back some time later. There's a pretty good consensus out there that this process didn't work well with IT groups that communicated badly; it's not clear to me why a repeat performance with remote developers will work out better. I'll say it again - if outsourcing is a good idea for developers, why not for the marketing department? Or C level managers? The offshore replacements will certainly be cheaper. What's that you say? That the managers need to communicate more directly? Hmmmm. That's different from developers how?