Most of you don’t even need to read this post to know why outsourcing your software development work to cheaper countries may not ultimately help you. You already know why.
The thing is that many people outsource their work to IT hubs like Bangalore to save a lot of money. But the problem is that you get a low quality product at last. The reason? You tried to cut cost too much.
You cannot get a high quality work done for a low cost. Never. Quality always comes with a price.
When outsourcing to foreign countries, always try to do it to people who promise quality product, not to people who promise lower cost. Also, never ever outsource your core development work.
I am an Indian myself and let me tell you some facts I came across:
- Major Indian software companies are recruiting low quality programmers.
- A large percentage (I am afraid more that 50%) of the programmers are from non-CS backgrounds. Many are mechanical engineers, electrical/electronics engineers or civil engineers.
- The pay scales for fresher posts here are not the best even according to Indian standards.
- We don’t care for the quality of the work we do for you. Now I don’t want to piss off any one, but the fact is that seriously no one cares about the quality of their code they do for some American company which they don’t know much about. You will get quality code only if it comes from your heart – like when you code for yourself. Most Indian software engineers don’t feel any kind of commitment to their organizations (mainly because of the way companies treat employees).
- Part of the reason why many companies recruit low quality programmers is that the works we get here are mainly some support work or very monotonous and boring development work that looks like it will take ages to get completed. Many Indian programmers have their own pet projects which they dedicate their free time to and they concentrate on the quality of the code they produce for that pet projects instead of the projects they have to do in their organizations.
- I never meant that there are no quality programmers in India. There are many, but the chances are very low that big software giants will recruit these bright minds (which they cannot afford). Instead, they go for cheap mechanical engineers or graduates from some second class institution.
- This bullet point is supposed to occupy the place where I bash the project management BS. I don’t like bad mouthing that much. So just skip…
I guess you guys understand the situation here.
So what is the solution?
Don’t outsource. Seriously.
If your work is very monotonous and does not demand high quality, outsource. If you want a very good software product and if it the flagship product of your company, never ever outsource. You are doomed otherwise.
You confirmed what every grown up developer already suspect or knows, thanks for your honesty.
Sadly the major reason why outsourcing has a certain popularity these days is because Here too we have the 7th bullet that you skipped in our problems list.
Lots of managers have little or no understanding of how complex building a good quality software or even website really is.
Excellent points.
Niyaz,
An interesting post…I too work for an MNC in Bangalore and agree that outsourcing should be reduced. This is because I find too many dumb architects, designers and programmers in the so-called outsourcing countries and the Indian folks are paying the price for working under such ill-qualified people. I can not speak for the software services companies in India since I have never worked for any of them in my working life of close to a decade.
“A large percentage (I am afraid more that 50%) of the programmers are from non-CS backgrounds. Many are mechanical engineers, electrical/electronics engineers or civil engineers.”
This comment from you indicates that you are really an immature person as far as your experience in the software technology industry is concerned. I do agree that there are some not-so bright programmers, but they include CS and non-CS engineers mixed. As I said earlier, you are immature and doesn’t seem to have any exposure to the software programmers in countries like US and Canada. In the US, most of the top-notch programmers don’t have a college degree lest alone concerned to formal CS background. And some come from varied backgrounds have done masters in fields like arts and history. Another reason why I believe Indian companies hire non-CS folks is because many of them are below-average folks.
Further, it doesn’t matter which institution one comes from. Once a person puts in 5+ years in the industry, the only way to categorize them is depending on their performance and not the institutions from which they passed out. I have seen some of the best engineers from IIT’s and also some not so bright.
You seem to be working for some software service company in India who wants a high salary and some abroad trips. I would suggest that you leave your current job and try to get into one of the smaller companies which work on innovative products and services. Of course, dont expect big monthly cheque, abroad trips and the comfort. But you will enjoy your work, appreciate it and also it’ll open up your mind.
I think generally pakistani programmers are far superior in all respects to indian programmers.
Sir,
Your article sucks for the following reasons:
1. you seem to think civil engineers or mechanical engineers cannot code? actually computer science is only engineering field that has received most contribution from people with no formal education in computer science. Don Knuth does not have one.
2. Not every job requires a super world class programmer with super algorithmic knowledge. Actually companies need people who get things done – and that’s what happens whether outsourcing or not.
3. “Instead, they go for cheap mechanical engineers or graduates from some second class institution”
how can someone be ‘cheap’ because of the field or education they have?
4. What is with your claims of ‘poor pay’ – do you want the government to declare minimum wages for programmers (and then suddenly quality goes up is it?). As above, not all jobs need to come with the top pay. A good chunk are menial jobs which are best done at a lower cost.
Somebody else said number of algorithms or products out of India = 0. This is wrong. Consider any of the following:
- baazee.com (now ebay)
- http://www.irctc.co.in
- http://www.yatra.com
- http://www.makemytrip.com
- http://www.seventymm.com
Aren’t they products from India? IRCTC traffic matches that of traffic – is it that it was done without any knowledge of programming or algorithms?
How about Visual Studio team foundation system being developed out India?
As I said, this article is a sucker.
above I meant irctc traffic matches that of google.
WTF is wrong with hiring electrical engineers to write software? Get your head outta yer @ss for a minute.
There’s nothing wrong with hiring EE engineers to write software. but programming is an art.
Unfortunately companies hire low quality engineers- by low quality, I don’t mean people coming from EE or EC, but people who aren’t inherently programmers.
This is very tragic.
Though I’m happy I don’t work for such a company.
god bless bangalore!
“I charge $10 per hour for freelancing job”
- LOLz!
” and believe me I do the clean and neat coding while using frameworks, I don’t like the sloppy codes.”
Right, that’s it! I’m convinced! Where do I sign?!!?!

