at its core, it is a fundamental need for permission. it's not that indian software developers can't make decisions, and can't make good decisions -- they can. they're sharp folks. rather, there's an inherent prohibition within the culture not to jump without being told to. not to strike out on their own and forge new code. it's the injunction to wait for orders from a superior, or else face the consequences. it's a very subtle thing, a cultural trend that's hard to identify the origin of in an individual, just like it's hard to figure out why all americans need to have credit cards. credit cards are just what we do. they wait for someone to tell them to do something.
it's even more insidious than that, especially if you're closely partnered: if you tell them to do something, and it's a bad idea, 9 times out of 10 they won't correct you. i, as a fallible human, depend on other people to correct my dumbass mistakes, especially in matters of software development. no one gets everything right. that's what's so fantastic about pair programming -- both people get the best judgment of their partner. if you're paired with an indian, and they perceive that you are in a higher position than they (even if it's on a subconscious level), they'll follow you right into hell, or at least an ill-advised has_many :through relationship, even if they know better. it's the way they're raised, the way they live.
i'm not passing judgments on the culture, it just makes for bad programming partners and strange traffic patterns.
As a case, I'd point to the fact that outside of India, many do not exhibit that sort of subordinate mentality.
I wouldn't bet against being able to create a work environment in India where that was all brought down to a manageable level.
Overall I agree with your observations, especially "they'll follow you right into hell".
On a side note, look over your (plain English) sentence: "this 'slavish' attitude is due to being subjected" Slave comes from slavic. Can't live without dictators.
I can see you don't over generalize or stereotype people!
There are more entrepreneurial and enterprising people in India than you think...
i have worked with 120 or more indian programmers over the course of many jobs and several years, in bangalore, kochi, and chennai. i have met a few that were technically solid, self-directed, and would give me hell for my code, or the code of another american on my team. i'd have been happy to hire these folks if they'd walked off the street into my office at the market rates. i've invited a few to come visit when they get to the states. some i'd even call friends. by and large, it was through these individuals explaining the mindset of their coworkers that i came to understand it. i didn't drop in, make a bunch of judgements and bail. i asked the people who were driven why the other people on their team weren't. they made the generalizations, i just observed their correctness.
in observation, those driven and enterprising developers are the exception, and the exception by a wide margin. i can't speak to Absolute Truth here, and maybe there's a secret society of programming ninjas in india that few people have ever heard of or interacted with, but i have to lean on my own observations, my conversations with indian developers over half a decade, and the observations of a wide swath of software development community.
Asians, in particular, are good at acting deferentially, particularly in front of foreigners. The most extreme case are the Japanese - they are the easiest to underestimate race in the world (and the West did underestimate them). As you move west from Japan, you can progressively reduce the deference factor, crank up the self-confidence factor, until you arrive in California, perhaps the most self-confident place in the world. That deference - self-confidence dial works to a very good first approximation :)
In India, kids are taught to be respectful to elders/seniors, and it is often taken to an extreme, and one is not encouraged to present a different point of view to them most of the times. You can also add to this mix the earlier generation's 'yes-sir-ism' to Britishers and people in power, and it would give you an idea why most Indians you have worked with, do not tend to speak up much.
I have commented about this earlier on HN, things are changing and changing fast here. The next generation of Indians, is far more open, direct and confident. Globalisation after 1991 and more exposure to 'western' ideas, has had a very positive effect, both economically and culturally.