The recent 40th StackOverflow podcast with Michael Lopp had some pretty harsh words for Indian software programmers and the outsourcing industry in general. The transcript is incomplete, so you have to hear the podcast, but what I heard went something along these lines (not exact words)
The cost of an Indian developer is one-third the value of the cost of a developer in the United States. People assume it is because of the lower cost of living in India. But that is not why. It is because the value is one-third. If they produced the same quality of code, they would be charging the same amount.
To be fair, Joel did say that this had nothing to do with India in particular, but seemed to indicate that the problem was common with outsourcing in general. Anyway, his words pale in comparison with this comment from someone named Abdu (emphasis mine):
In the topic of outsourcing and non US shrink wrapped software.
Developers from Eastern Europe, Russia and Israel produce software which is innovative. Software that make me ponder “How did they do that?” or ” I wish I can peek at the source code”. These are code crafters and masters.
Developers from India, sorry to say, are what I call “Code Donkeys”. They do crud, boring, repetitive nothing innovative business applications and in many occasions they need blue prints and directions on how to start. I have never seen any shrinkwrap software made in India.
I have been outsourcing some of my personal programming needs to developers from Eastern Europe, Latin America and India. The ones from India give me the hardest time. They might be the cheapest but that also could very well mean low quality!
A few comments on this (FYI, I live in New Hampshire in the United States):
- It is true that product development has been slow in India (see my previous take in 2007), but that is rapidly changing. Take a look at some of the Indian software startups. One of the best non-business software products out there is Zoho by AdventNet, which is run by Sridhar Vembu with 600+ people in Chennai, India.
- There are and will be poor software practitioners. But this is just as true of software companies in the United States as in India. I cannot tell you how many countless times I have talked to customers here in the States where their developers have no clue how to write good software. They have decades-old legacy code. They have no idea about the latest technology developments. No processes, no documentation. In some instances, I have been burnt by having to wait for some developer to write some proper code that we could have done ourselves, just because the developer controlled that code.
- The best talent in India go to either engineering (read computer science) or medical courses. The engineering colleges in India, especially the IITs, produce excellent students. Definitely, there will be some companies that have poor developers, but that is a problem with selecting the right company, not with Indian outsourcing in general. Secondly, many experienced Indian developers who have worked in the United States have returned to India and are working in Indian firms.
- As with every product, if it is too cheap, it is probably not worth it. Find professional outsourcing companies in India who hire good developers and have well-defined processes. They may be more expensive than the freelance developers, but still overall less expensive. To give an analogy, compare it with buying a watch from a peddler on the street and buying it from *any* shop. And yes, Joel, the cost of living is way below what you can imagine. And higher education is heavily subsidized, so students do not come out of college with huge student debts.
- You need a dedicated manager to work with an outsourced developer or team (whether it is Wisconsin or Bulgaria or India or the Philippines). Every team (onsite or remote) needs information and feedback to produce good software. When your team is onsite, you spend significant amount of time without realizing it. When it is offshore, suddenly every interaction is more visible in terms of demands on your team, especially with time zone issues. To compare apples to apples, account for every minute of your interaction with your onsite site and then see how the team would perform without you spending that time.
To understand the math here, many companies hire outsourcing companies and expect that costs will be reduced. But here are some important rules of outsourcing economics:
- Costs will be higher initially because of knowledge transfer and cultural handshaking between the two sides. By “culture”, I mean organizational culture (processes, standards, communication, etc.), not Indian vs. US culture, although that can be a factor too.
- You won’t save money hiring 1 or 2 developers because of the overhead of communication. To make huge gains, outsource several developers and hire people in the United States to manage them. Also plan for visits to and from India.
- Hence, you need a larger team to save money and a larger team needs dedicated onsite managers. Why dedicated? Because it is very easy for a part-time manager to be dragged more into other work and neglect his outsourcing responsibilities, since the team is not around to demand his attention.
Finally, let’s look at the evidence. There are many multi-national corporations (Microsoft, Oracle, HP, etc.) who are outsourcing large amounts of work outside the United States. Maybe they are all crazy, spending more money on low-quality programmers. I don’t know. You tell me.

