It's also interesting to note you can run into pure cultural issues as well.
In one situation, we had one incredible "junior" Indian programmer who was working under another Indian senior developer. The senior developer did not have nearly the experience or expertise the younger, "junior" developer had.
Simply because of cultural norms surrounding age and seniority in Indian cultural, the more senior developer took pride in pushing the younger more experienced developer around. Telling him he didn't know what he was doing, telling him his code was all wrong, and generally threatening him with firing if he didn't follow what he was doing. This lead to many a heated argument and the younger developer having to let other American counterparts argue his case for him.
It made for a crazy environment. My manager confided in my that it was like living in high school all over again where the senior QB was getting pushed by the younger freshman QB who was bucking for his starting spot. Eventually the senior developer was let go and things got back to normal, but it showed even cultural norms can interfere with the quality of work getting done.
It's not so much a generalization but somewhat of a reality of the culture. There is definitely the notion of where you are on the hierarchy ladder in India. Being of a lower or higher caste does change the dynamics of the work environment. Of course, it can be argued that its better now but the caste system is still a major part of Indian culture. Aside from the caste system, there is a large 'follow the leader' mentality.
Also, respect for your supervisor means doing what you are told and not speaking out (even if you should be).
Take a look around a typical company that may have a lot of workers from India. It's very likely that most will be in non-leadership roles and are are very good followers.
In one situation, we had one incredible "junior" Indian programmer who was working under another Indian senior developer. The senior developer did not have nearly the experience or expertise the younger, "junior" developer had.
Simply because of cultural norms surrounding age and seniority in Indian cultural, the more senior developer took pride in pushing the younger more experienced developer around. Telling him he didn't know what he was doing, telling him his code was all wrong, and generally threatening him with firing if he didn't follow what he was doing. This lead to many a heated argument and the younger developer having to let other American counterparts argue his case for him.
It made for a crazy environment. My manager confided in my that it was like living in high school all over again where the senior QB was getting pushed by the younger freshman QB who was bucking for his starting spot. Eventually the senior developer was let go and things got back to normal, but it showed even cultural norms can interfere with the quality of work getting done.