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. ;-)
OK So this sending zip files doesn't just happen in Indian IT companies, it happens in IBM India aswell, a friend of mine tells me how she sends her code in email or use some dropbox like service. These dinosaurs are quite antiquated because of the head of something something BS manager prefers zip over git. In other instances they dont get a testing server for months and then she has to navigate the buereucracy writing emails to get access to some proprietary database or OS.
I used to work for IBM years ago. This sounded very familiar - especially the part about waiting weeks/months for a server to be physically installed and configured.
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.
A couple of times in the past, I saw the pattern of one person as the VCS proxy for a whole team. Eventually I realized it was not because there were team members who didn't know how to use VCS. It was because individually-tracked commits would reveal that only one or two of the people contributed 90%+ of the work.
Edited: this was _not_ exclusively from Indian IT firms.
WoW so not much has changed from when you use to work there and now. Also outsourced teams are awful at large companies like IBM because the people who hire them are usually not current with the technology and have this 20 yrs of experience writing some SAP thing. I mean it awful, they do 1-2 hours of standups.
IBM India is primarily a service arm. I have a sweet story for IBM India too. I hope I'm not offending anyone. I had a friend working there long back after he was acqui-hired for a JavaScript tool he wrote. He kinda looks up to me. Once I was looking for a job, he told me that they are looking for a "Head of Design" and introduced me to have a meeting with one of their Heads.
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 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
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 :(
What's the deal with this? I worked with an Info Sys contractor from India. He was supposed to be the Apache Spark expert we so desperately needed to start being more productive.
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.
"Centres of excellence" was something promised to my last company after a round of outsourcing to TCS. They claimed that since TCS is such a large company that they had these COE teams that were domain experts on certain enterprise software.
Once the contract was signed we never heard of this again. We were stuck hiring consultants that were almost as bad as TCS.
Can confirm, I worked for Publicis Sapient (formerly SapientRazorfish) for a bit and heard some horror stories about consultant firm software devs. (Ironically enough, SR/PS is a consulting firm too...)
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.
I had the same experience in Shanghai with a similar top tier agency. I was hired by a Fortune 500 apparel brand to be their digital project manager to handle the agency and Q/C deliverables.
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.
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...
I've talked with a lot of different Indian and similar 'offshore' engineers, developers and managers and most of them ended up in the place they did due to choices between being a farmer or being an IT person, being in a poor province vs. being in a less-poor province, and being able to support your parents. Almost none of them had an upbringing, background or base passion for technology or IT in general.
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.
"I've talked with a lot of different Indian and similar 'offshore' engineers, developers and managers and most of them ended up in the place they did due to choices between being a farmer or being an IT person, being in a poor province vs. being in a less-poor province, and being able to support your parents. Almost none of them had an upbringing, background, or base passion for technology or IT in general."
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”.
if one is looking for $10-20 hourly developer, certainly the result will likely be what you've experienced.
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)
When developing nations that are primarily known for their cheap products start creating competitive high quality products what happens is that they start charging just as much as every other developed nation. That same dynamic plays out with Indian software developers.
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.
India has quite a way to go to break that boundary. The IT industry in India is basically a giant demonstration of the Dead Sea effect. The most talented engineers from India have been leaving the country in droves for decades. The local industry has a deservedly terrible reputation, which motivates more local talent to leave, further degrading the local labor market, which further incentivises people to leave...
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.
Umm... 20$ an hour, meaning 3200$ a month, would be quite a nice salary in a lot of Europe (Greece, Bulgaria, Romania, Poland, ...). You get people with BAs or MAs in comp science who have been developers for 2-5 years.
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.
20 USD/hour is not what developer earns, but what you pay for developer time. Overhead (buildings, managers, computers, toilet paper), sales commissions, taxes, and off time and eats big big part of that money.
I've seen rate cards for quite a few bpo providers and major it body shops, and unless it's like an extreme case (Chennai and one or two other cities), the devs are getting slightly less than 10% of their billed rate, the rest being overhead.
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.
I've seen two type of compensation schemes during my agency years: ~60% take home, but zero during my downtime and around ~15% when I was salaried developer, which make sense as utilization of around 60% was expected.
The rule of thumb used to be, total costs = what you pay them * 1.5 to cover that stuff.
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.
I think you are misunderstanding what the $20 refer to. They are what the customer is paying to the company for a single billable hour. That money is not only used to pay the developer but usually the rest of the company too. Sales, marketing, accountants and other employees that aren't directly assigned to a project or are waiting for their next project will have to be paid from that billable hour as well. You can call them greedy or whatever but usually they get away with a 50% cut or sometimes more. Ok, now you are left with $10 which represents the labor cost + office space + equipment needed by the developer himself. So the employee gets paid $6.66 per hour before taxes but the customer is paying $20 for that.
Indeed. The starting salaries of fresh grads in (Wipro/Infosys/TCS/etc.) has been stagnant at INR 300,000 to INR 350,000 / year for the last 10-15 years. Converted to USD this is: ~ 4000 - 4700 / 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.
I guess that is the reason why there is interest in outsourcing to Eastern Europe. Case in point being EPAM Systems. Indian IT consultancies might have huge operations but they are not the only show in town.
Yes, and we collaborated with a few dozen EPAM developers on some projects at my last full-time corporate job, and all of the ones I worked with (both the in-person EPAM teammates and the remote ones) were very sharp people who definitely enjoy technological endeavors. As development firms such as EPAM gain traction, I expect some of the massive Indian firms will lose ground.
Right. I'm counting on that to happen. This should force the hands of the Indian firms to innovate or perish. That should be very interesting to watch.
Eastern Europe is in a wierd time where it has the infrastructure, market access, and human resources of a rich country, but much lower cost of living and pay.
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.
> Almost none of them had an upbringing, background or base passion for technology or IT in general.
> 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.
You used example industries of legal and financial and even in those, passion and innovation are force multipliers. The domain-specific systems in these industries are every bit as ill-defined and open as software, it just looks very, very different. As a layperson to these industries, most people are only exposed to the pedestrian mainstream aspects, kind of like being exposed to only the teenager manning the Geek Squad desk and bringing them a WinPC to defrag to "speed up".
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?).
> 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.
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.
As a former Accenture Consultant I do have to point out we rarely used hourly billing. Fixed fees were preferred and I think it actually works better as it forces everyone to keep talking about scope. That being said, the worse part of Accenture was working with the offshore developers. The only way to move a project forward was hand holding these guys. I ended up working around the clock to catch our Hydrabaud team at the beginning of their day and at the end of thier day. Keeping in mind I was suppsedly dealing with the "manager". Was Accenture perfect? No. But based on what I've seen, projects were well run with componetent local staff, good managers and the client side was usually in shambles.
> 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.
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.
Non technical folks under-appreciate the cost and frequency of long-term technical debt.
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).
I've heard non-technical folks with their heads in the clouds expecting to run millions of dollars in transactions through an IT system, but cringed at my suggestion that they're likely to dump more than a couple hundred grand one-time into the scheme. Yet the same person doesn't blink at paying significantly more than that yearly maintaining existing low-tech systems, and has already spent millions on ERP projects.
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.
Well, we all know why that is the case: uncertainty. If I pay $100k for a thing, I'm actually paying $100k for a chance at the thing by the date. Most likely, I'm going to end up paying 2x for the thing by 2x the time. Happens everywhere.
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.
The difference is that an existing IT system is real and can be purchased for X amount. A potential future one cannot - and while devs are able to estimate (poorly) how long it will take others cannot and there is a real human bias - in fact one could say the future system is the fantasy
Purchases are good in the short term. You can evaluate them and pick the most suitable. Once you have settled with one product and know what you want it may make sense to work on optimizing your business with a custom fit solution.
It's not just that non-technical people under-appreciate technical debt.
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.
> Non technical folks under-appreciate the cost and frequency of long-term technical debt.
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.
I think software development misses a "doctrine". It is very hard to develop robust maintainable software while trying to chase the latest fad (edit: under constant pressure to deliver new functionality).
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
> 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.
Oh, look, the answer is easy. Manage these projects with SAFE. SAFE is a corporate friendly Agile methodology that essentially says, "Fuck that agile stuff. Use the Agile vernacular to keep being as unproductive as you always were."
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 don't think that is how these companies see themselves. For them they are just a source of cheap labor and the only reason a company would engage with them is for their low cost. They think that the engineers and the talent is easily replaceable and they even think they do adequate work nothing earth shattering. So the company's only aim will be to out maneuver the other IT consulting companies by undercutting on price.
Thank you for that article. I like to think that I keep up with what some call "Freakonomics" (not the book, but the concept), and I had never come across that succinct and well developed model. Again - thank you.
Indian IT consultancies have been struggling against technological obsolescence for 30 years. And they will continue to struggle for many more. This is an idiotic hit piece hit written by a journalist who needs to meet his quota. This journalist has never worked for one of these consultancies, a tech company, or been in C-suite of any org.
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.
> 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.
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.
Isn't this why a variety of industries such as banking are being or will be disrupted?
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...
Banks have moats. It's really hard to get past these moats. They are so central to the way that the financial system works, that it's really hard to "disrupt" them. Even the tech giants likely wouldn't succeed.
Yes, the regulatory overhead is quite high. There are plenty of adjacent firms who could start making moves. Banks are central but the disruptor only needs to provide increasing partial replacement at sufficient profit to continue offering services at sufficient parity.
People within IT have a bias towards overestimating the importance of it. For a LOT of companies mediocre IT services and products are literally good enough. Hell for some companies crappy minimally viable software is practically a feature if it's used to manage cancellations and warranty support and such.
Tech debt is bad and all but so is real debt and paying a lot of money upfront won't mean no tech debt.
It's not a hit piece. The whole article lays out the issues with cost focused consultancies. (Please tell me that you're a subscriber and read the entirety of it, rather than the little bit that is available freely.)
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.
Off-topic from the thread, but was the sample size of GT students you've interacted only one, or greater? My intuition on well known public universities has been that they accept all the talented people at the cost of letting some who would struggle with the material while private universities accept only talented people at the cost of missing some people who would thrive.
Yes, my sample size was 1. Its not a big deal that he didn't know. Not everybody knows everything and with a background like that he can be taught. It requires some hand holding on my end but others have held my hand too so its just part of the job.
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.
I've had colleagues with surprising blind spots as well, even at Google. Sometimes I've wondered "how was this person hired here and they don't know X" (e.g. how to use the command line, what a CPU architecture is, etc...). But then those people have ramped up and done excellent work.
I recently joined a company where my main task is to modernise a business critical application built and supported by Wipro over ten years ago. Everything is still on .Net 3.0 (first released in 2007), and despite hundreds of pages of documentation the developers seem to have little understanding of what the application actually does for the business.
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.
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?
The truest saying in software is that the highest value output of a project is an engineering team that understands your business. Past a certain point of size/complexity you can't buy one of those for any price, you have to make it.
Outsourcing turns an investment opportunity into an expense.
This rings true for my experience as well. And it also highlights the waste that occurs when a successful team finishes delivering and is immediately dispersed to the four winds, something that happens all too often.
That's why companies end up requiring "extensions" over and over for consultants. I know people working for consultant firms that have been with the same client for more than 3 years.
Where to outsource is the right question. I could write a word processor, but my company just buys me Microsoft office. My company could buy the software I wrote from an outsourcer, but we consider it a competitive advantage to do it in house.
Buying a product is different than paying someone to make a product for you. Since your company is the only customer for that product there is no benefit in outsourcing it other than the ability to rent a developer (contracting might be a better option). Nobody else is going to buy that product.
I don't think this is a fair assumption. The work is going to be defined by the client... so if the client wants .Net 3.0 experts to maintain a legacy system, then that's what they are going to get. I have worked for and with Indian IT firms (I'm not Indian myself) and in most cases the directive is to use latest standards and best practices. In my case it has to do with cloud architectures. Outsourcing is something that still needs onsite experts that can help guide the project and critique/review what is being developed. Clients that are mostly hands off during the development are inevitably going to have significant struggles.
I pretty much agree with you, if the client doesn't have any in-house expertise and stays hands-off then you get the scenario I described but outsourcing can work if it's in addition to in-house expertise.
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.
Here’s the thing, I honestly think these consultancies are going to be feasting for decades to come with all these enterprise companies shifting to the cloud.
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.
These firms specialized in digital transformation. But the digital transformation is over, now its the digital cleanup. The companies that understood the benefits of digital technology moved to it, and the majority of the others went out of business. In this new phase, your digital infrastructure allows you to move quickly, or you lose business to those that can move quickly. A lot of these old legacy applications, as useful as they are weren't made to be easily updated.
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.
Maybe in supply-chain, logistics and industrial manufacturing, but it is "Digital Therapeutics" in healthcare (in the US) in the age of Corona. Regardless, marketers have eternal unbounded opportunities to come up with new nonsense that sells, but doesn't deliver on those promises. "Somewhere, over the rainbow... a pot of gold!"
>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.
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.
Yup. Very often. In fact every system I ever saw being outsourced was being done so in the knowledge that it was going to die. It's a face saving gesture that allows executives to sidestep the sunk cost write-off.
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.
Can relate to that. I used to work for tech mahindra and they were using vb6 and .NET 2.0 for a major client even as late as 2014 when I quit from there. Its most likely that they are still using that old stack because its typically difficult to justify migration costs to a newer stack.
> 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.
Like 99% of business is run like this. So... It's hardly surprising.
Of course. Most manager types assume all code monkeys are the same. They just turn a crank all day. In the end one of the other key factors is just monthly expense. Business types like locking in engineering costs at $XX,000 per month. They have no ability to see that they will be paying twice as long until feature Y is ready and even then it won't be what they really want. But they did cut $30K from the monthly engineering expenses so here is a 10% raise and a bonus. Great Job!!!
I believe there is a bias towards the outsourcing, at least judging by the comments.
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.
> 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".
I think this is the part that's most important and similar to how orgs like RedHat operate.
I have a team of 14 engineers in Pakistan. It wasn't always easy to do this and now I always feel at odds with hiring where everyone else is hiring or paying a premium for a western passport developer when I know I can get killer talent elsewhere.
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.
> 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?
Define "work ethic"? It's a highly subjective term.
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.
The good ones eventually end up in SV or work for the international offices of SV or work at local superstars like flipkart and such because of the pay differential. %40 of SV staff being some form of 'asian' is a testament to that.
Your comment sounds very hyperbolic in the description of your team's skills, and yet you still focus mostly on how cheap your developers are, and the importance of your expert management. I don't think that I'd be able to write good code if my primary attribute was cheapness, regardless of whether or not it was good money for my location. I would be trying to do my time as a developer and work my way out of the disposable zone and into "management" as soon as possible.
> The developers who complain about Indian and Pakistani developers are usually:
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.
>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.
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 vast majority of comments here are from people with first hand experience of the level of incompetence from large I find consultancies. I have personally witnessed a major Indian IT consultancy cause problems with a file server migration. They had no idea that you needed to propagate permissions from the base folder. This took out production for 8 hours.
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.
Thanks for this, it's a great counter to the common thinking here.
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.
I've worked with good and bad offshored indian developers. Usually the good ones are hired directly by the company and they're great to work with and they have a passion for software.
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.
You've just shifted the cost from onshore developers to hiring incredible management and developing complicated process to deal with the a heterogeneous staff. That's not necessarily better allocation of money... just a different one, with a lot more variables, and vastly more potential for failure for the majority of companies.
> 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.
Easy there eloquent soldier! You might create a blackhole with that much talent.
> are used to working with onshore talent that has context
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.
Kumar, how do you manage time-zone differences? I understand that for day-to-day updates, you either need to delegate to someone onsite or have one of you work at odd hours to communicate with your team. If time-zone issues can be fixed, I think the geographical cost arbitrage will become much easier to exploit in the coming years.
India devs =! Pakistani devs. India has many large consultancies providing services to mega corps, where sub par talent can hide out for years. Pakistani devs (and other devs in countries that don't have similar dynamic as India) don't have that luxury, so they are on average more highly "vetted".
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.
That just sounds like employees that have a high management overhead compared to employees that do not require that. Which directly translates to organizational scaling cost and more management employee $$ cost.
As an Indian there are reasons you can point out for this.
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.
Your generalization of Indian colleges is not right.
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.
Yeah. Tier 1 colleges. Tell me more about NITs and IITs.
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:
I dont't really understand what point you are trying to make. Nobody is saying all the students in top tier colleges studying CS are super passsionate into CS. Some are. A lot of them are not.
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.
> I dont't really understand what point you are trying to make.
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.
60k from tier one engineering colleges. It includes all branches. Not only CS students. Similar number to the number of students enrolled as undergrads in entire engineering colleges in USA.
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.
Statista says that CS in India is 880k + 660k of Electronics Engineering (CS adjascent field). That's 1.54mil students in the field that we are talking about.
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
These consulting companies are often referred to as "mass recruiters" in most engineering colleges. I went to one such school too, and the the qualifying test/interview was a couple of CS101 questions, and was the default option of employment for anyone who wasn't joining any other organization (this also included good mechanical, chemical and civil engineers with little to no CS background, but the market had slowed down at the time, and they had to resort to IT jobs).
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.
> 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.
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.
You see this everywhere in the world. I've worked with a huge number of Americans who went to school for anything but computing, would rather be doing anything but computing, but realized that a six-week crash course in web development would literally quadruple their salary. Many of them go on to embrace computing, many of them turn out to be good developers, and some even become passionate, but they all start out by abandoning their dreams and chasing the quick buck.
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.
Difference is, a lot of these people wouldn't get jobs as junior devs in the west, and if they did, there just wouldn't be so many "natural" opportunities to move into management. Whereas in India, the big outsourcing firms need such a large quantity of people every year, that thousands upon thousands are hired and placed in junior dev or test roles. And because these orgs are so large, there are many layers of middle management, and plenty of opportunities.
I don't think this is true at all. The tech bubble in the West is huge and claiming junior devs in the West are anywhere less afflicted by the rat race syndrome than India is outrageously false.
The tech bubble in the west is bug, sure - but that's not the same as organisations with 100s of thousands of employees selling bodies as cheap as possible.
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.
> everyone else just wanted to be "a manager"...I'd asked about this strangenes
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.
> ELDERS ARE ALWAYS RIGHT HERE IN INDIA. That's why so many people want to be manager.
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.
Regarding the lack of secondary level CS education, it is a problem everywhere. You have to be passionate about teaching CS because practicing it is so lucrative. There's a global shortage of CS teachers especially at the secondary level.
It was far much worse, now the major consultancies are on rapid re-skilling drive, also they have made significant changes to their pricing strategy to their clients and are not just based on head count.
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.
Yes, SaaS and even IaaS and PaaS are the ultimate outsourcing. Outsourcing that actually works since it's not simply swapping a US based high paid human for a low paid off shore human. Instead it's swapping a human for automation, that's real savings for customers, even after margin for the automation creator.
Yep, SaaS is the real outsourcing killer. And the future seems to be one where even more infrastructure is abstracted away i.e. Serverless/PaaS. This is changing the way software is built and tested. Its empowering people who have been through coding bootcamps to start delivering value.*
* 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.
I certainly feel the article could have made more of their central points, which were mainly anecdotal / common sense.
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."
As a marketing person, I've learned the hard way over the years that I'm not qualified to hire outsourced development. I've hired about a dozen over the years, and only 1-2 have been a good experience. I probably gave myself too much credit for knowing HTML/CSS/WordPress and not more, thinking I was qualified enough. Only a good to great web developer has the expertise to spot high quality outsourced talent, and ignore the other 90%.
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.
I have been keeping my ear to the ground in the local job market (Switzerland) and personally haven't encountered any company that outsourced to India specifically.
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).
It’s easy to tar the entire Indian IT industry with the same brush, but it’s a much richer ecosystem than just the Big Five.
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.
I forget where I heard this quote but I think it summarizes the whole "outsourcing as a boondogle" scenario:
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.
Cisco's IT is almost 100% Indian, and by almost 100% I mean I've only seen one or two out of thousands who weren't Indian. Cisco's Indian IT department managers having exclusive preference for Indian companies. It's so against the law for Cisco to have their IT department almost fully staffed by H1B visa holders who work for some Indian outsourcer and are themselves all Indian. The work they do is only half decent (well, not really, it's purely best effort, and depends on the individual or team doing the work it can vary dramatically)
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.
Major IT companies in India get a lot of revenue from maintainence projects and there is usually no scope for making major changes or innovating there.
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.
This 100% it's not a problem with talent alone or their approach to their problems presented to them. It's what they are engaged on and that's controlled by the consumers of these 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.
This is so very true. I just migrated a 17 year old Struts 1.* app with most of my team in India from Weblogic to Tomee. It's a mission critical application with 400 users during business hours. It's not going anywhere anytime soon.
There is nothing wrong with Java. Modern Java is pretty nice to use, fairly fast, has an incredible amount of libraries and tooling to do just about anything you want to do and a vast pool of talent to draw from.
At my current job I try to stick to Java for any new services because it's a great overall language.
Almost all mainstream languages are nice to use, have sufficient tooling, and are fast enough for almost any purpose one might care to apply it to.
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.
I'm not sure I'm bought into this. I consulted at a big bank and am currently at a government department where I can see the in-house trend reversing.
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.
Yes, if enterprise systems were easy SAP would have cornered the market long ago. Or Oracle for that matter.
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.
These consultancies may also finally reap what they sow re: quality of work. I work in a major bank and some senior managers say they'd rather get the plague than a team of those guys. The managers need to deliver what they promised to their higher ups, and they've learned that these teams, however cheap they are, in practice will not help them with that. Btw these companies still manage to get some business with us, which I suspect is to some degree helped with bribes.
This is still very shallow thinking. Every company that views tech as a cost rather than a way to generate revenue will invest in these contracts/offshore centres, and that is the noose round their neck.
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 had extremely good experiences with opening a subsidiary office in Sofia, Bulgaria (not outsourcing, but legit part of the company.) Code quality went way up compared to what was developed in the US/UK, somewhat less expensive (but not that much, like you said), and most importantly and perhaps also the most surprisingly, the attitude of the young kids working there is way more positive and well-adjusted that what we see when hiring in the US/UK (especially in the UK).
At this point it's not even about the money, it's just that they're more pleasant people to work with.
Can confirm, eastern europeans are above average regarding technical skills, though sometimes lacking on the social side. If I had to outsource, I‘d go east. They’ve got some amazing talent. I would avoid southern europe and india.
And yes, I have direct experience with all of those.
The problem is not that India doesn't have good developers, they do of course. The problem is that the average is brought down by the fact that a lot of people are only getting into IT because it is their best chance at living a middle-class life, not because its something they're interested in, and the volume business model of Indian outsourcing companies. Combine that with the "just do what you're told" mentality and its not a good deal, or only for certain projects.
The problems with southern Europe are similar. Hierarchical business culture, placing high value on keeping appearances, different work-life-balance mindset. Some countries produce world-class software that people around the world use, some don't, and its not hard to see why. Its not coincidence.
Yep, am in the UK. I have mainly outsourced design work (most to Belarus). Work is better, cheaper, faster, and the general attitude is better I would agree...I would even say they speak better English.
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.
>Btw, some places are very good for outsourcing (Russia, Ukraine, Poland, Belarus)
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.
It's not where you outsource to its the mere fact of paying people who don't work for you or care for more than billable hours (at least the leadership if not the consultants too). You can get that down the street too, though it's easier to check up on what's going on. Having employees you vetted/hired overseas is way different than hiring some firm to provide bodies who are unknown to you and come/go all the time.
True. My point was more to highlight that I don't actually have a problem with work being outsourced to another location. You are correct, when cost is the issue that creates incentives that tend not to work.
Depends on the project. People like to say "consultant" but most of the are just staff augmentation and many of them do work that won't absorbe a lot of knowledge.
Forever employee spotted. Every company that uses Shopify instead of developing their own e-commerce site considers tech as a cost. Health care insurance companies are not interested in joining the advertising, SaaS, hardware tech biz. For them IT is a cost. A mandatory cost that supports the business in the same way legal and finance do. If you took away the insurance policies but only had IT, the business wouldn't exist.
You are thinking about cost like a middle manager. 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.
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.
Legal, finance, Shopify are all useless without a product to sell. Hence, costs.
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.
How does this weird chicken-and-egg situation make sense to you? You seem to have this weird notion of which things come from other things??? It is very odd. Why are you posing a situation in which someone is using Shopify without a product?
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.
You sound like a multi-level marketing person who tells you to join calling it an investment.
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.
I think you can be successful outsourcing to WITCH or other consultancies IF you have an in-house, full-context software engineer managing the project and keeping people accountable.
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.
I'm sure IBM and other companies get a non trivial amount of checks with a lot of zeros each year for supporting legacy applications/systems/etc with barely any work involved on their part besides maybe running Make again once in a while.
And to be fair, some companies are not even wrong because rewriting is still more expensive than just paying for maintenance.
Just judging from the title it sounds silly. Last I remember while working at one of the companies between 2006-2008, COBOL & mainframes was a good chunk of their work.
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.
Nail / head I think; a lot of western devs, especially the HN crowd, has the luxury of moving to the next 'cool' thing every couple of years. But they did write code, they laid the groundwork, and it has to be developed further on.
Billions of LOC of Java are lying around and there is a need for an army of developers to look after it.
Pretty much what everyone in the tech industry has been doing for years. Better to have your own overseas office where you can control the hiring bar and talent vs making consultancies rich. The big consultancies are more concerned with draining value from clients and treating them like cash cows instead of delivering value.
That being said, probably the real solution is SAAS.
From what I've heard, programmers that are as good as domestic (US/EU) programmers can absolutely be hired in India and lots of other places.
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.
Well, at least from where I sit they're still getting plenty of business as with the apparent sun-setting of the H1-B program companies are just hiring offshoring firms instead.
The article mentions that big corporate tech departments are just moving their operations to Indie - like Walmart has Walmart Labs in India, despite having no retail business there.
This feeble attempts to generalize a whole nation or group of people will not succeed. Individuals differ from one another and Indians are the most diverse group in the world. Some of the engineers are good some are bad , just like everywhere else. The sooner humanity realizes the truth about individuality and discard the stereotypes attached to groups and aggregates the better it will be for the whole world. Amen.
> and Indians are the most diverse group in the world
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).
Diverse in terms of religion food habits culture race and of course language. Over the course of human history India has been a melting pot of people coming from all over the world.
TLDR of the article is American / European companies creating in-house Indian offices and moving away from "consultancies".
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.
Being a part of one of these, I agree most companies have realised have a dedicated offshore team is much better than assigning work via third party consultancies.
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.
They should have seen this coming. The big Indian IT consultancies have existed since the 1980s and they have been swimming in billions since the early 2000s. They should have invested into actual product development at least a decade ago.
You can get very good developers from these companies, and you can get it in volume, you just need to insist on it.
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.
There are quirks to speaking with developers or workers in India who haven't also been trained partly in the US or Europe. A scattered assortment of unusual phrases or idiosyncrasies you may hear:
-- "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.
>-- Using the non-standard 10,000 base comma system when expressing numbers, versus 1,000 standard
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
I work as a Software Engineer in Japan. We have a lot of "non-standard" abbreviations and phrasings too. Here's a few that come to mind:
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)
Most of the time Indian developers are working with American or European clients. I have seen multiple situations where non Indians make fun of and devalue contributions by Indian developers because they use phrases like codes , needful and revert. Just avoid using these phrases. There are other battles to fight.
I first came across this about 20 years ago when I was learning Java. There was no StackOverflow. Sun's Java forum (java.net?) was the place to go for beginners. I clicked into a thread "How to Send SMS" that had thousands of replies spanning several years and every reply had almost the same format:
"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.
I think either is ok depending on your intention: codes is to suggest the stuff is plural, countable etc, e.g. you have a Bash script, Makefile and Java project (full of files), this is a set of heterogeneous countable things, hence codes. Code is a "mass noun" implying countability or cardinality is irrelevant, e.g. push the code to github.
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>
It's closer to how some dialects of English will say "Do you want to come with?" and consider that a complete sentence.
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.
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.
The great grandparent's post is more difficult to read than it otherwise would be to the vast majority of HN users who use other English dialects.
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.
While what I'll say will surely be controversial and will lead to many down votes, Indian dialect of English is not considered a "standard." As a result, the correctness of something in Indian dialect does not mean it is "proper English" or "correct English".
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.
I see nothing wrong or nonstandard with Indian English, as a native US English speaker living in Canada myself.
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 see nothing wrong or nonstandard with Indian English, as a native US English speaker living in Canada myself.
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.
There’s a difference between “This is the version of English that I want to learn because it is well-respected,” and “I am going to tell you that you are wrong because your version of English is not well-respected.”
I want to point out your claim about 'majority of English speakers'. The number of English speakers in the Indian subcontinent is much higher than anywhere else in the world, including US.
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.
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.
It depends on the goal, though. What if you were a Spanish speaker trying to move to India, and didn't already speak any Indian language to a useful level? I'm guessing in that scenario you'd want to learn Indian English.
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.
Indian English is also spoken in surrounding countries (Nepal, Sri Lanka). Anyway, what does the international exportation of a dialect have to do with legitimacy?
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.
Linguistic prescriptivism is just class oppression by another name. As long as language can be understood it can't be wrong. Intelligibility is what matters, not if someone subscribes to the particulars of a given style guide. Saying otherwise just serves to suppress the voices of people who speak other dialects.
Textbooks for French teach Parisian French, the kind standardized by the Académie française. Does this mean that Québécois is wrong? Does this mean that when the Swiss say “septante” we should correct them and say “Ce n’est pas septante, c’est soixante-dix.”
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.
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. ;-)