BTW, I have a BSc (hons) in CS, and wouldn’t consider myself a better programmer than anyone without any formal education. Qualifications are for the benefit of HR people. Just because you went some crappy indian uni for 5 minutes doesn’t mean anything my friend. Though I do tend to agree with the comments about electrical engineers.. they’re a bunch of brainless zombies to a man!
.. AND they all have halitosis.
(They probably have to look up what that means..)
Very informative and a great perspective on the topic! I wholly agree with you…quality comes with a price.
Another reason outsourcing sucks is that it reduces opportunities for entry level engineers in your own country. If there are no jobs for entry level engineers who will want to become an engineer? This can lead to deficits in technical areas.
Don’t outsource. Seriously….
I came across an excellent article on the downsides of outsourcing (written by an Indian blogger) and the article is full of great points on why outsourcing is a bad idea if you are expecting high quality work. I’ve been involved with outsourcing situ…
Niyaz,
I believe the correct term I am looking for here is “pissing in the pool you are standing in”
.
I agree that a few of your statements are correct but they are applicable for companies even in the US. Hiring not so great programmers, producing not so great software etc can be found even in the US. I have seen many instances of this and you can check out http://thedailywtf.com/ to see some really funny instance regarding code quality. You don’t see a lot of noise around this because it is not a hot topic compared to “outsourcing”. Why do you think your article went to the top of reddit?
I have seen outsourcing work for many projects. Of course there were some failures but till now the failures I have seen are because the customer didn’t know what they wanted in the first place or didn’t care enough to monitor what was happening. If customer let their IT folks do the development they seem to monitor things closely so why can’t they do that when they offshore a project. In these cases I do feel that the customer gets what they deserves. Of course if you care enough to read about the history of software development across the globe you will realize that the percentage of success in this field is very low (irrespective of location).
I think you don’t know enough of the software development field or about luminaries in this field. Most of them are NOT from a CS background. Some don’t even have a BS degree.
Another fact about programmers…..I have been in this field for 9 years now and still love/do programming. Writing quality code is a habit and not something you can turn on/off. If you write bad code at work you “will” write bad code in your pet project. If work is boring or simple most good developer find a way to make things interesting like automation or code generation etc. You are limited by your imagination
.
If you are interested in solving some of the problems I would recommend that you do some reading, get a better perspective and find the root cause of these problems.
Neat site you have here. I will give you that.
The blog seems more like a rant than anything else. I have had the experience of working, studying in India and working, studying in US.
His argument about second-level colleges is baseless.
I don’t think companies in US only hire people from MIT, stanford for programming jobs? There aren’t enough people there to fill up all the jobs and yes those students do come at a premium. The same thing is in India too.
Quality of code… Well, afaik, when I code I always try to produce my best code and I have never seen anything less from an Indian programmer.
Ofcourse, Indian companies do understand what kind of work they are getting and what kind of people they need to do that work. Few people would employ a stanford top notch guy to support/maintain a legacy application.
Wow — thanks for that wonderful article…
Did you take time off from work to write this piece of crap?
Well, well.
I read an article in Hindu some 5 years back, it stated that Indian programmer is a myth, instead, there are mostly Indian coders, who did the coding part like how a data entry is done.
And, i must really appreciate you for writing such a courageous post.
For one, i wont dare say such a thing in public fearing public outrage against me, but you did, and you are kind of honest and brave in the way you have responded to most of the comments at the top.
Anyway, as you said, there are “some” good programmers, but, (i dont want to say that).
All the best…
The good and bad points about outsourcing written here are not restricted to outsourcing. It is the general mismanagement of business.
First of all, in a capitalist organization, everything goes from quarter to quarter. At the most 2 quarters. There is no long term vision. All a manager thinks is I will do it for six months and then change the job anyway. There is no continuation, no responsibility.
The fact that developing computer systems is an integral part of planning implementation of business operation is still unknown! Many business managers proudly say ‘I am not technical’, and get out of having to discuss the project with IT people.
So, the business manager goes merrily day dreaming about a grandiose operation requiring all kinds of help from ‘systems’.
Most IT people proudly say ‘ Hey, what do I know about business? I will write whatever I can from what you want.’ So they do not attend business planning meetings.
Then there is bargaining about how much code and what functions can be written in time available, ‘after’ the business decisions are made. They say ‘make it look good for six months, and I am happy’.
And after six months, ‘I am on to another job!’
This is no way to run a company!
I wrote something similar actually…
http://www.sharpdeveloper.net/content/archive/2008/07/10/how-to-lose-millions-with-outsourcing-or-make-millions.aspx
Good post.
I don’t know why people say it’s not true in the comments.
I’ve been on both sides; in a subcontracted company, and in a big company subcontracting.
Big companies subcontract in order to reduce costs, if they wanted good quality code they would hire the developers themselves; so much easier.
Subcontracted companies have high quality developers, but they soon realize that they can do much more than their assigned task, but they can’t be assigned to a more important task because that would require to pay more money, they kind of money the big company would pay to their employees.
So these high quality developers don’t stay for long.
The result is code which is owned by no one, a monster which seems to be hundreds of patches around a core that nobody understands, nor care to.