The common trait I noticed with the 'bad' developers in India was a tendency to always say 'yes', almost in a servile manner.
This may likely have nothing to do with <programming>, per-se. Others can chime in with more nuance, but essentially you are seeing a culture gap. Imagine a culture where it is incredibly rude to say 'no' directly; and its equally bad to put someone in a predicament where they must say 'no' directly either as well. In this situation, a simple confirmation sequence that might be common in the USA ("everybody OK? This will be done tomorrow, yes?") which is also sort of leading and yet reflexive can be counter-productive. To put this another way, in the USA its common to ask "how are you?" but its very uncommon to answer "bad". The common answer is 'fine, thanks'. That is the type of 'yes' you are getting...its a formality (not an analysis). The format of communication (like a 'how are you?') may not be viewed as an appropriate context for <debate> (especially, breaking rank in front of peers, etc.)/
Anyway, its interesting premise to consider if its applicable in your situation(s). It makes remote team work much more challenging somtimes, that is for sure in my experience.
I completely believe it is mostly cultural, but still don't quite understand it (did a tiny bit of work in China years ago - another big cultural shift).
The 'formalities' of "how ya' coin'?" "fine, thanks" generally don't have any bearing on my professional work schedule. Someone who says "fine" when they're unhappy... that can lead to problems, but they have other outlets to deal with that. Someone who is essentially lying on a consistent basis on a team project - that has a much bigger impact.
"Do you have any questions about the project?" "No"
"If you have any questions, reach out ASAP - call/email 24/7 if you need anything." "OK".
2 weeks later... nothing's done, and it's clear the other party had 0 clue about what was asked for.
Again... the impact of this on projects is way different from casual/social/watercooler chat. I just don't understand the culture differences enough to know what it stems from and how to combat it.
That said, I'm not in a position where I'm dealing with any Indian-based developers right now, although that might change in January.
This may likely have nothing to do with <programming>, per-se. Others can chime in with more nuance, but essentially you are seeing a culture gap. Imagine a culture where it is incredibly rude to say 'no' directly; and its equally bad to put someone in a predicament where they must say 'no' directly either as well. In this situation, a simple confirmation sequence that might be common in the USA ("everybody OK? This will be done tomorrow, yes?") which is also sort of leading and yet reflexive can be counter-productive. To put this another way, in the USA its common to ask "how are you?" but its very uncommon to answer "bad". The common answer is 'fine, thanks'. That is the type of 'yes' you are getting...its a formality (not an analysis). The format of communication (like a 'how are you?') may not be viewed as an appropriate context for <debate> (especially, breaking rank in front of peers, etc.)/
Anyway, its interesting premise to consider if its applicable in your situation(s). It makes remote team work much more challenging somtimes, that is for sure in my experience.