It's hard to criticise offshoring without seeming racist. The problem that I have seen is not the developers - it's that the people in charge are fixated on the hourly rate as the key metric, and the suppliers are then complicit in gaming that metric.
As soon as you make the lowest hourly rate the most important metric in software development, I guarantee you that quality will suffer.
It depends.
There are people in India that are brighter and more hard-working than most people in the USA, just by statistical chance. But there is something that can happen there that I don't know what it is and affects some.
In another job our company had a site in India and I remotely supported them. Most people I interacted with wanted step by step instructions and hand-holding. One day someone news enters, bright and full of energy, so we could give him the documentation, point him in the right direction and he did the job. Until he didn't and also wanted step by step directions and hand-holding.
To this day I don't know what prompted the change. My only guess is that there's something cultural going on that can make people tone themselves down and not be proactive.
Just my 2 cents.
I have always attributed this to the management of the consulting companies that supply the contractors - they're all about the billable hours, and quality control isn't really their problem so they don't focus on it.
Broadly speaking, I would argue yes.
In the US the expectation setting works both ways: management tells employees what it expects of them, and employees tell management what they're realistically capable of achieving. Management will ask for extra, and employees will sometimes get less done than they promised (sometimes because there were unforeseen difficulties, extenuating circumstances etc), but in the end it all works out.
I wonder what it's like at Indian tech companies with Indian engineers. Managers there must have a cultural way of dealing with this that works.
IMO, that's the big problem with offshoring. It's rarely the case that the company that offshores stands up an office in the other country and staffs it with people who were held to the same standards in hiring as candidates for U.S.-based jobs would be. If companies did it that way, they might be more successful at navigating cultural differences, but most of the time they use subcontractors instead.
It's not much to do with country/race and a lot to do with pay. I've been sitting through more interviews than I can count as my F500 company is trying the same thing. Despite alleged pre-screenings, I've been amazed by how many devs with 10+ years of experience on their resume that can't code fizzbuzz (let alone answer actual questions in a way I'd expect of a senior dev with that much experience).
Companies don't go to India for their best developers -- they go to save all the money they can. If a US dev costs $150k, they aren't going to spend $150k for an Indian dev. To make this scheme "worth it", they won't pay more than $75k (likely no more than $40-50k).
You get what you pay for. A smart, talented Indian dev isn't going to work for next-to-nothing. They're smarter than that. They'll relocate to the US/EU, work for a large Indian company (where they get better working conditions), or even work freelancer jobs instead.
It's a culture mismatch, I am certain that Indian SWE's think that American SWE's are difficult to work with.
In India "work is god" (as a report of mine has once said), and perception is reality. You do as good as you can and hide your mistakes.
America is aggressively: Pro-failure. In which I mean American SWE's will fail and move on with the idea that they've learned and grown.
It's just a different mindset, and while you probably agree with the American mindset, they'll be similar to each other in reality.
The reason that people dislike working with Indians is:
A) A communication issue, which is exacerbated by not writing specifications properly.
and
B) Indians wanting to go slower and with proper specifications and strictly adhering to those specifications.
Germans are also somewhat like this, so Indians and Germans tend to work significantly better together than Americans and Indians.
Yes. I can’t speak for Google employees but I’ve worked with Indian FTE teams at another big tech company. Indian FTEs are generally less competent than US FTEs at the same level. Upper management knows this and they don’t care because US employees are 3-4x more expensive, so they can hire 3 senior engineers in India for the cost of 1 in the US, which is still a good deal on a cost-per-output basis.
I think the reason for this competency discrepancy may be the huge incentive to move to the US because of pay. In other words, if Indian engineers were as good as their US counterparts, they would move to the US and make 3-4x as much, which leaves only those incapable or unwilling to move in the Indian market.
Its not like this off-to-on shore oscillation has never happened before
- culture barrier
- thousand mile separation
- 12 hour schedule difference
Software quality has ultimately always been around requirements and understanding the problems being solved. That's already hard enough with collocated native speakers.
On top of this is the fundamental master/slave or imperialistic nature to first world/"third world" software development. It is of course buried under self-interest, desperation, and "professionalism". This will always lead to a reduced sense of involvement in the code and mission of the project.
There is the educational issues, where India values memorization and and devalues creativity and independent thought. Where those exist in Indian workers, the regimented nature of orgs over there (related to the imperalism vibe) stamp them out, and the rest is lost in other language and culture barriers.
I would also hazard to say that India is much more obsessed with cultural status (echoes of the caste system), and low software developer jobs aren't good enough on the hierarchy. They aren't Brahmin. Brahmins are managers and leaders.
Of course the cultural barrier represents a turf war. Indians want to own sections of code/orgs with just Indians. The managers explicitly scheme this. Of course all middle managers scheme, so I don't want to seem like I'm casting Indian managers as any more sociopathic than US ones. But it is still a turf war that divides along racial lines. The US-side companies expect multicultural cooperative work. Unless there is the owner/master dynamic, you don't see Americans of non-indian descent working in India except as liasons or owners/managers/bosses.
It's all related to the lifespan arc of software. The software is made/architected in the first world, and eventually is handed off for "maintenance" to outsourcing. Eventually that becomes untenable, and a full rewrite or rearchitecture is performed, and the cycle begins anew.
I apologize if anything I wrote offended anyone, I wanted to be as dispassionate as possible.