Indian IT consultancies struggle against technological obsolescence
economist.com
economist.com
I used to work for Razorfish for about 2 years, working with our counterparts in London, Austin, and San Francisco. I ended up building a team of 50-odd Products Designers and Front-end Engineers in about a years time.
So, We used to work with lots of "engineers" from well-known other Indian Outsourcing firms. Here are few anecdotes;
Even amongst themselves, they don't respect each other individuals and teams. The Indian team in Singapore/Bangalore/San Francisco will called the Chennai/Other-Locale team as their outsource partner/team and are mis-treated. I was like, "I thought you guys were team!"
In another incident, I once lambasted a "tech-team" of a really well known India company for not even knowing how to push codes to git. I patiently explained to the team on how to work collaboratively and to push codes, send in pull request and not to email us zip files of their codes. Their head of something-something (too many senseless designations/titles) was not happy and in his mistake, sent a "Reply All" to the tune of, "Any email from Brajeshwar should not be replied immediately, call a meeting with the tech heads."
Well, I was kinda referred to someone who should be sent in when shits stars hitting the fan. ;-)
Western companies take all the great work and push down to Indian firms not interesting work, some dumb enough managers will bow to client( bootlicker ) without much of know how take that job and come to us.
I worked in MNC and Startups seen my fair share of so called types of projects/managers.
It was 2013, but even then I was blown away by the extent to which the engineers on their end didn't use any modern version control. All of the deliverables were send over FTP updates, and zipped file directories.
I have a distinct memory of basically begging my boss to let me expense a VM on AWS (this was probably somewhere around 2008-2009 IIRC) and we would have been up and running the samenday. Never happened - we just slipped the timelines for a few weeks and billed the client.
To be fair we did use clearcase for source control, but the outsourced teams were equally awful. There was a genuine concern that a lot of the team members out there were people's friends/family/neighbors because they never ever spoke in meetings (the lead would answer on their behalf if they were asked a question), and either we never saw any code from them or what we did was delivered slowly and was usually awful verbatim copy-paste work or simply just plain did not work.
Edited: this was _not_ exclusively from Indian IT firms.
In the pursuing interview/talk, my response to how I can build a team meant for the web/app was -- design alone is pretty meaningless, so let's create a team that understands designers' creativity and the power of engineering.
He thinks I was crazy because I told him I code my designs. Some of his words;
- "Designers should be shielded from Engineers, so their creativity is not limited."
- "I have avoided the other team and kept to my design team, and when the deliverables are passed-on, my job is done."
Of course, I looked up the guy later and learned that he has steadily grown his career like a well-designed graph, from an intern designer to the head of a design team in about 20 years.
I had to document and then teach over multiple sessions a small team from Infosys how to use Git. 3 weeks, and they all said they understood. Months later nobody could still check code out let alone commit. Then again, I’m not sure I’d be happy with them committing - a lot of their code was actual copy and paste from multiple Stack Overflow questions and answers unmodified into the same file!
I didn’t mind that they were being paid double what I was on, but I was mightily angry with the quality of their non-work :(
Not only did he not have expertise on Spark, he could barely type and I had to do everything for him with regard to Git. I suggested it would actually be a better use of his time to brush up on these essential skills than to try being productive without them but he refused. He actually seemed to think that _I_ was the one who needed to work on my skills and that he was doing fine.
Did he just lie his way through the interview process? It seriously seemed like he watched some YouTube videos about big data and then decided he was a black belt in the area.
Once the contract was signed we never heard of this again. We were stuck hiring consultants that were almost as bad as TCS.
Having worked extensively with the major Indian vendors, with people from India in different settings, onsite and offshore, I observed that they simply focus on labor costs in Europe and elsewhere.
Salespeople tried to sell us dozens of teams with “cheap” developers of every skillset we wanted.
But that is not how software is done. I want outcomes not masses. I need creativity to work on tools expressed through software not cheaper developers.
I felt sorry for my Indian dev friends that the true value of these folks was left off the board.
Salespeople always tried to solve a problem with another “cheap team”. Enter SaaS...
While you can in theory do your IT things with no passion at all, and kill all creativity and still be productive, it often ends up being just 'mass' like you describe, a transformed version of the classical western 'consultants' that usually end up being companies that focus on sales and billable hours and never really deliver what the people needed (referring to earlier HN posts about accenture and deloitte).
I get that at some point all companies converge on the same generic point of being in the business of making money at all costs, and making it 'measurable' via sales, hours and contracts. It doesn't matter if it's software, financial, legal etc. At least not to them at that point.
The bigger problem with this is that the IT systems are not as well defined or a closed system as the other examples might be. A ledger would be simple to verify in comparison: you apply a fixed set of rules to a fixed period of data and it must result in something within a known range. With software you can do a little bit of determining that the 'borders' of your 'box' of functionality would be, but to do an exhaustive verification is so far from profitable that it's only done in a few highly regulated systems like flight controllers.
So now we have a system where a lot of money and power vectors are involved that would (somewhat) work for legal and finance and the likes (i.e. the classical big ones that existed long before software did) and a constant attempt to apply it to IT and hide everything they don't like about getting the wrong results. It still eats resources like the other kinds of work, but doesn't produce the results you would expect for the resources that went in to it.
Software doesn't operate in a vacuum, disconnecting users, buyers, sellers, or stakeholders in general is bad for everyone and because of endless change and interaction the whole model of 'buying a product' hasn't been realistic since 2000, and with connected OT (think SCADA and the likes) it won't even apply to embedded systems anymore.
This sadly happened to me many times. Since the quality of many Indian teams was extremely abysmal, I found out that many so-called developers had no IT background at all, as you wrote. They went through a 2 to 4 weeks HTML/CSS/JS Bootcamp, and, very important allegedly in India, received a certificate, that qualified them as “Middle Web Developers”.
While I'm sure some will say that 3.2k is ridiculous in country X, I personally met people in all of the above countries working for less while being more experienced.
So 3200 becomes $4800 (or just under $57k a year) - that's still a good deal given what you'd get.
I've worked with eastern and central European developers and some of them are phenomenal (the skill breakdown is about equivalent to UK devs as a pool maybe tending towards them been slightly better but there will be some element of selection bias in that, language barrier is the biggest hurdle, many of them speak/write good English - my partner is Hungarian and her written English is at least as good as mine) but when the tiniest miss-understanding on requirements is costly during development and potentially devastating in production that really starts to matter.
Hell, I look at the delta between what my firm bills me out for and what I take home, and it's about 12% of my fully loaded day rate.
20 USD / hour * 8 h/day * 21 days/month * 12 months = ~ 40,000 USD / year.
Of course, experienced ones don't receive that might higher salary either. About 5 years of experience would probably get you around double to triple the starting salary.
That isn't sustainable - we will just see things equalise with Germany and then where is the competitive advantage? So cutting costs by pushing technical work to eastern EU isn't sustainable, at least in the 10 year time frame.
I am sure EPAM and the tech industry there will adapt to the shift but they will not be as the new Infosys.
I don't mind much about the wage gap between countries when I do local work, but it gets ackward when working with remote teams.
Like I may earn $20k/yr here for what my teammates abroad would be making $100k/yr.
Big IT Indian firms usually will choose one or two highly talented developers for a project team and others just hop around them. Usually these projects aren't also very engineering-intensive and becomes boring once the base framework is created for creative folks. Good devs don't stay longer in a company at least during initial years simply they're in good demand and gets double the package with every jump. Eventually they'll make it to Indian subsidiaries of US companies like Microsoft/Google or, they'll start their own expert consultancy/product companies.
For the record I've worked out of India exclusively and have charged up to about $100 hourly rate from my US clients. I've gone through above process - my last job being at Microsoft India (2011-2016)
If they can deliver X amount of value they can also charge X for their service. This means if you hire an Indian for $10 an hour you're going to get value equivalent to $10.
Since productivity per member drops as you increase team size you can't just hire a bigger team to get yourself out of this problem. The true number of developers that your project needs is probably constant and quite low.
If you hire cheaper but less experienced developers then it might simply take 6 times longer to finish the project than if you had hired an Indian developer that charges $60 per hour. This is usually where the project fails. Managers expect the project to be done in 6 months but this estimate is based on competent developers with 3 years of experience, not beginners who are working on their first project and first need to gather 3 years of experience to adequately finish the project.
Really the only way you can get a real bargain is by hiring someone, letting them gain experience without giving them a raise. The difference between market rate and actual developer salary is where you save the most money. The tricky part is creating a environment in which people want to stay.
I think the most promising signs for the local industry is that it’s starting to produce some rather successful home grown startups. Which are much more likely to attract local talent than the outsourcing body shops are.
> The bigger problem with this is that the IT systems are not as well defined or a closed system
This is the big issue. At the end of the day creating truly good usable software is both an art and a science. Data structures, algos and theory, but also thinking outside the box, asking inquisitive questions, challenging product and design.
This doesn't lend itself easily to mass export. Also, culturally, I've found that the West has a different way of thinking about things. In India, questioning your superiors is not something that is done often, but in the West it's common to challenge your boss on ideas.
Dig not that many layers deep, and you'll expose the ill-defined and open systems in those industries. This is true nearly everywhere in nearly any human endeavor. This is why the Japanese kodawari concept (meticulous care in craftsmanship, design and service) is even feasible across an entire culture for centuries and counting. Once you really start caring about the customer, your entire center of gravity in your relationship with them changes, and you start stepping through the process through their eyes to anticipate their needs and empathize with how they likely feel through the process you set up for them to go through.
This is very different from the Western "attention to detail" concept. Personally for me, the Western concept has less of a connotation with focus upon caring and empathizing to "listen for" the details, and more upon a situational awareness to "watch for" the legalistic steps of a spelled-out procedure (perhaps rooted in an Industrial Age paradigm?).
That's a really good point. We haven't even settled on how to weed out bad programmers through a formal structure yet, and we still sometimes hear about companies setting KPIs based on LoC or bugs fixed. I'm not sure if it's even possible to have an objective framework to evaluate an outsourced system apart from "meets the spec" which is usually not very helpful unless there is in-house expertise spending a mountain of effort building the spec in the first place.
Fully agree, but the people making the decisions at large corps are not developers, and are just as focused on costs as the Indian outsourcing firms pushing low cost devs. And in turn, those people are pushed by the board to make cost reductions, and board members understand this even less.
As a developer and architect, I've had this discussion many times over my years working in the enterprise space, and it always ended with me throwing my hands up and giving up.
It's easy to save money on developers, yet very quickly produce a net-negative result for the company.
Sadly, few companies have guardrails to prevent these sort of shortsighted choices. E.g. requiring parallel approval of projects by IT architects (whose existence admittedly carries its own hazard).
Undoubtedly this is true, but there's an implication here in this context that somehow on shore, or more well paid developers don't create such technical debt, when in fact they do. It amazes me that I see team after team of competent well intentioned developers create one ball of mud after another. It's striking really.
It is! But I don't understand... how? How does that happen? You should put good people together and get something good. But it is not always so. Very puzzling to me.
This is like heroin to these corporations. They use Jira and Rally to create a cult of numerology games that reduce tasks to filling time-boxed, random things- to-do. Be sure the Agile coach is drilled in the game and clueless about "technical-things". Add an equally clueless Product Owner whose background is Word and Excel and you'll create the best Big Ball 'O Mud anybody ever wished for.
And if you're running late, add a dozen or so new inexpensive -cough- "developers" from your favorite outsourcing firm.
I have known this as a junior, never really getting to know a technology before hopping to the next one, and I am still having to deal with this now that I have a bit more experience, trying to convince my colleagues not to be so quick to dismiss the modern for the newer.
Sometimes I feel like I do not know what we are doing although being one of the senior members of the team. Stuff quickly snowballs into mud... It's like there is not enough effort or time to deliver functionality while also staving off entropy
I think a lot of this effect is caused by wishful thinking from people embarking on business plans which they would realise are non-viable if they did the accounting properly. People are buying a fantasy instead of an IT system.
And that's not because the guy making it is shit. It's because while he's making it, the market is moving and I'm watching it, and when it moves enough I have to come over to him and tell him to change things.
That's why slow, costly things overrun by more and are later. It's because the world changes, and fast+cheap things are superior because even if they're worse, they exist and can therefore be changed to what the world is.
If you put in the time and pay the money to build an awesome system that is stable and usable for decades, there's only a small chance you'll be rewarded. First because no one notices when software is working. Second because you will probably have moved on to a different role at a different company after your wisdom is confirmed ten years later.
Saving money now is what gets attention.
If you have a bad CIO/CTO - you're screwed long term.
I have worked in these "consultancies" so here is my take. There is a wide range of talent in these consultancies. Some examples are web app developers/software engineers, website people, implementation engineers/enterprise app software, supply chain, cybersecurity, etc. Yes, unfortunately, some of this talent is not familiar with basic software tooling like basic linux commands or git or setting up a path variable. This sounds really bad until you work with a Georgia Tech computer engineering grad and realize he doesn't know this either.
Many methods of sales. A sale can be considered a billion dollar deal or having a director hiring a contractor. The billion dollar deal is closer to consulting. The director hiring a contractor is closer to professional services firm.
Prior to these consultancies, the orgs would hire their own employees and train them. What changed? Contractors easier to layoff than W-2 employees. Maybe their own employees didn't have the expertise.
The truth of the matter is for most organizations, IT is a cost center along with legal and finance. It is not their money maker. They have no interest in innovative IT/software "technology" until their competitor in the same industry as them has it. Price matters. Laying off people easily matter.
"Consultancies" exist for that reason. Look past their marketing/branding and their official classification is a professional services firm.
Accurate and poignant. Having lived in the banks for a while, this will always be the case in industries. They don't give a shit if you have a passion or about your career. They want you to be a "xyz developer with 50 years of experience". Sometimes I think we forget how the real world works when we are enamored with the cool things computers can do.
For example in banking, I would love to set up income apportionment (i.e. x% here, y% there, ...) but for some reason I have to split out income deposits every once in a while via manual, external tools. Why is it again that we haven't set up two sided and payee specific authorizations so that we never hand out data that can be used to steal from us and we could be notified if a payee tries to bump the bill? I've suggested these and other things to banks and credit unions for years...
Like every musical chair game, some poor schmuck will sleep and lose but most of the banks will be just fine.
You could go further and note that every angel or VC backed firm has a financier behind it.
I wouldn't claim it will be easy but I will suggest there is a large opportunity.
Tech debt is bad and all but so is real debt and paying a lot of money upfront won't mean no tech debt.
The issue with lack of tech talent - is that today, more than ever, we realise that tech/engineering talent is what drives the world. You've seen how this pandemic forced conservative companies to turn to online retail, just to survive. There is no going back...
You may ask - how does that affect those consultancies? Well... Major service and COTS providers need less and less consultants at implementation phase. Companies that go for SaaS need specialists(tax, compliance, logistics, etc), that Indian engineering grads don't satisfy.
In the end the article is about how those companies need to address lower demand for their services.
Its a sad state of affairs for new grads in these consultancies. I have met Math majors from top Canadian universities, physics, and biomedical engineers. They were learning .NET and similar tech that operates at the app layer lol. I think its a waste of brainpower but work is work I guess. They probably couldn't find jobs in their field.
Also, this was in the US and a small sample of their US hires. I don't know too much of how it is in India.
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.
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.
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.
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..
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.
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.
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...
* 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.
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.
They could have at least used "Y" and "N".
Except it’s now applied to programming languages.
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.
Let me tell you my side of the story. We are a software development company based in Macedonia - Emit Knowledge
From personal experience, we've refactored/rewritten code that was developed by development teams from USA, Canada, Sweden, Denmark, UK where the hourly rate is sky high compared to ours.
According to me the problem is not in the outsourcing itself, but rather in the company size and culture. Bigger companies tend to have stronger sales teams, getting whatever is in their way, closing deals without having expertise and know-how. The only driving factor is how to maximize profit. Hire less experience devs, leave the SRS so you can charge CRs and that kind of doctrine.
On the other hand, I can tell that we as a company have better processes than bigger companies: - having our own framework: https://signals.emitknowledge.com/ soon to be open sourced; - having multiple products, which you will find as rarity when it comes to agencies; - having an research and development; - before we start working with a client, the agreement is that it is a two sides stick, the client needs to be part of the development if success is expected; - regular communication is a must; - we discuss with the clients to reduce scopes if we identify that it will increase costs without providing a business value at the end;
The difference is in the culture. As a CEO I would like my client's business to succeed so we can work together as partners, long terms, instead of getting money from CRs and playing "you haven't specified this".
Be transparent guys. Stop playing games with your clients.
You need to give in order to get.
I think this is the part that's most important and similar to how orgs like RedHat operate.
I feel the talent we have now has the ability to crush, kill, and destroy the talent in Silicon Valley "engineers" at a fraction of the price in terms of output to input ratio. We've done work on crazy levels of core infrastructure and are scaling.
The "catch" is that we have to do over-documentation, lots of screenshots, and consistent routine communications. My CTO and cofounder speaks 4 languages.
The talent has to be managed.
Within 12 months of being with us, a Pakistani developer has massively increased their value.
We also don't bring anyone into core leadership team onshore unless they speak at least 2 languages or more or they have a serious edge in terms of talent.
The developers who complain about Indian and Pakistani developers are usually:
- Unilingual
- have been over-resourced in every position they've ever been in
- poorly travelled
- are used to working with onshore talent that has context
- find the time difference to be abhorrent
Right now, our core "mission critical" team speaks 4 languages.
I fully hope to add 10-20 languages as we expand. I'm hoping for Turkish, Arabic, Georgian, Russian, Ukrainian, Polish, Spanish, and Portuguese in that order...
You cannot expect someone who has 10-14 times less electricity/capita to suddenly have the context of an American. It takes time.
We pay for the entire floor of a building in Pakistan, have cameras, etc... remote now is a core part of our tech biz.
Good post, upvoted, but why the cameras?
Not for "surveillance."
It seems that most of the market just does it wrong when they outsource. They either assume that the outsourced resource is a black box that produces finished products/closed tickets/etc, or they assume that the people on the other end are like a western developer in terms of background/education/culture/language/career path/goals.
What it seems you've done is treat these engineers as first-class employees in your company. For a new starter you'd provide training, context, you'd have ways to get them up to speed, you'd invest in processes and communication to make a separate office or timezone difference work.
Congrats, well done. I'm not surprised that you're finding the results to be so good! It's a shame more companies who outsource don't recognise that this level of effort is necessary.
Unfortunately, the list that follows describes the managers of literally every US-based company. If this is the requirement for successful offshore consultancy, then engineers here can rest assured their jobs will never actually be at stake.
When you can successfully hire a remote worker without needing 1) to speak their language, 2) understand their culture, customs, holidays, and 3) worry about time zone differences, then engineers here should start worrying about offshoring.
You have just described most offshoring to latin america.
No. Engineers should be afraid of offshoring, when they stop learning and take their job for granted.
Also - missing the "next big thing" is something that people do all the time.
One thing that one of my former colleagues told me - "Our job, as engineers, is to make our jobs obsolete in the end".
What do you mean by this? Context is really important in programming. I'd say offshore devs are at an actual disadvantage if the offshore team always has less context than the onsite devs.
I myself do not build or code outside of Matlab.
Developing talent and picking dark-horses is hard work.
> I feel the talent we have now has the ability to crush, kill, and destroy the talent in Silicon Valley "engineers" at a fraction of the price in terms of output to input ratio. We've done work on crazy levels of core infrastructure and are scaling.
SV is a hotbed for a ton of international talent, not just American. Indeed, SV pays the most out of anywhere on the planet and therefore has an incredibly strong pull for the best and brightest from across the world. I sincerely doubt that one country's local talent is strong than a clustered talent center like SV.
Is Pakistani talent flying under the radar? Are we simply not aware of the amazing research and development being made in Pakistan vs US or China?
Every employee we work with is highly vetted.
The level of untapped talent and work ethic in Pakistan is extreme.
And I'm 100% sure that a country of 212mil will have a lot of talent. But engineering isn't singing or contortion - you need appropriate education and right conditions.
Your website doesn't show any specific projects you've done, and I totally understand client NDAs, but is there anything you can share to help understand your perspective and experience?
I'm genuinely curious and not trying to call you out, you seem brilliant and your team sounds like it, but it's hard to verify because there's no public projects from what I can see on your website or Twitter.
The blog will be updated at some point, I'm just busy.
In the end, an on-site employee took over and fixed the issue in 5 minutes. It was pathetic to watch.
One day there will be a reckoning for these large consultancies. On that day, virtually no onsite IT employee will be unhappy.
If you do it wrong, things will always go bad.
Most managers can't even manage remote work from people in the same city, not to speak about same nation.
Those managers fall apart with people from offshore. Because they have no idea how to communicate and how important it is to document, document and document everything and set targets.
I've also worked with clueless ones very early in my career and the cluelessness gap is stark. Working with local year 1 university students worked far better.
Also big timezone gaps are horrible for everyone involved.
Easy there eloquent soldier! You might create a blackhole with that much talent.
Education: Engineering syllabi are pretty outdated. And due to a work-just-enough-for-month-end-salary mindset, professors are against being up-to-date. As a result, everywhere but in top notch colleges, quality of teaching is piss poor.
The "Rat Race": There is no better word to describe this. 90% of people who enter computer science / engineering courses don't have any interest in computers. They enter because they scored well in entrance exam (which can be games by studying some books relentlessly for some years), and since Software is still one of the highest paying fields. And quite some of them continue their relentless pursuit for a good "package" by grinding Hackerrank / leetcode. It is literally a rat race.
The same mindset will create an impression that being a manager is superior to being a programmer. Because you are "managing" people. These people do all kind of office politics to become manager, and spend rest of their life ruining someone else's life.
You can't expect these kind of people to love their job or even do it properly.
Hierarchy: Related to above point, in India, you don't oppose or even question an upper officer or elder's decision, because ELDERS ARE ALWAYS RIGHT HERE IN INDIA. That's why so many people want to be manager.
Lack of interest in improving education: In many Indian engineering colleges, one year is wasted teaching theoretical subjects like chemistry and physics. No computer science related subject except basic C Programming (Lol not even malloc() and free()) are taught. This appears to be purely done in order to provide jobs for people who had studied these subjects. While teaching these subjects may have marginal benefits, they are outweighed by pure rote learning oriented assesment sysem and wasting one year of CSE programme. That's a bad trade-off for someone interested in CS. All entrance exams are based on Math/Physics/Chemistry and we have learnt enough of that. STOP the old age tradition.
If the chemistry they teach in last two years of high school (called pre university here), which is quite high level, qualifies for entrance exams, Computer Science should too. No I am not telling this because it is a programmers forum. But CS taught in pre-uni (optional subject) is more essential and often more helpful than chemistry and half of physics taught to these grades. But chemistry is compulsory for some legacy reasons. There is no interest to change that.
India has a lot of Engineering students.
There are around 60k students joining Tier 1 colleges every year in India (IITs, NITs, etc funded by the Central Government alongside some private colleges like BITS). Very few students from Tier 1 colleges join these consultancy companies. Most of them studying CS from these colleges join product companies like Flipkart, Swiggy, Paytm, Amazon, Microsoft, Uber etc.
Consultancy companies get students mostly from 2nd and 3rd tier (mostly private) colleges. Pretty much all these colleges are in a very bad shape. I think there are over half a million students enrolled in these colleges every year. Students still go to these engineering colleges since the education is not as expensive as in the USA and it's what pretty much everyone do after high school. If it was USA they would have just left college altogether instead of wasting money on a terrible college.
Sure, the quality of education of Tier 1 colleges can be improved a lot as well. But generalizing the entire Indian engineering education as the reason why these consultancy companies are doing poor is not correct either.
The number of engineering students enrolled in India as undergrad is around 350k (It's not over half million. My bad).
So students from tier 1 colleges makes about 17%. That's not a small fraction that can be ignored.
60k of tier one - are fairly smart and probably half of them are brilliant and passionate(being very generous here). They are the outliers that prove a point.
That said - 4 year degree shouldn't be a requirement in software engineering. It's a very poor quality marker
https://www.statista.com/statistics/765482/india-number-of-s...
I study at a so colled top college. Where highest placement is always around 50-60 LPa. That doesn't mean teaching and other things are good (sure better than average, but that's not what I call 'good'). The highest placements are more because of students and a FEW professors who actually happen to be passionate.
But in the entire class, there are less than 15% of people who actually have interest in CS or Programming. Many came through good scores in entrance exams (myself included) and many through management quota (i.e Paying the institution heavy sums). While the first group has some people who like programming and CS, it also has more number of people who just happened to get good scores because of relentless studying and practice, then took CSE branch because placements.
I don't think NITs and IITs look much better these days. I attempted JEE but that was really hard to get an NIT without studying hard for 2-4 years. People who have money take coaching classes and study for JEE exclusively, but a rural student like me can't do that. The system is gamed like hell. With the abundance of such coaching kids, I don't think IITs and NITs can keep their previous charm.
Here is a paper on the Joint Entrance exam (JEE) tragedy:
https://www.cse.iitk.ac.in/users/hk/jee/press/currScienceJEE...
My point is that tier 1 colleges produce a lot of good programmers. The reason why they are good at programming can be because of high salary expectations, peerpressure, parents, status, passion, etc. I honestly couldn't care less as long as they do their job. The reason why companies like TCS/Infosys are bad is not because tier 1 colleges produce programmers that are not passionate about CS. It's because India has way too many Engineering colleges that is of abysmal quality. And those colleges accept students who otherwise would not have gotten into any decent engineering colleges
> Many came through good scores in entrance exams (myself included) and many through management quota (i.e Paying the institution heavy sum
I don't think there are any tier A colleges that takes money for accepting students. Highest package is not really what is used for defining tier A. What I meant by tier A are centrally funded colleges like IITs, NITs and really good private colleges like BITS and IIIT-H(not SRM, MIT etc). None of them take students by accepting money. If the college takes students by accepting money then it is definitely not tier A.
> The system is gamed like hell. With the abundance of such coaching kids, I don't think IITs and NITs can keep their previous charm.
Sure. The system is gamed. But it's still a fair system. The rules are same for everyone. You are measured by the number of correct answers you circle in the paper. Nobody cares about who your parents are. Nobody cares about what you wrote in your essay. Its a hard competetion. But it's a fair competetion. There is reservation at play for students from backward castes as well but lt's not get into that. Some would say it's good. Some would say it's bad.
That the quality of NIT and IITs are decreasing. I have seen a lot of previous generation people who studied in IITs and have stellar achievements. But I don't think the same will be true for current crop of IIT and NIT students. To be clear, I won't be judging those people who are of my own generation, but this is a disappointment about how artificial the entry to these institutions has become. How many of them will be mechanically grinding leetcode as compared to their previous generation?
Increasingly so in recent years - the year I wrote JEE mains, the paper was much more susceptible to 'tricks' and 'shortcut formulae' taught by coaching institutions, than the previous years.
At this point, I have heard IIT professors expressing discontent about the coaching center crap. I don't know how you think it is still a fair game.
> I don't think there are any tier A colleges that takes money for accepting students. Probably explains why your batch had a lot of CS students who were not any good.
Fine, what defines tier A? I also mentioned lot of them with high state-level entrance exam scores are not "Good Enough", too.
In what I have seen, those people who do well in exams solely due to peer pressure and high expectations, don't very well understand the concepts. I have seen so many such book-worm topper kids not properly understanding recursion or algorithm complexity.
This might not be the case for every firm or client, but I hear a lot of my friends complaining about there not being very little work, and if you're someone competent enough, you can complete a day's work in an hour and play Fortnite for the rest of the day.
I've seen this a lot, especially in ODC parts of Capgemini, TCS, Cognizant etc - it felt like only a very small number of people actually wanted to be developers or even architects; everyone else just wanted to be "a manager".
I'd asked about this strangenes, and Indian friends told me that managers were seen as superior, and even their families would push them to become managers.
Tech and finance eat all the smart people. There are unlimited tech jobs, but only so many jobs for physicists, chemists, professional musicians, teachers, lawyers, etc. And the vast majority of them pay a lot less than tech and finance.
Furthermore, it's naive to think India is the same as western countries - it's a huge country with it's own unique culture (cultures, really), history and languages. For many Indians, software development isn't seen as professional career path; a dev job is little more that a vehicle to becoming a manager. And being a manager, in charge of people, elevates your social standing, to a position of kudos and respect - that doesn't happen in the west.
It isn't strange in the slightest. If you look outside tech, you'll find this in every industry in every country. Everywhere in the world the person in charge is more respected and better-paid than the person doing the work. And it's always been this way. Tech, and software-heavy tech in particular, is the outlier.
I think it's because managers get paid more money and have more respect. People wanting to be manager (or chief, captain, general, shaman, headman, minister, consul, cardinal, king, nobleman, judge) isn't a unique feature of any single culture or organization. It's a universal drive across every culture throughout history.
But the criticism of technological obsolescence cannot be just levelled against these consultancies alone, much like how almost every electronics hardware was(is) is manufactured in China due to cheap labour costs, so was the reason behind extraordinary growth of Indian IT services and so it all comes down to 'What the client wants'.
But when their client suddenly wanted to catch up on the AI/ML/Analytics bandwagon, these consultancies understood the need to revamp their skilling strategy. That said, it's not like these consultancies never innovate they have dabbled with large in-house products ranging from cloud to automation and some have been fairly successful e.g. TCS ignio, their (AI in air-quotes) automation product[1].
End of the day, they get the job done for their clients which includes almost every major Bank, Retail, Pharmacy to even Aerospace industry like Boeing (Only green card holders/US citizens are employed), Automobile - Ferrari, Cyber Security etc. also saving huge amount of money for them in the process.
[1]https://digitate.com/ignio-aiops/ (Warning: Marketing fluff).
I feel they entirely missed the elephant in the room : SaaS.
This is the part I'd like to have seen more proof and analysis around: "the Indian giants have also been unable to keep pace with technological change. Corporate software is becoming easier to use, reducing demand for their services. The lucrative legacy business of running mainframes is evaporating. Helping clients shift to the cloud makes money but not nearly as much."
* please note that I have nothing against coding bootcamps, the point is that most graduates of these bootcamps are by definition very new and green to Software Development.
The fault is mine for thinking I had the skillset to hire in a field in which I'm not an expert. It's the same with any field, actually. Marketers bemoan all the time when companies hire a cheap, bad SEO, but you have to feel sorry for the hiring party that was making what they thought was a value decision, even though they were not a practitioner expert.
Zooming out, you can see how decisions are made at a massive scale based on the hiring party making the decision based on the sales team or personal business relationships, while not being the subject matter expert.
Most popular are Eastern Europe (Serbia, Ukraine, Romania) and Asia (Vietnam).
The """savings""" multiplier is still in the order of 3-4x, but time zones work out better.
I am however, still baffled how this happened after seemingly every company made the discovery that outsourcing too much of your business doesn't tend to work out (20 years ago, during the last boom).
I also talked to several companies that were willing to trust their outsourced teams to work remotely, but not the staff located in Switzerland (who once again have to come to the office during the pandemic).
For example, I work in a small product based company in a niche segment where we’re among the very few people who can provide the solutions we can, and I’d happily pit my colleagues’ skills against the best of SV.
Keep in mind that this article is only about the Big Five. They have a certain business model, a value proposition and a set of clients whom they service. A particular niche that’s been very lucrative and productive for them. This, as the article says, may be drying up.
But that doesn’t mean that Indian IT as a whole, or even most of Indian IT is in trouble.
As long as customers still use SAP and Oracle it will be a long while.
The problem with enterprise software was never the technical details - it was getting archaic, inefficient business processes in systems that didn't support those processes.
This doesn't change with SaaS. Extension tools have gotten better but the core problem still exists. So many customers still use on-prem SAP hosted in the cloud. The end result is the same requirement for everything but sysops.
1. A good development team in the US/Europe costs $X
2. An equivalent team in not the US/Europe costs 75% of $X
3. A terrible team in not the US/Europe costs 25% of $X
Most outsourcing decisions instead of stopping at Option 2 and enjoying the 25% savings, got greedy and went full bore to Option 3 and thought themselves geniuses.
The CEOs of many of the Indian outsourcers are so incompetent and focused so exclusively on relationship based selling that it's pointless to even bring up the topic of them falling behind the tech adoption curve. It's a giant heap of incompetence and corruption.
The time and material billing for these make it quite attractive from a revenue point vs fixed bid greenfield projects. I don't think that situation will change anytime time soon as along as these companies stick to services.
It's pretty much, the one and only thing that keeps enterprisey software maintainance people occupied.
Thought, the Java is finally on decline on the backend. Android is pulling Java devs from enterprise, and cheaper to use languages displace Java there.
Is there any evidence this is actually the case?
At my current job I try to stick to Java for any new services because it's a great overall language.
Java has become an enterprise language and is associated strongly with many negative elements of enterprise culture, though. "Written in Java" may as well be "designed by committee" or something out of a Dilbert comic or Pentagon Wars chimera.
There's not much decline of Java overall, just a shift. The pie is getting bigger.
10 years ago there was a big backlash against outsourcers and tech moved to "Agile" delivery and shiny AWS. Companies started investing believing they were being left behind.
We're going through a low point in the hype cycle right now. Blockchain/AI/Data science have all been a bit disappointing for Enterprise. Much of the mobile revolution passed them by too! Cloud is a bit pricier than expected and keeping on top of trends (CloudFoundry/K8S) has been exhausting for in-house staff.
Outsourcing is great for handle-crank, cheap IT and that's not going away.
Also, why is Saas being frequently mentioned as a solution here? Enterprise system complexity is not very Saas friendly.
One of the most valuable experience in my education was being forced to write a review and discuss in class ‚There is no silver bullet‘. Better tools will not stop the flow of new requirements. And being good enough for todays business does not stop your competitor trying to outmaneuver you.
The dynamic may change once silicon progress has slowed down but until then it will be risky to stop innovating.
In most cases, but not all, hiring consultants suggests you don't understand enough about your own business to manage it yourself (insert image of senior executive trying to work out the Zoom so they can check their staff aren't slacking off like their damn nephew, useless kid, thinks he knows everything). The cost advantages really aren't that large either...sure, the staff cost less but they hire 10x more staff, they are slower, and when the requirements change you are done for.
Btw, some places are very good for outsourcing (Russia, Ukraine, Poland, Belarus) but India is definitely not one of them imo...which is bizarre given how many engineers, prevalence of English, etc.
I've had just as many problems working with outsourcing firms in Russia and Ukraine as I have with Indian firms. And I've had the same problems working for companies that tried to hire very cheap US based developers in house. I think the problem occurs whenever developer cost is your primary metric.
At this point it's not even about the money, it's just that they're more pleasant people to work with.
Were you paying good salaries?
In the UK, you will ask someone to do something, you wait a week, ask where it is, and they haven't started, need more information to start, and want more money. Jokes.
I am not going to go on about it but, as a Brit, our tech is way way behind...and that is despite having all the advantages in the world.
I can't imagine trying to find an outsourcing firm in the UK. London can absorb all the good developers between tech companies, banks and startups. There is little reason to work as a freelancer trying to compete with Eastern Europe.
Health care insurance (in the US) is, ironically although not surprisingly given your obvious ineptitude, one of the all-time best examples. US administration costs are larger than most countries public health budgets. Insurers in retail lines, although not in health care, picked this up very quickly because of distribution changes in the 90s. They invest heavily into tech, and the ones that have invested most heavily are seeing the fastest top-line.
It is great some people still think this way though. One of the great market inefficiencies of the last ten years was firms/investors being unable to distinguish between a cost and an investment.
Your business acumen is messed up. If your product is stagnant like most financial products, importance shifts to other things like marketing, cross-selling, etc. Don't get confused between the profit center and the cost center that occurs when products are stagnant.
Yes, some tech has improved things like better analytics and tracking for companies such as personalized car insurance or paperless but notice how this improves the core products features or cost.
"If you are using Shopify, that isn't a cost, it is an investment. It isn't like legal or finance, usually, because it is product-related and can be used to reduce prices/improve service."
No, just no. If I am Apple selling iPhones, no investment in Shopify or websites is going to help me make better iPhones. Shopify is not product-related. What you mention is a Mandatory marketing expense which is also a cost center. You either have your marketing team or you hire an external marketing agency.
You mention distribution. Marketing without a product to sell is useless. Hence, costs.
Insurance and other financial companies need marketing to sell. It is a mandatory expense for them. It is not their product but their product is stagnant so it matters very little.
However for Facebook, marketing is their product, profit center. There are other orgs who sell marketing automation software. There it is a profit center.
Financial products aren't stagnant. This is a wild non sequitir generalisation which doesn't really indicate careful thought (they aren't stagnant, duh). And yes, as I said, tech is used to improve the product...it is an investment...that is why you can capitalise development costs.
And yes, just yes. Again, you seem to (somehow) have picked the worst possible example for your argument. Have you been to an Apple store? Is it just a IPhone lying on the ground? No, the stores are product-related. Literally, you picked the company in the world that has specialised most heavily in trying to added product value through their stores. They are not a cost, they are an investment (even companies that have a low-cost store format...that is a reflection of their product/brand/etc. and again, this will keep coming up, some of these costs are literally capitalised and literally investments on the balance sheet).
Again, another bizarre point about which things come from other things...a distinction which presumably makes sense to you. Again though, marketing is an investment, it is how consumer staples companies have built up brands (again, it is something that some investors also capitalise onto the balance sheet). Marketing is also not regarded as a "cost center" in any business...at this point, I can only assume/hope you are trolling...but just read any financial report of a consumer-facing company. Any.
These rigid groups you have in your mind are very weird too. X is cost center, Y is marketing, Z is a cost...it has been fun for me but...this isn't how the real world works.
I pose the situation of using Shopify without a product to prove my point. Shopify isn't a valid expense with a product but you can have a product without Shopify. You might have to some really inefficient selling like door-to-door and leave money on the table but the point is you could do it.
Yes, financial products are stagnant. Insurance companies stat tables don't change that much. Credit cards from Capital One's perspective have not changed that much. Maybe from Visa's perspective it is considered profit center and have to change but thats because they make the credit cards and do the processing.
Profit center and cost center classification is important because it tells you what the business really cares about.
Yes marketing is important for companies and even more so for companies that are distributors and don't make their own products. Walmart does not make its own products but it doesn't need so much marketing because there is only a few players. Capital One is also a distributor but it puts a heavy emphasis on marketing because the selling credit cards is very competitive.
I'll give you a point. For distributors in a competitive space like selling credit cards, marketing is the profit center because a good marketing campaign is how they win.
You have to be careful because if you ask for someone who is "an expert in X technology", you'll definitely get someone, and they might be able to describe it at a high level, but may not even know how to compile a program or how to copy a file (yes I have literally seen this firsthand). You need to give people explicit instructions and be willing to help, and the in-house software developer almost definitely needs to provide things like architecture/spec. And you need to actively fight the need to increase the staffing for the project and prevent dumb/churn processes from taking over (example: writing 40 different scripts (separately!) to do something that could just as easily be done by one script with three parameters). And you need to manage the project into a position where maintenance/ownership can be transferred.
You also need to set them up for success by having a clearly defined scope and playing towards their skills (which means, don't give them work that needs a ML PhD math genius, do give them work like "write a PHP website that does this and looks kinda like that"). This is part of what I think the article is missing but also not really a fair expectation of what an outsourcing firm is. Consultancies are not meant to come up with 'killer apps', and you can try to pay them to do so and they'll be happy to take your money, but you shouldn't.
And to be fair, some companies are not even wrong because rewriting is still more expensive than just paying for maintenance.
Obsolescence is their bread and butter. I do agree they do have a lot of wrong and toxic people running middle management along with short term thinking. But that is partly due to their business model, a business model that gave the best returns.
Billions of LOC of Java are lying around and there is a need for an army of developers to look after it.
That being said, probably the real solution is SAAS.
Problem is they are not significantly cheaper than domestic programmers once you add management overhead and then compare the result against equally skilled domestic programmers in lower cost of living places in the US/EU. It's more practical and may be no more expensive to hire someone good in West Virginia, Kentucky, or Michigan where rent or mortgage payments and many other expenses are quite a bit lower than they are in big coastal cities.
Are you speculating here or have seen an actual trend out there?
What metric(s) are you using to measure that diversity?
I live in Toronto, Canada, and approximately 50% of residents here were born overseas. Toronto likes to boast it is one of the most diverse cities in the world (based on that metric, at least).
https://en.wikipedia.org/wiki/List_of_countries_ranked_by_et...
And you are probably using this one
https://en.wikipedia.org/wiki/List_of_sovereign_states_and_d...
So it depends what you mean by diversity
I whole heartedly agree to the huge advantages you get doing this. You have better control over hiring quality talent, more focused developers who develop institutional knowledge over time, much easier to scale up/down than the contracts with these consultancies and so on.....
Outside IT, I can confirm the same tree has been happening from my industry of Oil & Gas consultancy. Many American / European oil & gas consultancies now have Indian engineering centres employing chemical / mechanical / civil / electrical / instrumentation engineers.
It is easy to setup this over here. Everyone is welcome.
If anyone is struggling to hire in their local market definitely try to get in touch with talented people offshore and see if they can bootstrap a small development team to help your business.
Also it's not always about cost cutting, sometimes businesses struggle to find developers working on their technology platforms or just lack the pull to attract local talent. In these cases if you invest in an offshore team and help them learn about your business needs it will pay off in the long run.
There are design & engineering teams who deliver amazing value to their clients. These teams are nimble & specialised.
When you ask for Sr.managers, 2xmanagers, 2x Asst. Managers, 2x Business Analyst (with MBAs). You are quickly adding up costs for non-functional heads. The only way to remedy that is to go cheap on developers and bloat their numbers to match the overhead.
fish = plural for many of a single kind of fish
fishes = plural for multiple kinds of fish
So by analogy:
code = any amount of code from a single project
codes = plural for code from multiple projects
I'm American and this is how I use code/codes, so I'm curious whether you make the same distinction, or if you always use codes.
I don’t think fish / fishes is quite right. Look up “code” in the dictionary and you get at least two different senses of the word:
1. System of substituting letters/words/symbols/etc. for letters/words/symbols/etc, e.g. “morse code”. Countable noun.
2. Computing program instructions. Uncountable noun.
This is not like fish / fishes, because “fish” is countable—I can have one fish or two fish. When talking about computer programming instructions, I cannot have one code or two codes, but I can have one line of code or two lines of code. Just like I cannot have a bowl of one thousand rice, but I can have a bowl of one thousand grains of rice. Rice is “uncountable” in the grammatical sense even though it seems like you should be able to count it.
In Indian english, my understanding is that for the second sense above, “codes” is correct and “code” is incorrect. In that sense it is probably similar to “data”, in the historical usage where “data” was plural (in modern usage, “data” is often considered singular).
So, “The codes are on my hard drive.” makes sense to Indian english speakers, and “The data are on my hard drive.” makes sense in historical (say, early 20th-century) English. There is a singular version of data, “datum”, but rarely used.
It's the same as peoples... [2]
FWIW, there is no harm in the correction. "codes" is correct in Indian English, Indian English is a variant just as much as Australian English is, and people abroad will auto-bucket you as less intelligent than someone speaking more common forms. So it is still a smart action to switch yourself to the more common forms.
If you go to non-English speaking Europe, most textbooks come from the British Council, and teach British English.
If you go to China and a lot of Asian countries, a lot of their textbooks come from the USA, and will teach American English.
You might find some Aussie textbooks in Japan or China... You will not find a country that speaks Indian English outside of India.
So, "color" or "colour" are both correct because they are correct in one of the "standards" of English. "Codes" then is not correct because it is incorrect in what's considered the "standards" of English.
For the record, I personally am from neither US, UK, or any other English-speaking country. I also think correcting people's English on HNews is silly.
Just my 2c.
There are more Indian English speakers than British English speakers.
Are you going to claim that Canada uses nonstandard English simply because it's a hybrid of US and UK English with a few phonetic and lexical twists of its own? Or that Scottish English is somehow less legitimate than England's English (the two are quite different) despite Scotland being part of the UK for centuries?
As well, Indian English is spoken by an estimated 125 million people, more people than the total populations of the UK and Canada combined and about a third of the US population. And this is the predominant version of English in a country of more than a billion people, which makes it standard enough there to count as a standard.
Deferring to a standard requires a context in which to say whether one is or isn't speaking standardly. Since we're discussing a topic about India on a US-centric but globally inclusive website, either we should insist that everyone uses the site's predominant US variety of English (I'm happy we don't do this) or the Indian commenter should be free to use standard Indian English in discussing this without that dialect being called wrong.
I try to see it from the perspective of a non-native speaker trying to learn English.
If I know no English, and pay for teachers to teach me English, I definitely do not want to be taught Indian English.
Not because it's wrong, not because it's $whatever_adjective, but because it will sound incorrect to the majority of native English speakers that are not of Indian origin.
In a similar manner, you don't see Cockney English being taught, and you don't think of as Cockney English as "correct". It has indeed its rules, and is perfectly understandable to the speakers. I have nothing against Cockney English. That said, I wouldn't want to be taught Cockney English by professionals who claim "it is correct." It is indeed correct, but it will hurt my communication even in the most of the UK.
Source : https://en.wikipedia.org/wiki/List_of_countries_by_English-s...
If numbers decide what is the norm, Indian English should be it. However, I feel like there are other factors that you are using to determine the "correct" English.
That's fair... That should have been "majority of native English speakers". Corrected.
You'll now argue who's a native speaker, won't you... :)
IMHO everything other than British English is a regional derivative. The software world has caught up to that fact and soon the popular language tests will follow. They would need to do the needful eventually. Lol.
Same thing if you were a call center representative communicating in English with Indian audiences.
As for non-native English speakers, there are already some choices to make when deciding what to learn. If someone learns US English as a second language, they'll find it a lot harder to understand people from the UK, especially less globally common styles like those in Scotland and Northern Ireland. But if someone learns British English, they'll probably find those styles easier to understand than Louisiana or Newfoundland English, to name two less standard North American varieties. (Cockney is especially difficult to understand for non-native speakers of any kind, so I'm leaving it out of this.)
In this case, we're discussing an Indian commenter's choice to use their local dialect of English when discussing a topic about Indian tech companies with a global English-speaking audience.
Yes, I admit I thought "codes" was wrong when I first read the comment, but that's because I didn't know that aspect of Indian English, and I no longer view it as wrong. Anyway, it didn't detract from my interest in or respect for the commenter's substantive opinion.
So does that mean you would refuse to learn English words which originated in India like Shampoo, Juggernaut etc?
https://www.dailywritingtips.com/15-english-words-of-indian-...
Linguistically speaking, if enough people speak a dialect, then it's legitimate. And there are more fluent Indian English speakers than there are British English ones.
The fact that we teach French according to the Académie française and teach Spanish according to the Real Academia Española is just due to the political power of those institutions, as any linguist will tell you.
These divisions, that American English and British English are “standard” and other versions of English are “non-standard” are based in colonial sensibilities and steeped in racism—the same reasons why AAVE is seen as inferior, or Haitian Creole.
Says who?
If more than 200 million people follow it then it becomes a standard whether you like it or not.
That said I always remarked Indians says "maths" where I would say "math", and I figured there must be some cross-language transfer going on from Hindi or other languages which use plural for intellectual property </wild guess>
-- "please revert at the earliest"
-- Using the non-standard 10,000 base comma system when expressing numbers, versus 1,000 standard
-- A tendency to use abbreviations or acronyms which are not commonly understood, even by the direct team. E.g. "please excuse the IVR not working properly today" as if everyone is familiar with that abbreviation for the phone mail system.
There are other more amusing quirks to I'll try to remember and post. Such as, "do the needful". And not working on state holidays, aka Tuesdays.
Not even angry. It's a great word.
To be clear, India does not use a 10000 grouping system; that's China's and Japan's system. India's system is that the first group is three digits, and subsequent ones are two digits. eg 10^9 is 1,00,00,00,000
MTG = meeting
MGR = manager
DL = download
expressing dates without separators: 2020/07/25 becomes 20200725 (of course, this is alwais in the Japanese field order which I find the most sensible one)
American, Australian, German, British, etc. English are all mutually intelligible with no difficulty, while the... *counts... 11 deviations from the more common (as determined by looking at HN posters) grammars in the great grandparent require a bit of work on the part or the reader.
"please send the codes!!! some@email.com"
All with Indian names and emails. I was pretty naive about the world then so I assumed it was some joke I was missing. I would check in every year or so and the thread kept growing until the forum was shut down when Oracle acquired Sun. I didn't realize until later that these were all university students doing the same Java SMS project year after year. There was some blog post years later about that epic thread but I doubt it's been archived.
https://www.news98.info/indian-it-consultancies-wrestle-towa...
My eyes bled trying to read that hash.