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..
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.
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.
* 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 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...
They could have at least used "Y" and "N".
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.
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.
Except it’s now applied to programming languages.
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.
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.
Outsourcing turns an investment opportunity into an expense.
“We outsourced all the profit, but none of the risk”
https://pdfs.semanticscholar.org/e9da/f5cc1c94c6e34e29095ca1...
In this case the client didn't want .Net 3.0 experts to support a legacy app, that's what the consultants built it in and then let it turn into legacy by not performing regular maintenance.
The client didn't know that it was becoming legacy until it was too late because they never developed the in-house expertise to understand what was necessary and the consultants have no incentive to do it by themselves. In fact they can charge more by letting it rot and requiring development of a whole new project to replace the legacy.
That is the very definition of ‘their business model is geared towards building one thing, learning one technology, and then exploiting it for as long as possible with minimal evolution.’.
This kind of lock-in at the enterprise level is a dream come true for them. They can marshal armies of AWS certified architects, and tie themselves to every corporation in the world, forever.
AWS is not cheap, unless you really understand the business domain, or someone else has done the hard work of understanding the business and re-architecting the design to leverage AWS' value propositions. It is painful to watch a team that doesn't understand what is really going on blindly rip and replace on-prem VM's with EC2's that only need to for example, run a script once a day to perform an extract and load operation in a few minutes. Even when you run pico instances, applying the same design culture across the enterprise adds up in a big hurry.
This isn't Indian or non-Indian, this is "whether they deeply care about the customer enough to look for innovation on your own". You can't agile your way to nor bottle up and sell by the caseload innovation. I wish like hell we could, I'd buy a Panamax-load of that and mainline it into the fusion and AGI problems. What jrumbut said in this thread has some validity in certain scenarios, "Outsourcing turns an investment opportunity into an expense." And like the-dude said, the initial innovation is the automation behind aaS. It is up to those who build on top of aaS to carry that innovation momentum forward by adding their own innovation, the innovation isn't transitive nor inheritable by just using *aaS, which seems to be happening a lot currently though that is changing at an accelerating pace.
I'd bet Corona virus is probably going to accelerate this. The amount of change going on in is so great that those that adapt the quickest will weather the storm the best.
"Digitalisation" has merely been replaced with "Industry 4.0". And after that hype train ends, they'll come up with some other nonsense.
This, I think, is why companies like Wipro and TCS dominate in traditional financial companies like big banks where stability and security are emphasized more than innovation and feature development. I've seen Java apps running on RHEL5 as recently as 2 years ago.
Internally, we consider outsourcing the same as pausing all forward momentum on the outsourced components.
It's just a reduction in current cost with an understanding that there will no new features and very little maintenance.
In a couple of large retail examples it was obvious that they knew their entire bricks and mortar business model only had a decade or so of life left in it and they figured their godawful legacy ERP solution would stumble on until then.
Like 99% of business is run like this. So... It's hardly surprising.
The impression I have is that their business model is geared towards building one thing, learning one technology, and then exploiting it for as long as possible with minimal evolution. This is fine if you don't need the software to evolve, but most business applications do need to evolve even if slower than at a start-up or FAANG.
At least where I work there has been the recent realisation that outsourcing all your technology means you will struggle to iterate and improve that technology.