Adding to this. I've worked with people from Tech Mahindra. Some observations.
1. Very green staff that have little to no coding skills/ability.
2. Communication barriers, even when the people are local.
3. Jobs that any other organization would do with one person being split into 3 different roles with a net result of costing more than hiring the more expensive onshore devs.
4. Because of #3 software takes longer to deliver resulting in more money spent on people who are onshore.
Many of these efforts are akin to putting a bunch of monkeys in front of typewriters and expecting to get the next Shakespeare. The old "Mythical Man Month" book by Fred Brooks still holds true and it is truly astounding that organizations continue to make the same mistakes and not learn from history etc..
> Jobs that any other organization would do with one person being split into 3 different roles with a net result of costing more than hiring the more expensive onshore devs
When I first started working with an offshore team of Capgemini devs back around 2007, this really struck me too.
It was bizarre - you had "devs" who literally knew nothing beyond their very limited task space. Literally.nothing.
You'd have 3 people doing nothing but creating worthless unit tests that didn't test anything, 3 people writing HTML, 3 people writing CSS, 3 people coding an API, 3 people coding a backend, 3 people whose job it was to "manage the config files", 3 testers doing basically nothing... it was... so completely and utterly inefficient! It was a running joke that there would be someone to write the opening HTML tag, someone to write the name, and someone to close the tag - it wasn't far from the truth.
Of course, not all offshore teams are this insanely inept. To some degree it comes down to how much the client is willing to pay, but outsourcers also have different groups that target different segments. Their ODC (offshore development team) groups cater to the cheap-as-possible crowd, and are invariably atrocious, but their digital/consulting groups are comprised of "real" developers.
Disclaimer: I don't mean to make sweeping assumptions etc. This post is based on around 15 years experience working with outsourced devs in Indian, across multiple companies. Plainly a country the size of India has plenty of excellent developers.
>Disclaimer: I don't mean to make sweeping assumptions etc. This post is based on around 15 years experience working with outsourced devs in Indian, across multiple companies. Plainly a country the size of India has plenty of excellent developers.
You're by no means the only one. TCS and Infosys are 2 others that I've seen engage in exactly this kind of activity. "manage the config files" haha.. thanks for the laugh.
Yes, their job is to Bill Hours, so if they're working an inefficient process* or dealing with a bad architecture that needs all hands on deck to deploy anything or the developers environment takes ten minutes to go from edit->compile->debug, none of them are going to raise their hand and call out this bullshit, especially if they're new to the team or new to the business.
* a config flag needs to be changed for a new release. Configs are stored in a database. A dev needs to write a SQL update script to make the change. This needs to go through QA, and be signed off by a DBA.
I had to deal with people who couldn't grasp the concept of bitwise masking and shifts to pack/extract fields from an integer. This was for a wire protocol that needed to conserve space to minimize server costs. Their solution was to have all booleans in their own field which ended up burning five bytes each in our serialization format. I just gave up and let them do what they wanted since nobody on my side seemed to care.
I worked desktop support for a few years in a large US based corp. My worst day deploying a new machine was a laptop to a dev who came in and didn't understand what I meant when I asked him to unlock the machine so we could log him in. He wasn't even familiar with Ctrl-Alt-Del and the rest of the deployment went just as painfully.
I get task siloing and hiring green people and giving them a chance to ramp up but that just threw me for a loop.
> I get task siloing and hiring green people and giving them a chance to ramp up but that just threw me for a loop.
one thing i notice about a lot of companies is, they just dont invest into growing and improving the knowledge and skills of "green people" or they stop short at very basic stuff
i understand there are costs, but i think its eventually self-defeating.. maybe there is something i am missing...
I once dealt with offshore developers who decided to store some binary values ("feature on or off") as ASCII "1"s and "0"s. Yep — ASCII-encoded binary.
> I don't mean to make sweeping assumptions etc. This post is based on around 15 years experience working with outsourced devs in Indian, across multiple companies. Plainly a country the size of India has plenty of excellent developers.
People are fine. India has produced some very great intellectuals (see Ramanujan).
But the culture is rather rigid and stratified, with narrowly defined "walks of life", and the boundaries are strict. Everyone knows their place in the system, and there are disincentives to change, or challenge authority. Truth and wisdom always flow from top to bottom, never the other way around. That's cultural. Of course all that stuff would reflect upon the organizations.
TLDR: Let go of the rigid rules, and India would experience a MAJOR renaissance.
I worked as well in Capgemini although in a nearshore team. The project was a customer portal to manage some of their contracted services.
We were about 60 people comprised of several teams doing nothing but attending to some specification documents who most of use would infer on the go. Beside the whole architecture was a mix of Java beans based on a XML schema and some transformations on them using Spring. Something which would be easily done using XSLT or XQuery in a fraction of the cost. Also we had some middleware interfacing a Tibco bus which was utter bullshit because they were unable to use JavaEE in a proper manner.
It sounds like a description of the Indian caste system. If I recall one person would wash dishes, and another dry then, because of caste imposed rules.
This is contagious since many IT outsource firms actually "wag the dog".
In the hands of idiots [usually 'little-Hitler' "delivery managers"], something like DEV/OPS has become a new operations career when all it has to be is automation.
And version control is something they are still looking for a Rosetta Stone to figure out.
It's enough to make older Software Engineers want to cry.
The number of layers of ignorance [billable hours for pseudo-technicians who do a hair's width more than nothing] is astonishing.
> 1. Very green staff that have little to no coding skills/ability.
This is mostly due to high attrition rates, these companies hire students fresh out of universities who have little to no experience. So most projects are in a state of constant flux where people who have worked on the code left after an year or two, only to be replaced by someone who knows very little about the codebase.
The attrition is due to the very low pay and shitty work culture. Earlier people in India didn't really have a choice on where they could work in IT, it was mostly just these sweatshops, but this has changed in the past decade. There are product based companies and even higher tier consultancies who pay way better and treat their employees relatively better.
Also remember, this gap in the payscale isn't minuscule, it could literally be 5x-10x if you posses the technical chops.
> Because of #3 software takes longer to deliver resulting in more money spent on people who are onshore.
I am stressing on the low pay in my comment because I tend to see a lot of anger online directed on the actual engineers (while making the point #3 in your comment) under the assumption that these people are making fat stacks of cash while living in a country with low cost of living. But this isn't usually the case, these people are paid peanuts, which is barely enough to cover the cost of living in the IT centered cities.
I've been to It oriented cites in India. Normal people sleep on the sidewalk because they have nothing else (we don't share a language, so it is hard to be sure, but this isn't like homeless in the US where sleeping on a sidewalk implies a drug or mental problem, these seem like my neighbors here who have a typical family). You would fit right in on low pay if you wanted that life.
Now I'll grant most people want a better life and I'm not sure the low end supports much better, but in context it isn't uncommon.
The ultimate take-away from "Mythical Man Month" is that the limit of adding people is not zero extra-work-per-additional-person, but unbounded negative extra-work-per-additional-person.
wrt Tech Mahindra a very senior engineer who used to work there told me that there have been so many layoffs there that, in some projects the Team Leads report straight to the VP. Newbies receive little to no training or guidance.
What you describe is clearly bad for the organization on the whole, is there some way this decision is being made to benefit the decision maker over the organization? Either for political reasons or maybe even illegal reasons?
1. Very green staff that have little to no coding skills/ability.
2. Communication barriers, even when the people are local.
3. Jobs that any other organization would do with one person being split into 3 different roles with a net result of costing more than hiring the more expensive onshore devs.
4. Because of #3 software takes longer to deliver resulting in more money spent on people who are onshore.
Many of these efforts are akin to putting a bunch of monkeys in front of typewriters and expecting to get the next Shakespeare. The old "Mythical Man Month" book by Fred Brooks still holds true and it is truly astounding that organizations continue to make the same mistakes and not learn from history etc..