Ask HN: Are developers in India highly over-rated?

30 points by kumartanmay ↗ HN

53 comments

[ 2.8 ms ] story [ 91.8 ms ] thread
They suck. I am one. But here's why our kind get's jobs.

(Skill/Pay) of Indian >= (Skill/Pay) of most top hackers.

It's all about optimization! :P

isn't it this kind of attitude makes u suck?
well. to me is the question that suck.
The answer above is mostly a joke. But most Indian developers aren't from illustrious backgrounds, so they are simple, hardworking and will make do with peanuts. But yeah they aren't always innovative.

But that's changing rapidly. Indian startups have finally begun pushing back many of the SV startups which have operations in India.

Yeah. These folks questioning our ability are in for a rude shock in a few years . There's a whole eco system of mid tier firms + startups which are shaping up really well .:D
There are many across the world especially fallen for Indian freelancers for their "price" and "quality". However, their experience has been unforgettable. Do you know Indian developers/ freelancers who actually meet gold standards?
I think there are good and bad developers in every nation of the world. If you are looking for Indian developers in a place where the price is a race to the bottom, well, that's what you are going to get regardless of the nationality.

I made an interview with Jack Ganssle[0], which is one of the most known embedded engineers in the world, and I made a question to him about devs skill around the globe:

I have spent my life traveling all over the world and am finding great developers in all sorts of places.

-- [0] http://www.embarcados.com.br/embarcados-interview-jack-ganss...

Indian developers are not over-rated. Infact noone outsources India because they think they think that Indian coders are geniuses.

They know that Indian developers are mediocre but management believes that mediocre is "good enough" at half the price , and guess what , it might hurt your ego , but in many cases mediocre developers + long working hours can solve most problems that typical devs encounter. You just need a good dev overseeing the efforts if the project is complex.

Often what they leave behind is nearly unmanageable code that cost's 2x as much to maintain and support.
No problem, just double your outsourcing team!
Then you need to review the code once in a while and also put some code quality related clauses in the contract.

If you do that you'll find that outsourcing to India is actually not such a bad idea and guess what , we're cheap :D.

I have done both. The devil is in the details, they can meet some guidelines but wiggle out of others. As stated it becomes a game. As such it is imperative that you spend a lot of time coming up with the metrics you will use to determine quality. Be VERY wary of anything that has lines of code in it

Overall it has been my experience that you pay multiple offshore resources to get the output of 1 onshore resource. If you bring them from offshore to onshore their productivity does go up some. The caveat to that is they do have really good QA teams and I wouldn't hesitate to leverage them in that role.

Contracted code quality becomes a standard to be gamed. They'll have plenty of comments, but how many add useful information? It may pass a lint, but the architecture will look horrible. The database may be normalized, but the people and accounts will both own money, but there will be no way to link people straight to accounts.
Have you yet figured out a metric that encapsulates code quality? Any metric you name, I can find a way to game it.

The only way I can see is to thinly slice the system enough and to require business peer review and daily demos on all slices to correct bad systems earlier. This also means you need a top engineer devoted to babysitting on behalf of the organization, and a good enough engineer to handle the code reviews can probably do the job better than a team of remote mediocre engineers.

You are being too kind, generally it best to throw it away and start from scratch again.
Doesn't matter. Manager has saved costs on the project and looks good for it. They move on while a new manager handles the support/maintenance issues and the higher ups just become convinced that support/maintenance just happens to cost a whole lot of money.
Half the price per hour but takes twice as long.... You can pay me now or you can pay me later...
I recently had a contract job where I worked on code written by indian dev's. My main reaction was that they were actually quite capable and knew more than a few tricks, but these particular dev's were also making a large number of amatuer mistakes. There was a lot of copy/pasting of large blocks of code, for example.

My impression was that if they knew more high level theory, and did things in a more organized way, that they could be even more lazy and make even more money.

Working in IT I often work with people who remote from India. Its all the same. You have those who are gifted and have a passion for what they do, and those who don't.

I think the most important thing to consider here is communication. Often it can be difficult to speak with foreigners in common terms.

I think one difference that I've seen is that the US has a very different attitude toward computer programming. In the US it's more glamorous? That's not the right word, but it seems like when I talk to a number of foreign developers who emigrated to the US, it's more about being a good job than it is about being a genius hacker, rich by 25, or being a technical tour de force. I see a lot more women overseas who become programmers. Maybe because the culture is different, and becoming a programmer is like becoming an architect or engineer?

