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.
I 100% agree with this post and I can do so based upon my experiences with outsourcing software/web development to India.
About a year ago we decided to try our hand at outsourcing some PHP programming for a website of ours instead of doing it ourselves. So we set out with our first company (Sanvera Solutions), agreed upon specs, requirements, and a price.
What we got was utter and pure crap. It was barely put together, coded worse than I could have done myself (and I’m a very amateur PHP coder) and took forever.
On top of that, every week or so, they would send us an email about how “hard” the work was and how they needed more money to continue. Basically each week we got one day of work and then didnt get an update for another two weeks. Each time we asked what was going on and why there wasnt work being done on the project we were always told “oh we’re on holiday, we have lots of holidays in India, we’re off for the next three weeks, oh Ramesh is on vacation”.
Finally, after 4 months of the same bullshit, we told them to take a hike. About 10% of the project had been completed.
We moved on to an independent programmer who didnt work for a company. This programmer compared to Sanvera Solutions was miles better. At the time we were very pleased. However the same issues kept arising. “It is very hard work, I need more money”. “Sorry I have been busy/on vacation/away”. Finally this programmer said he wouldnt work unless we doubled the payment.
Since we negotiate a per project fee and have very thoroughly documented our requirements, we told him to take a hike.
Finally I come to our third programmer. I’m happy to say we’re quite pleased with him. But he’s not from India, he is Russian. He did everything from scratch in about 1-2 months writing far more advanced code than the previous two programmers and has been very flexible to work with.
As well as cheaper than the previous two. So I guess we learned a lesson. Dont hire anyone from India.
hiring a fulltime freelance programmer is a different story.
hire a parttime freelance programmer with a dayjob – then you are doomed.
the fulltime freelance guy will always take care of their clients. his clients will be his only source of income. the parttime one, he is just in for the extra bucks – probably to buy an ipod or some new gadget.
i have a dayjob so i only take “small-scale” projects. and the dayjob always comes in first.
and oh, hire people from the Philippines
Meh. Silly advice. Outsource if you really must, but like with anything else be smart and informed before you make a choice.
Heard of ThoughtWorks? CoreObjects? Lab49? Product outsourcing firms in India that kick butt. And what about the quality at Caritor (now Keane)? Has it dropped THAT much after the acquisition?
@ John Doe – ok you’re B.SC. in CS from any university of western country doesn’t means that every indian school crappy .
How can you say that studying 5 years is nothing?
There are three developer out from UK and USA who regularly seeks help from me online and pay me for consulting on hourly basic.
Programming is creativity and it doesn’t matter weather you are in USA, UK, India or Nepal.
I think before saying crappy to others, first you’ve to look at yourself my friend.
I am totally with you here. I personallu know a friend of mine who was hired by a MNC and trust me, she does not even know how to hold a mouse properly.
[...] is not a post in defense of outsourcing. However every so often I come across a rant like Why Outsourcing Sucks and much as I emotionally connect to such posts which talk about poor software quality, I find the [...]
Wether you like it or not, all IT work in the future will be done in India so speak out freely all you want but game over.
It’s obvious that you get what you pay for, up to a given degree, but that’s not an argument against outsourcing. There are the way-cheap outsourcing companies and the less-cheap ones. And companies choose how much to spend depending on how important the work is. Outsourcing is fine, it just requires a good management to be used effectively, but other than that I see no problems. All the things you write are pretty obvious, and also pretty normal, and to a degree they happen in all companies (i.e. 50% of people without a CS background, happens in many companies even if they don’t do outsourcing). So those “facts” are indeed real, but what’s the problem with them? People that use outsourcing usually know that, if they’re not desperate at going supercheap because their company suxx and they’re on the verge of shutting down, they won’t outsource their core technologies….
An article taken completely from a personal perspective but wrapped up as a universal law. What a load of cr@p. There was a discussion about your article on Hacker News – frankly I think your article sucks more than outsourcing does
Ade,
It is without doubt my personal perspective what I write in my blog. I cannot write what you expect me to write. But then, you have the chance to respond here. That is the power of blogging – learning through discussions.
@All,
Thanks for all the valuable comments guys.
ok, probably my comment is going to get buried down. Outsourcing is an interesting argument. India is definitely a good option for outsourcing things that will not have major impacts, eg. website, facebook app, silly j2ee/.net project, manual testing etc.
With regards to quality of engineers is concerned, I agree that the quality of engineers you get in india suck. But I dont think education like (CS degree) is no way related to this.
I know millions of CS grads who claim as if they know the end of the world, when all they know is to write some program in some language. Programming is not the only thing in the world right.
How many indians have contributed to open source projects say a patch for linux kernel, may be contribution to firefox (I dont mean writing a plugin). It all starts from there. Most of the Desi’s dont want to upgrade their knowledge outside their work/education at all. When they do that, they wont see any scope for exercising that in india. Do we have any large scale erlang project being outsourced to india? I doubt if someone would make that mistake.
[...] This post from Niyaz PK blog, guy from India about outsourcing. 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. [...]
[...] Find his point by point explanation of bad outsourcing practices in his blog post. [...]
멤피스의 생각…
Why Outsourcing Sucks 아쉽지만 부정하지 않을 수 없다. Core 기술을 outsourcing한다면 쩝 볼장 다 본거 아닌가?…
Niyaz,
Great post, but I couldn’t disagree more ; >
Outsourcing software development is at an early stage of evolution – there is no doubt about that. Finding great talent and experienced people is difficult; and growing demand leads to a limited pool of qualified resources.
However, while glibly saying ‘Outsourcing Sucks’ may earn you lots of applause from those who’ve had bad experiences, it doesn’t paint a true picture at all.
Software outsourcing is still a nascent industry. The skills and management required to do it well are rare and only beginning to be understood. And yet, there are companies that are doing an exceptional job on a wide range of projects. And, the number of companies continues to grow every month.
Here is a speech I gave at last year’s South by Southwest on the realities of outsourcing (and how to do it better):
http://www.monsoonco.com/sxsw
[...] Here is a the most stupid article written by a very stupid guy titled “Why Outsourcing Sucks” [...]
[...] Индиец предостерегает от аутсорсинга в Индию, Diovo » Why Outsourcing Sucks. [...]
I think the results of outsourcing also depend upon the outsourcers own capability to select the best suitable. To get the best from the outsourced agency is also an art. To know more about this art, http://outsorcerer.com/blog/?p=21 may also be a good source.
Against you ? I was against your opinion, and there by against you.
“I am not trying to tell that I am of exceptional quality. Just wanted to tell that software companies (many of them) does not need good programmers. They just want coders (or code monkeys).”
I agree with you, and as you said, that some recruiter told they dont have aexciting work for you, so it could be some kind of routine dummy project, thats the exact reason why they are looking for just coders. But if the nature of the project is that and all they want is just some cheap coding, I would say for a company’s perspective it is an ideal candidate to be outsourced. So why “Why Outsourcing Sucks”
“Finally about mechanical/electrical engineers writing software, I think that it is a wrong practice. May be there are very good programmers among them, but why did not they take CS degree if they wanted a job in the IT industry?
Are you telling me that a CS degree is of no use?
Can you tell me that an automobile or machine part can be done by CS graduates?
In my humble opinion, people should do the work they are experienced in. CS graduates used 4 year sin their life to learning the basics of computer science. If you are telling that that doses not have any significance, I am afraid I have to disagree.”
Software Engineering, Development and programming can be viewed in 3 different ways. In engineering you build something, something really innovative, some new standard which can be done by a CS degree holder and cannot be done by most non CS degree holders. But this kind of jobs are very very less.
What degree does a automobile mechanic have ? And cant you do minor repairs for your car ? Do you need automobile engineering for that ? Ofcourse you cannot design a new car / compressor / engine, for that it needs a automobile degree. Sadly my friend, most IT jobs in India and abroad are like the job of a automobile mechanic. But again does that mean outsourcing sucks ?
We did use 4 years of our life learning the basics of programming, I am sure we have better knowledge, we know the TCP/IP stack, we know all the sorting algorithms, we know the design of CPU’s, NAND gate etc.. etc.. But be frank how many times did you apply them in your work ? But still that does not mean Outsourcing sucks.
Cheers.
I have worked in IT for 11 years and the only time I have seen offshore development work successfully is if VERY detailed design documents are handed off to the offshore team.
From my experience, the majority of offshore developers are not very creative or proactive problem solvers and tend to use the same templated approach to deliver a variety of solutions regardless of how different the projects may be.
From my experience, they generally cannot be counted on to think “outside of the box” and should not be used to design systems from business requirements documents.
I won’t even begin to go into the communication barriers to working with them…