Bad Indian Programmers

I was reading a thread on reddit. Reddit user "chinan" has to work with an existing code base for a project that was originally outsourced to an Indian PHP developer.
He is devastated.

The lively discussion has humorous notings by various redditors of their mostly-poor experiences with Indian programmers.
As an Indian programmer, I feel offended.

Living in India.

Also have lived in India until recently. I remember spending three hours a day commuting (either by car or public transport). That's 15 hours a week.
Public transport used to always be really crowded. The summers saw 45 degrees celsius. Everything had a long queue / wait list, it was hard.

Long story short, the quality of life is really bad. Worse than what my words describe.
If you lived there, you know what I mean.

If I talk to somebody working in India, and he is cheerful, I respect that.
Maybe, just maybe, there could be a correlation between quality of life and quality of work?

Am I in denial about crappy Indian programmers?

Probably not. Having worked around ten years with Indian colleagues, I probably have more stories about bad Indian programmers than you.
On the same note, I probably have more stories about brilliant Indian programmers than you can ever imagine.

Given the economic situation in India since the mid 90's, IT / Software is often the best job option for a young adult in India, and he/she picks up an IT / Software job regardless whether he / she has genuine interest in the field.
That is the reason why many Indian programmers you encounter are demotivated, uninterested and produce less than desired quality of work.

They're not stupid, they're demotivated.

I don't blame the quality of education here. That's a common excuse. If a person is motivated, he'll surpass that constraint.
Now, given that they're indeed demotivated (as I claim they are) why do you choose to outsource to them?
And if you do, isn't it part of your responsibility to keep your team motivated?

Software projects fail.

Even with the best guys, a vast chunk of the software projects don't see the day of light.
That's the nature of software. That's why we hear from (agile || scrum || kanban || the-latest-greatest-process-of-today) gurus selling their methodologies as if it were the silver bullet to solve all problems.

Could it be it wasn't "those Indian guys" who caused your project to fail?

Everybody else's code sucks

Working with legacy code, regardless of how well it is written, will always be a challenge.
Even if you start understanding how it was written, what stakeholders expect from the product changes over time.

Thus legacy code will be inadequate regardless of which timezone it was written in.

Cost vs. quality trade-off

So you want to hire somebody for less than ~ $20 per hour.
And you expect the quality of $200 per hour experienced developer.

Stop having crazy expectations.

Code quality, a collective responsibility

If X interviews Y, and Y sucks, then X sucks.
If X manages Y, and Y sucks, then X sucks still.
If X works with Y, and Y sucks, and X can't effect change, and Y continues to suck, then X continues to suck.

Of course the reality of project outsourcer X can be worse.

Many of the X's I worked with:
  • wanted to save costs at the expense of quality
  • wanted to ship everything yesterday
  • didn't understand what they wanted in the first place
  • changed their minds every two weeks (and then educated me about pivoting and Eric Reis)
  • were completely hands off and just expected magic to happen on the 'milestone dates'

Now we run out of funds. Isn't it easy to blame the crappy Indian programmer?
Poof, not my fault. Not my responsibility.

Boo those bad, bad Indians!

Bottom line - Stop making indefensible generalizations, stop making excuses.