I think that different culture might self-select US developers the same way top schools produce highly motivated, successful people because they recruit highly motivated, successful kids. Not to say every US developer wants to climb to the top of some technical or economic mountain, but it seems like maybe there's a smudge more passion among US developers. Also, intelligent, math oriented individuals have other avenues in the US, like finance, (and unlike the rest of the world) dentistry and medicine are lucrative careers. Meaning you choose programming more because you want to program, but in other countries it's because it's a better paying job.

I've also noticed that in some countries, once you've done a few years writing code, you quickly want to join management ranks and develop a coding allergy. More so than in the US, where it seems like 50 year old developers still want to write code. I get the sense that, in some countries, if you don't get into management then you are a failure at some level. So in the US you can find someone with 10+ years experience developing software, but in other countries you just have people who've stagnated and never moved up.

I dunno.

I am an Indian developer and I feel that you're onto something there. This needs more discussion.

For eg: An executive an HCL , a leading Indian outsourcing firm called American developers "unemployable" :

>> He says students from countries like India, China, and Brazil are more willing to put the effort into "boring" details of tech process and methodology, such as ITIL, Six Sigma, etc.

http://www.dailytech.com/CEO+of+Microsofts+Indian+Partner+Co...

So basically , American devs want challenging work and technical growth , while Indian devs are happy to even have a job.

There is definitely something to this. From my experience(American), nobody writes their specs.
>Also, intelligent, math oriented individuals have other avenues in the US, like finance, (and unlike the rest of the world) dentistry and medicine are lucrative careers.

Dentistry and medicine are very lucrative careers in India.

But not all over the world. In some countries, even in Europe, you can be a physician and do 'okay,' but being a computer programmer would be better.
Please add Ask HN: if you are intention is to "ask HN".

I clicked the link a couple of times before i released what you have done.

Follow the posting etiquette. Prepend 'Ask HN:' to your question.
It depends if we are talking local or outsourced.

From a coworker, he says what you save in money up front you will lose in time trying to communicate what you want with them, getting the result, smacking yourself in the head while finding it makes zero logical sense, having to send it back, get the results, find more problems, etc, all with massive delays due to time zones.

His company laid off a lot of good staff and outsourced with him as the manager. He said it has not been worth it and makes his life dealing very unhappy. Like herding cats.

I don't deal with Indian programmers but I deal with DBAs and others that look after data centre infrastructure. They are more than worthless - they are dangerously incompetent. The massive company I work for has spent a lot of money insourcing to get away from these idiots after years of letting all their infrastructure decay and rolling outages. When you scale up all those incidental costs add up (but the contractual SLAs are rarely enforced because you're afraid to anger the people who are running your whole business).

That's not to say Indians as people are stupid. Far from it. Actually our company has a lot of Indian staff who are integrated locally and are excellent and intelligent, I consider them good friends. And some of them plain suck.

Most also recognise these outsourced people as scum. Though I feel that's a little unfair except for how they make dealing with them a living hell. Every part of the model is broken from their parent company contracts, managers, processes on both sides, communication and cultural differences (Indians as a rule always say yes whether they will do it or not because it's considered polite; they also won't action anything or even respond unless a higher manager is included in the mail). Technical work becomes impossible when you can't clearly get an answer about what is going on.

We don't outsourced to China but have a very multicultural staff. I would hesitate to say any race was "better" than the others. I only know outsourcing to India will eventually kill your business.

So that's our experience.

This was my exact same experience where I used to work, where large parts of the company's code base maintenance was moved to India. It decayed really quickly.

The culture we were met with was tragic to say the least. The only thing that mattered to the Indian managers were error reports and statistics, to the point where I was confronted for reporting an error without consulting with them directly first, so they could spoof the numbers...

And some of the developers I had to interface with literally needed to be told, character by character, what to do to fix even the most basic stuff.

And yes, on the other hand, we had Indian colleagues integrated locally which were some of the best people around.

Outsourcing is hard. You will likely not get any top talent unless you really know how to work the market, and then it will likely not be particularly cheap.

You get what you pay for. And sometimes not even then...
The good developers move here.
Out of curiosity, to which parochial center of the Universe are you referring to by "here"?
(comment deleted)
This is bullcrap. Some of the most talented devs I know work at pure Indian startups(Flipkart, for example, has an extremely good tech team) and there are a huge number of startups coming up in India that have some really kickass talent.