Hi,
The word of two foreigners did strike me, probably they are true. I read your explanation as well, but still I am not convinced. Why are Indian products(forget the lesser number) way down in quality ?
Balu.
Thats not really completely true.. We are Indian.. We are creating software that help put people on the cloud quickly.. We are however as a country beginners in the products space..We are trying to bridge that gap.. Check out our offering at http://www.zoyid.com.
“ones from India give me the hardest time.”
Well well here is the give away. What he really means is this
“Developers from Eastern Europe, Russia and Israel produce software which is innovative. Software that make me ponder “How did they do that?” or ” I wish I can peek at the source code”. These are code crafters and masters”
That means he has understood their programming and code so easily and he loves their programming style
But on the other hand
“”ones from India give me the hardest time.”"
He has failed to understand the code Indian wrote. He has had a hard time understanding and deciphering the code of Indian Programmers and maintaining it. Maybe the indians are a notch above him.
I leave it to the jury to decide
Since the code should be maintainable to be of any value…
yes..we let the jury decide when poorly written applications crash and hang consistently because someone who is an indian programmer probably has forgotten – maybe on purpose that other coders need to maintain & manage..programming according to contract is very important and none of the indian coders i have worked with respected that fact..if code does not match the documentation then what you expect would happen when its time to test and deploy your product? you will most likely end up re-writing the whole thing from scratch all the time and thats not efficient coding..most of the indian coders i have worked with have never taken responsibility when their poorly written software brings down a network..
“Joel did say that this had nothing to do with India in particular, but seemed to indicate that the problem was common with outsourcing in general.”
I am agree what Joel had said.
Few things really hitting me hard to understand :
1.) How can a person should judge a thing which has never been performed by him or his company.
2.) Why many multi-national corporations are outsourcing their large amounts of work in India.
Putting the offense aside, this is more like saying all texans are red-neck racists. As someone pointed out, there are good and bad developers in India.
And I am sure those million jobs that have moved to India is a pretty good indicator.
This sounds more like sour grapes to me – may be his job went to India and all he got was a lousy t-shirt?
For the person who wrote this article, I will present some facts.
As many as 12% scientists and 38% doctors in the US are Indians.
In NASA, 36% or almost 4 out of 10 scientists are Indians.
34% employees at Microsoft, 28% at IBM, 17% at Intel and 13% at Xerox are Indians.
20% of gold in the world is used by Indians and nine out of 10 diamonds used in the world are made in India.
Do you still doubt about Indian brain, then I have only one advice for you, being ignorant is the only way out, for you to stay happy. We are here and we are everywhere.
i present some facts to you: “the Quark debacle”, a once owned American software powerhouse found out first hand the lies about outsourcing the hard way..An Indian QA person Kamar Aulakh conned the the big desktop publisher into outsourcing, which made hime CEO..Quark laid off all the American developers who created the companies flagship product. A year and a half later QuarkExpress version 6 was released..the product was so poorly designed/written they immediately lost %60 of its Express Customer base to Adobe systems, which has a competing product InDesign..Adobe has taken most of Quarks business..the most relevant part was to port Quark to OS X – a simple carbonization exercise that many other programmers of similar complexity accomplished with a modest staff over a period of a few months, DRAGGED ON and ON IN INDIA..version 6 was delivered TWO YEARS LATE AND AT A FAR GREATER COST THAN ANYONE COULD HAVE IMAGINED..
heres another one i got from http://guestworkerfraud.com/indian-it-failure/2009/06/
Wipro got into AIG, then AIG’s IT got into Lehman. Lehman, as we all know, got its trading software, Spectramind, from Wipro who acquired it from another company. Wipro programmers screwed it up so bad that it started giving wrong information which led to bad trades and the massive losses Lehman experienced which caused its demise.
This is just the tip of the iceberg. There have been other links between Indian outsourcing deals and failures at:
- Bell Labs (Arun Netravalli & team cleaned it out – gone, trashed, closed)
- Boeing (HCL screwed up the ILS 787 Dreamliner software)
- Cadence (Ripped off by a Chinese industrial spy)
- CNBC (Slumdogs running their website which doesn’t work)
- Computer Associates (Indian CEO arrested and jailed for fraud)
- Dell (Call center failure)
- Delta (Call center failure)
- General Electric (Fan blade design sent to India, cracks resulted)
- Lehman Brothers (Wipro, Spectramind failure)
- Lockheed Martin (Spacecraft failures)
- Microsoft (Vista, layoffs, sales drop)
- MIT (Media Lab Asia canceled after Indians faked invoices)
- Motorola (Cell phone division going broke)
- MSNBC (Website)
- NASA (Shuttle, Mars, and rocket failures)
- Intel (Whitefield processor project in India canceled due to fakery)
- Japan Airlines (3rd world maintenance led to engine failures)
- Palm (Into the toilet after sending work to India)
- PeopleSoft (Died after Indian takeover)
- Hewlett-Packard (Down the tubes til they fired pro-India Fiorina)
- Sun Microsystems (Taken over in 2000 by Indians, died, sold off to Oracle)
- Vodaphone (Massive profit drop after outsourcing)
- Washington Mutual (H-1B failure, profit drop, bankruptcy)
- World Bank (Indians stole data, Indian-specific bodyshops banned for 3 years)
Right
Gibilious…You seem to confuse yourself with correlation and causation?? I can imagine the type of code you churn out with that kind of logic.
Vista and Quark were not developed in India. The localization for Indian market was done in India.
Calling Indians SLUMDOGS Shows that you are a lows life racist.
Please stick to some ku klux Klan websites…looser in life.
I will just say that quality of a person is Independent of their nationality.
If this is not true then all Germans must be an Einstein. This is certainly not true and your argument suffers from insufficient sample fallacy.
Saurabh!! Dude i am an indian. and thats the worst response ever. The article makes a point. Go check Most of the development done in Big IT companies in india is corporate s/w. So obviously if you want creativity we are not there yet.
But dude the facts u wrote are not true. Thats a old PPT info which was overblown.
Man your comment shamed me more than the article.
Well I am glad that he is talking only about outsourced engineers. I will accept his comment. I am software engineer who works for a outsourced company.
Now let me explain why I agree with him. There are very less projects in outsourced companies and most of the work include enhancements and support. How can we bring in innovation for “shit” written by someone in the outsourced company. I have seen lot of application which use variables named yellow, pink and orange and these were not developed by the so called “code monkeys”. So of course you will not see any innovation.
Secondly these outsourced companies have their own coding standards (again not formed by us “code donkeys”) .. which has all bloody stupid rules preventing a sw engineer from using his brain and ideas… So again the root cause goes back to the architects are software engineers in the outsourced company. Now you know whay we are called “code donkeys”.
Take a list of indian start ups and see the innovation.
I agree somewhat to the comments made by the two. We only churn out the engineers without proper practical exposure. When these engineer lands up a job in a company, these guys doesn't learn anything.. they are put in a project and asked to code. I see the problem lies on both side of the fence. With the companies (who think like factories producing developers) & with engineers who think they are the gods and doesn't want to learn anything before coding.
Been working in local outsouring (of operations) and now with souring from India (based in EU).
I see some of the same patterns:
First it's all about cost, both groups are sceptic to eachother and communication is not good enough. This leads to throw-it-over-the-wall syndrome. Then they get closer, learn to know each other better and COoperate a lot more. And also an important part of the latter – they go from one major stakeholde to sharing the risk. This really increases the itch to get a good result that both groups are satisfied with.
But something any firm considering this is that it will cost in the beginning, and it will mean investments over time – and you won't get it paid back immediately. So I think anybody going into this should not try this solution if your primary concern is scaling out TODAY. You should be well ahead of your need, be willing to invest over time and get some key players offshore to avoid micro-management.
If the kickoff locally was important before, a real kickoff getting people together will be even more important now.
Thanks for commenting, David. You are perfectly right. If someone is doing it for immediate gains, then it doesn't work.
1. Never outsource work for 2-3 people with lots of communication. Better leave it in the US. The communication overheads always cause the same problem
2. India has large outsources, small outsourcers and innovative product companies. Yes there are small outsourcers where customers may have faced the problem – the problem is choice of company. i.e a good 2 person shop in Ukraine may be better than a bad 2 person shop in India but there are also good 2 person shops in India that are better then bad 2 person shops in Ukraise
3. Software products is not yet India’s forte because a) The market is not there b) Best Indian minds saw money in outsourcing. That is changing now because with the net Indian products can attach the globe – check out Zoho (www.zoho.com), KServe (www.KServe.net) ramco (www.ramco.com) etc. They will get there – over time
Pingback: Organizational Hand-Shaking | Thought Clusters
I am a developer for a component vendor company, and I am unfortunate to support a great number of alleged developers from India. They do not only write the worst code I have ever seen, but also they do not have even the slightest notion of basic web-development principles, scalability, logic, semantics and UX. I suppose that some readers of this article may find my post offensive, but it is true, and I am observing this for almost 5 years.
That’s unfortunate, Martin. Why don’t you ask your company to change the software vendor? And next time you hire a different firm, interview the developers to make sure that they are up to the necessary standards.
We have, they were even worse. We even flew a trusted engineer on site to do the hiring and he said he had to hire 4 incompetent ones, because those were the best ones he came across in 2 weeks and management expected him to have 4 names.
The Indians on our project (there are 6 of them) have not delivered a single reliable bit of code we didn’t have to rewrite (the 3 of us in the EU).
As things stand now, eventually our work is supposed to go their way, but they just can’t get rid of us, because business knows how incompetent our devs in India are.
I don’t know, must be something in the water.
Krishna, would you buy a BMW or a Tata?
Andras, this is one reason I advocate outsourcing firms to understand who you are hiring, including both the vendor and the individuals who will be working in the project. If you don’t spend the time and money to hire good people, the quality will be bad. Period.
And specific to your case, your company is not going to save money by hiring 6 people in India (or anywhere else) and replacing 3 of you. The math just doesn’t work because you will always need someone on your side to head the development effort.
I do agree a David J. M. Karlsen, but I do want to make one point clear, Most of the developers in India are working on Outsourced Projects which are short of time (*most of the time), Lack of structure at initial stages and at very low cost, As the projects are of low cost Organizations are tending towards hire a low cost resource (mostly freshers just out of colleage gate.) to make Benefits…. I am really sorry to say we should get better about it a little more. We can certainly get better in the context of Writing better code, It is not just having a great programmers but the way he is proactively encouraged and given leisure…. My personal experience there is no lack of good programmers in India, I can bet you will find a Bunch in every group they are Innovative & Enthusiastic, very creative….. The only this we need to encourage them…..Pay them properly.. to my personal exp. I heared a word from many of my top management “Just Do It How ever it is” Even when we strive for the complete Quality…. This sense should be avoided ” Don’t strive for the immediate gains ” I strictly believe “a steep raise will have steep fall” trust me guys we in India have lots of innovation we are certainly not “code donkeys” But So called because we are forced to work in that way……….This process will only start when the education system gets changed…. thank you
Rama venkatesh
haha…u will get only what you pay for.Try not to outsource and get 1/3rd quality code at 1/3rd price from local vendors.
look, man, outsourced code isn’t innovative because it can’t be.
in fact, no outsourced product can be. you’re sending the bloody thing to a guy on a different continent!
innovative implies a very good understanding of the context and environment in which it will be used.
the only way outsourcing can work is if you take your problems, break them down into the simplest pieces, and ask someone to solve each piece.
this is analogous to asking computer to do a human’s work.
you have to instruct it step by step, because it doesn’t understand the human context.
If I have to formalize something so well, I might as well do it myself. In fact, that is exactly what software engineering is about. You’re not a software engineer unless you can break down seemingly complicated tasks into such small ones that you can handle them with ease.
And yes, that is exactly why our Indian outsourcing attempts are doomed, we’d be much-much better off with Eastern Europe, but sadly, management doesn’t know anything they don’t read about in their magazines.
Andras, there is a difference between breaking down design versus breaking down requirements. The problem with outsourcing is that there is usually a gap in understanding the requirements. This is one of the most important reasons why you need an onsite presence for a team and cannot fully outsource your work away.
If you have to help any software engineer break down design (at your location, India or elsewhere), I agree with you that they are incompetent and should be fired immediately. My diagnosis of your situation is that you hired too fast and went with a wrong vendor. The Indian employment market is complicated and if you need good resources, you need to spend the time, effort and money. Look for people from prestigious universities like Indian Institutes of Technology. 2 weeks looking at Monster India is a total waste of time.
yeah, it would be interesting to know exactly how that guy hired 4 people in two weeks.
For a very long time, I have worked with number of “outsourced” development teams. My main problem was with the mindset (well… and technical capabilities as well); if software developer from Israel (or Europe/US) is able to take the problem, analyse, solve it and write well structured code without having a dedicated manager to oversee it all, Indian software developers need to be told what to do. Although I’m sure that some (or even most) of them are capable as those from Europe/US, they wait to be told what to do (even if it means to spend 3-4 days doing nothing).
I am INDIAN programmer, I am completly agree.
Because indian industry can’t afford good programmer.
That why they change the tile “Programmer” to “Software Engineer”.
explain this:
“Daniel. It is against the law for you to work here. You can come here on vacation, but you can’t work here”. –Indian Officials to U.S. IT worker Daniel Soong who expressed interest in working in Bangalore, India.
Good programmers do both the design work and the implementation work. Any programmer who cannot design, implement, test, and ship a product single-handedly shouldn’t be in the industry.
“Coders/Software Engineer/Developer” are words invented by Corporate America and India, Inc. to degrade the programming profession so that programmers’ salaries could be lowered.
Programmers eclipsed politicians, lawyers, doctors, and all other elites in the 1990s. The rest of the world was jealous. Everyone wants to be like the American programmer, but “assembly-line” programmers are useless. Good software is an art. Good software takes time. Trying to reduce software to an assembly line is stupid. It can’t be done. Sure you can try to make software that way, but it won’t be any good.
A decade later we are seeing the fruits off all this commodity software mentality: a destroyed economy and no innovation.
Software used to be a great industry to work in. Not any more. It has been degraded and destroyed by India, Inc. and moronic American business executives.
You guys can have the IT industry. No one wants to work in that ruined industry any more.
What is this letter and who sent you this.
i think i was wrong, when i said earlier that the problem was distance, and lack of context.
there’s a much more fundamental problem that we have here: people are in it for the jobs.
compared to a kid who tried to write a chess program at age 14-15, because he felt like it, guys like that are, ummm, you know.
seriously, if you have a large number of not so great guys working on something, you incurr a significant overhead. the final product can never be as good. p.g. has something to say about keeping the team small, and full of good people, etc.
so is there hope? i would like to believe so, as the indian economy opens up, and creates opportunity for people to pursue what they love, you’ll have much nicer program-writing-guys. guys who’ll be nice to their programs and care about elegance and robustness and whatnot.
as always, when people enjoy what they’re doing, the output is great.
there is no hope..indians only employ indians and the guy who developed a chess game at the age of 14 has a much more knowledge of software development than an indian graduate who disappears when his copy/paste code crashes the server..india is not creating any opportunities and they are not the innovation they claim to be.maybe you should have mentioned why india hasn’t developed their own operating system!!! they just don’t feel like it!!!
as a fact, indian software development teams are large.there are nearly 60 coders on average on a typical project..the quark debacle for example: released 2 years late and didn’t deliver what was promised. you can also add to that 40 more IT staff and their entire families working on projects..so where are the opportunities for local graduates who want to get jobs in IT..they obviously can’t..
gbilious…You need a shrink. Get some help
the chess game guy was also an indian…in india
you seem hurt and angry. i’m sorry about that.
Indian “programmers” should all go do something else. They are the worst ever.
Read this: http://www.itcontractor.com/Articles_IR35_News_Advice/view_article.asp?id_no=3466
And this:
http://www.businessweek.com/globalbiz/blog/globespotting/archives/2007/01/india_software.html
(And the comments)
These guys ruined Software industry and anything they made fails
I visited India several times and found out the useless teaching culture Cut Copy Paste.
Next time you hire only hire people from ISRAEL/EU/Former Soviet countries
Hi,
You can find exceptions in every place. This does not mean that all developers re bad. May be you have given your project to wrong companies.
I have seen many good coders in India and also very bad, but pointing out only bad points is not really fair.
In India companies mostly deal with services and Yes this type of work has no innovation in it. But I don’t agree to the point that India lacks good programmer or produce very low quality of products. You just have to give your work to right companies.
take a look at silicon valley california..a once booming IT industry..what is it now?? lease signs on every corner and california practically broke. why?? indian companies fleecing them out. does india have a global brand that everyone buys? no. india is all about the quick buck – get what you want and escape..what you think happened to deakin universities plans to build silicon valley in geelong, australia? satyam fleeced the state government of victoria out of pocket of AUS$120,000000.00. what happens to all the local citizens who graduate?? no jobs for them..too expensive..better give it to the cheapos who do nothing..
I am from India and I have worked in the IT testing industry for the last 18 years, both in India and in the USA. I do agree on the fact that, Indian programmers definitely lag behind in quality compared to many other countries. The number of programmers is large and most of the work Indian companies do – is SERVICE. So quick-fixes work well and any escalations are managed by onsite managers.
All said and done, cost for a given quality, within the given time, is the key in service business. This is well utilized in India. But the product mindset of zero-bug mindset is not there in majority of the Indian programmers, irrespective of the company size. See this. http://economictimes.indiatimes.com/articleshow/6250188.cms
It clearly shows that Indian companies need to go a long way in products. When total IT revenue of India is $60bn and $58bn comes from service, it shows, the Indian IT companies tuned them to projects and not products.
But, the same set of Indians in the USA made products for MS or IBM as well. It is time to accept the facts and do introspection and move forward. Else India will lag in product space, for sure.
hey i don’t understand one thing. If Indian quality is so bad the why obama says to kids of America to learn from Indian kids who are good in math’s. You know now Americans now even outsourcing them self to India for medical treatments .
Friends the world is globalized now.. People who are not happy with code quality of Indians should go and say there company CEO to stop outsourcing.
No one is a fool in current time. The thing which have value then only its sold. Why tier 1 companies Microsoft,IBM,Airbus,Google,Apple are increasing there head count in india?
IIT ( Indian institute of technology) entrance exam is one of the most toughest exams in world. Hiring there graduates is not affordable for every one.