There are good devs and bad devs everywhere. The problem in India is that the average software developer is one not because they wanted to code, but because the family pushed them to do it since it pays well. As a result, you get a bunch of devs who don't really care about what they do, and are incompetent.

The kicker is that these devs are the ones the rest of the outside world works with since they come to India for cheap labour, and hence, you get the impression than coders in India are mediocre.

There's some top talent in and from India, but they will be as hard to find or expensive to pay as anywhere else. It may have been slightly different in the past, but it settled quickly at a point where you get what you pay for. Developers below the top talent in India can often be worse than bad developers locally, between the distance, language, managerial and cultural differences you can end up with a mess that would have been easier to diverge away from with local developers. However, if you can manage that well it can work out and you may be able to build bigger teams over time.
I think top talent competes globally so it's able to either move to where it makes more money or demand higher rates. It's the anonymous guy in the cube whose skills may range from incompetence to excellent, but you don't know what you're getting at first.
I am starting at a UK company where most of the developers are based in Bangalore, however, as I understand it, they are not freelance but employees
By whom?

Most Western engineers I have worked with don't think much of their Indian counterparts. While no single assessment will ever properly fit everyone in such a large group of people, the quip goes "the Chinese will do exactly what you tell them to do, but nothing else; the Indians will do exactly nothing you tell them to do but a whole lot besides." This seems about right to me, so I don't think anyone is being over- (or under-) rated. If you hand a project to India you will get something that mostly works, is three times as complex as it needs to be, took five times too long to produce, and is completely unmaintainable. Despite some very impressive individual results, the education system in India is atrocious, on the job education nonexistent, and technical leadership and independence completely lacking, so this result isn't surprising. Americans or Brits sent through the same system and given the same management would produce similar results.

By the people who decide that work should be done by Indian engineers instead of those in the company's home country? The answer is more complicated. Most corporate management is extremely short-sighted; the incentives of the role demand it. Their primary incentive (handed down by their superiors) is typically lowering home-country head count, average salary (and in the US, especially those oh-so-costly medical and insurance plans), and other coarse personnel cost metrics. By these metrics, Indian engineers are not overrated. By the metrics the company will actually be judged by the competitive marketplace, which include time to market, total development cost, and product quality, they are overrated. Managers who think about these things will conclude that the cost of Indian engineers relative to what they produce has been bid up beyond fair value; i.e., they're overrated. But few do.

Ok, here's the thing. Indian developers are not overrated. The developers that you are trying to hire might be overrated. Very good developers in India mostly work for big product companies or startups. Most good developers do not freelance. And coming to technology consulting companies like TCS, Infosys etc.., hire a lot of new college grads at cheap salaries who have no clue about the work and make them slog.

So, if you want good freelance developers it might be difficult to find good one in India. But, if you are a startup that gained some traction in the US or elsewhere and want to start an office in India, you'll find good developers if you pay well.

This is the honest truth.

I've dealt with outsourcing to India before and share many of the same headaches mentioned in these comments.

I know it's a generalization, but I believe it's fairer to generalize about Indian outsourcing businesses than about Indian individuals: these businesses are doing their best to maximize profits, like any business does. They hire very low, mark up quite a bit and (in my experience) misrepresent their talent pool.

Conversely, I've worked with a number of brilliant Indians at a large corp here in North America.

The good individuals leave after a couple of years or less. The turnover is really high. They leave for the same reasons anyone would: better opportunities, mentorship, culture, money, etc.

In reality, it's a smoke and mirrors game where the outsourcers mostly win. Indian individuals get a bad rap.

Offshoring is no panacea, it's become a fairly efficient market, and whatever free lunch was there is no longer. Companies that were trying to outsource to save on wages or capitalize on increased productivity are not getting those results: "We find no significant change in average wages or in total factor productivity measures for offshoring firms." (http://www.federalreserve.gov/econresdata/ifdp/2014/files/if...)

It's increasingly obvious there are no gains from offshoring unless you have other more compelling reasons (e.g. 24 hour/global support, shortage of local talent pool, global availability, etc...)

Yes , it's the bean counting IT firms that have to share a large portion of the blame.

Anyone who is good and asks for a higher salary is quietly moved out.

In an IT services company it's all about the billing rate. A manager can always be billed at a higher rate than a lowly developer. So say you've been a developer for five years. Now the company can no longer "afford" to bill you as a developer.

So they'll force you into management so that they can bill you as a manager. I've seen brilliant developers , who're still interested in writing code , but now all they do is fill excel sheets and status reports. And you'll be forced to manage multiple projects so that they can make even more money off of you.

Otherwise you'll forever be stuck at a lower pay grade as a "mere" developer.

IT services companies have a super low cost business model and they aren't interested in moving to the premium end of the market.

The attrition in this sector is enormous. Just look into the figures for Infosys , TCS etc. It's reached upto 30% ! If 30 % leave in a year , it doesn't take long for all your experienced people to move out.

But they've perfected this continuous conveyor of clueless graduates being cycled into the software meat grinder. They don't even hire CS grads. They'll hire almost anyone put them through their cookie cutter "training" and now you're ready to work on projects for the Fortune 500.

Then there is the pervasive cheating and deception. Resumes are faked , they hire clueless developers straight out of college and make them work night and day to deliver their first project all the while assuring the client that they've put their best devs , with 3+ years of experience on the project.

You're endlessly in maintenance projects which means you don't have much of a chance to learn and grow.

So a lot of the "bad Indian coder" meme is due to the way that low cost IT services firms are structured and the people they hire.

So very few people who take pride in coding can survive for very long in such an environment. If they're really good , they've already jumped ship to some top 10 product firm or startup.

So you're very unlikely to find any good coders there , and the ones left will be doing management.

One factor that increases the difficulty of working with Indian teams is that there is little time overlap between India and the US working day.
This is far more important than upper management believes. It's almost impossible to overlap workdays in an effective way with people 11.5 hours off of your clock. Night shifts don't work for various reasons, either in the USA or India, so every communication is via email, and can take a day or two longer just due to no schedule overlap.
In the US most of those who graduate with a CS degree did so because they are interested in CS. In India you have a lot of students who are taking CS because they are expected to not because of a passion for it. Combine that with lack of accountability at some schools you get a lot of half prepared graduates.

So there are good and great programmers but you also have a lot of mediocre ones. The other problem is a lot of what is taught at these schools is dated.

Do you have a source for that claim?

I know a few US based developers who I feel went into computer science because they saw dollar signs.

I've worked with Indians in a number of counterparty firms. The key isn't whether they're Indian, the key is how they are organised. The Indians who worked in a western firm in permanent roles were pretty much the same as everyone else at those firms. The guys who were working outsourcing roles were problematic.

Sometimes it's just plainly obvious a guy has been hired because he's cheap. And since it's a money-saving exercise, the employer will also skimp on such things as documentation, communication, availability, etc. This only makes the guy's life harder, and makes him look worse than he really is.

I've worked with developers in 4 countries so far, including India, and I've learned two things. (1) you have good developers everywhere, the challenge is finding and hiring them, and (2) there are only two efficient org structures for developing a codebase, everyone in the same location (optimizing for face to face) or everyone remote (optimizing for online communication). Most shops end up setting up a remote unit outsourcing a particular set of tasks (e.g. maintenance, or a particular module), and that's a recipe for disaster because you end up with an extremely inefficient communication structure (blend of face to face and online, no one actually knows what's going on, yet everyone spends the whole day communicating).

The thing I've noticed about hiring in India is that due to the economic circumstances a lot more people go into software development who have no business being there. You can find good developers, but you have to weed out many more bad candidates to get to them.

Dunno.

But there are a ton of unscrupulous individuals that represent inadequate developers (maybe in general, maybe only for a specific project) and flat out lie about their skill sets and experience. People thinking of outsourcing in this manner should interview those doing the work, and follow up later to make sure those are the actual people doing the work a few weeks down the road.

India follows the "Sheep Herd" mentality. The whole country's economy is based on people getting into "Profitable" domains mostly following the success of a pioneer in the field. The most recent example of this ideology is the "Business Process Outsourcing" industry. New BPO units are propping up here and there at a dime a dozen leading to a quality deterioration in the final deliverable. This process will continue till a saturation level is reached and then they will wait till another "Killer" domain picks up momentum. Till then India will be in a so called "Calm Period" where nothing great and major takes place. http://www.rediff.com/business/slide-show/slide-show-1-the-w...