This is taken from the perspective of an Indian, with respect to outsourcing to India. I personally have had the same problem in the past (with India) so I looked around. In the end I settled on outsourcing, in a slightly different way, to some guys in Russia, Latvia and Brazil. The short version (which I appreciate is still quite long!) is:
1. I employed individuals, not companies. It took more time, but I got good quality people on board. This is 8 years ago when I started, so I think I speak from experience.
2. The initial guys I started to work with, I have now made partners in some of what we do (sourceguardian.com as one example - they are full partners in it). Reward well and treat people with respect. It goes a long way.
3. I usually start with small tasks and build up. This way you can assess quality of code, but of equal importance you can also recognise if someone is motivated and who will deliver to deadlines. Anyone who misses immediately, I don't use again. Harsh, but it works for me.
4. I was not a programmer when I started. I appreciate this is Hacker News, but we're not all born like that and indeed it was never my dream. I learned to program so that I could put myself in the mind of the people I was working with. Worked for me, and guess what?... I enjoyed it. I'm still not a good or fast programmer, but I can converse more accurately what I want with the knowledge of what will work
I find it annoying when people put their own personal perspective as some kind of universal law. Outsourcing maybe sucks for many people, due to their experiences, but for me personally it has allowed me great freedom in my business and has introduced me to more cultures and more people than I would have otherwise.
As a software consultant, I always want companies to outsource their programming tasks...to me! ;-)
But seriously, I agree with your take, inovica, I was frustrated with the quality of work (and integrity of the workers) when trying to cut costs and hire Indian programmers. So I looked elsewhere and have been very pleased with the results I've gotten by working very closely with Russian programmers.
A blanket statement such as "outsourcing sucks" isn't helpful to anybody seriously considering it. It's also link bait, imo.
You're kind of doing the same thing -- the fact that you've had good experiences with Russian programmers doesn't mean that Russian programmers are good, and Indian programmers are bad. I've had very bad experiences with Russian coders (not by choice).
I think the parent's point was that some outsourced people are good, and that you just have to take time to find the pearls in the (giant, steaming, rancid) piles of oyster guts. The bigger problem with outsourcing, if you ask me, is the communication delay. It's nearly impossible to build a team when they're thousands of miles (and 12 time zones) away.
I would suggest looking in India for coders and paying them 40-50k/year in India. The idea is to skim the top talent out of the market and maintain quality not just add people at the lowest cost possible.
Well you know there is an old story about John Henry who dug out rock with a pick ax to make way for the railroad being built to connect the east with the west in the American frontier days. John Henry was really good, but one day a steam engine came along that could do his job just as well. So there was one day a contest. Henry kept up the the machine as best he could, and, in some versions of the story, even beat the machine, but his heart failed him at the end and he died. Moral of the story: no matter how good you are at your job, new ways of doing it will always come along to make your old way of doing it obsolete. It is called progress. Thus it is with outsourcing. It is the wave of the future, it is inevitable. If you don't like it, perhaps you should get to your next meeting via covered wagon and let the rest of us use the new fangled railroad contraption. I for one like outsourcing - more work for less cost. Can't argue with that baby! :-)
Sure, "more work" if you measure in man hours; but when you actually go to use the code and find that it won't compile because the Indian coders who wrote it didn't even have computers, and wrote the entire application down on paper and paid to have it typed, you realize you wasted your time and money.
Outsourcing is no different from hiring regular programmers; if you wouldn't hire the people you're outsourcing to, why in the world would you trust them to do a good job?
If the results of outsourcing were so bad you all guys wouldn't be so worked up about it. The truth is, the person you answered (currently downmodded to -1) made an excellent point. People who protest against outsourcing are no different from the workers long ago, when the companies first started using machines to perform tasks previously done by physical labor. The workers then went on strikes, were destroying the machines etc.
Not necessarily a great analogy. I think you are trying to liken cheap, possibly underpaid, labor to machines and factories. While I think that it is entirely possible that cheap Indian (or other) labor could replace more expensive American labor, I don't think low paid labor is exactly the next generation of technology. Something about likening cheap human labor to convenient innovations in technology just doesn't strike me as right.
What he says is pretty much very true. Consulting Companies here are on a hiring spree in colleges.
Education here is pretty bad too, the reason being it is in a chapter-wise marks format. Let me tell you how a CS student prepares for exam, Variables is 20 marks, Pointers are 50 marks and Arrays are 40 marks, Lets just study Pointers and Arrays(you get the point right). This is pretty much the case everywhere in India. Optimize the marks at the cost of Understanding.
An entry level engineer here makes close to $1.5-$3/ hour in a reputed consultancy firm. I would not want to talk about those low paying firms at all. Nobody can expect good code for $3/ hour. I am sure Clients are paying more money per person but Consultancy is a broker here who eats up much of the money of their employees. This is pretty much the case here.
Sorry, but i disagree with your blanket statements as well.
Let me tell you how a CS student prepares for exam,
Variables is 20 marks, Pointers are 50 marks and Arrays are 40 marks, Lets just study Pointers and Arrays(you get the point right).
This is pretty much the case everywhere in India.
Not sure how many CS students you know, and how many of them actually studied the way you mention. But to extend that to "pretty much" everyone is going a bit too far.
And as far not giving your best (or getting the best) when you are working for $5 an hour (its great we have currency exchange rates!), is also not true as well. I know plenty of people who give/gave their best, just because they liked it. I love programming and believe i churned out good stuff, when i was earning that much. And there are plenty of others like me.
So does that "pretty much" means, everyone does great work, no it doesn't.
I was talking about education system, it is not application based but theory based. More importance is given to marks than understanding... which leads to bad programmers. As i stay in Bangalore(it is a outsourcing hub), i can surely tell the situation here.
There are surely exceptions, you can find tons of great programmers in India who contribute a lot to FOSS, but the other question is "Are these people working in Outsourcing Consultancies"? I guess not.
And as far not giving your best (or getting the best) when you are working for $5 an hour (its great we have currency exchange rates!), is also not true as well. I know plenty of people who give/gave their best, just because they liked it. I love programming and believe i churned out good stuff, when i was earning that much. And there are plenty of others like me.
Understand, we are talking as a whole, there are always exceptions. There are many people like you, who like what they do but most of them are here only because of the money, that is the reason there is so high attrition rate in consulting firms. I can give you tons of reasons but i don't have time. Time spent giving you answers is inversely proportional to lines of codes written. ;)
I think the problem is partly the 'industry's' motivation. Three main reasons for outsourcing are:
1. Do it cheaper.
2. Do it better.
3. Don't want to develop skills internally, grow horizontally, grow at all. I think all these are variations & combinations of 1 & 2.
If the motivation is 1, the effect is deep. Firms succeed by being cheapest. They hire, train & develop their employees based on this. The whole industry develops in that direction.
Like with Customer Service. Most outsource to save money. Most should outsource because they suck at it.
As they say, the truth lies somewhere in the middle.
It is never wise to trust and go by any blanket generalization. I am afraid the author raised very valid points, but at the end made this blanket statement:
So what is the solution?
Don’t outsource. Seriously.
And then (probably as an afterthought) added this:
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.
My views on this topic:
1. Outsource wisely. If consider yourself a hacker, and are in early stages of developing your product/startup idea, then outsourcing is definitely not for you.
2. If your work is not well specified and not well thought out, cross location development would make it even more harder to come up with something special.
3. Good programmers are not easy to find anywhere. If you are looking to outsource, and want a good team, please be ready to put in the hard yards. Negotiate, and select your team.
4. If even if you have the right team 'skills wise', please give this 'relationship' a little bit of time as well. :-). Developing a good working relationship across geographies is not easy. So, if you are looking for a quick solution in a short time frame (2-3 months), your odds of not getting what you really want, are higher.
This is not a well researched article. At best its a personal perspective and everyone is entitled to theirs...
Empirically a majority of the software work outsourced happens to be the resource intensive and the mundane work from large companies, primarily in the US. The software outsourcing companies from India have figured out or happen to know how to deliver and meet the expectations of these clients best. They are addressing the market need.
I hope the people on this forum realize and distinguish between outsourcing companies in India and the Indian programmers.
In other words, Don't hate the player, hate the game...
Outsourcing doesn't suck in all cases, which this article seems to imply. For example, I was maintaining cobol apps on a mainframe that were about 20 years old. Recently I read a news story that gov. payroll systems in California run entirely on cobol, and also that cobol programmers are impossible to come by. In India, the big firms actually train new grads in cobol etc., if the job requires it.
So, now, what is better, just stop paying the gov. of california employees, or outsource the payroll processing to india?
outsourcing is not just about money, there's more to it.
20 comments
[ 3.3 ms ] story [ 42.2 ms ] threadGood advice for anybody, anywhere, any time.
1. I employed individuals, not companies. It took more time, but I got good quality people on board. This is 8 years ago when I started, so I think I speak from experience.
2. The initial guys I started to work with, I have now made partners in some of what we do (sourceguardian.com as one example - they are full partners in it). Reward well and treat people with respect. It goes a long way.
3. I usually start with small tasks and build up. This way you can assess quality of code, but of equal importance you can also recognise if someone is motivated and who will deliver to deadlines. Anyone who misses immediately, I don't use again. Harsh, but it works for me.
4. I was not a programmer when I started. I appreciate this is Hacker News, but we're not all born like that and indeed it was never my dream. I learned to program so that I could put myself in the mind of the people I was working with. Worked for me, and guess what?... I enjoyed it. I'm still not a good or fast programmer, but I can converse more accurately what I want with the knowledge of what will work
I find it annoying when people put their own personal perspective as some kind of universal law. Outsourcing maybe sucks for many people, due to their experiences, but for me personally it has allowed me great freedom in my business and has introduced me to more cultures and more people than I would have otherwise.
But seriously, I agree with your take, inovica, I was frustrated with the quality of work (and integrity of the workers) when trying to cut costs and hire Indian programmers. So I looked elsewhere and have been very pleased with the results I've gotten by working very closely with Russian programmers.
A blanket statement such as "outsourcing sucks" isn't helpful to anybody seriously considering it. It's also link bait, imo.
I think the parent's point was that some outsourced people are good, and that you just have to take time to find the pearls in the (giant, steaming, rancid) piles of oyster guts. The bigger problem with outsourcing, if you ask me, is the communication delay. It's nearly impossible to build a team when they're thousands of miles (and 12 time zones) away.
Outsourcing is no different from hiring regular programmers; if you wouldn't hire the people you're outsourcing to, why in the world would you trust them to do a good job?
True story, by the way.
An entry level engineer here makes close to $1.5-$3/ hour in a reputed consultancy firm. I would not want to talk about those low paying firms at all. Nobody can expect good code for $3/ hour. I am sure Clients are paying more money per person but Consultancy is a broker here who eats up much of the money of their employees. This is pretty much the case here.
And as far not giving your best (or getting the best) when you are working for $5 an hour (its great we have currency exchange rates!), is also not true as well. I know plenty of people who give/gave their best, just because they liked it. I love programming and believe i churned out good stuff, when i was earning that much. And there are plenty of others like me.
So does that "pretty much" means, everyone does great work, no it doesn't.
There are surely exceptions, you can find tons of great programmers in India who contribute a lot to FOSS, but the other question is "Are these people working in Outsourcing Consultancies"? I guess not.
And as far not giving your best (or getting the best) when you are working for $5 an hour (its great we have currency exchange rates!), is also not true as well. I know plenty of people who give/gave their best, just because they liked it. I love programming and believe i churned out good stuff, when i was earning that much. And there are plenty of others like me.
Understand, we are talking as a whole, there are always exceptions. There are many people like you, who like what they do but most of them are here only because of the money, that is the reason there is so high attrition rate in consulting firms. I can give you tons of reasons but i don't have time. Time spent giving you answers is inversely proportional to lines of codes written. ;)
If the motivation is 1, the effect is deep. Firms succeed by being cheapest. They hire, train & develop their employees based on this. The whole industry develops in that direction.
Like with Customer Service. Most outsource to save money. Most should outsource because they suck at it.
It is never wise to trust and go by any blanket generalization. I am afraid the author raised very valid points, but at the end made this blanket statement:
And then (probably as an afterthought) added this: My views on this topic:1. Outsource wisely. If consider yourself a hacker, and are in early stages of developing your product/startup idea, then outsourcing is definitely not for you.
2. If your work is not well specified and not well thought out, cross location development would make it even more harder to come up with something special.
3. Good programmers are not easy to find anywhere. If you are looking to outsource, and want a good team, please be ready to put in the hard yards. Negotiate, and select your team.
4. If even if you have the right team 'skills wise', please give this 'relationship' a little bit of time as well. :-). Developing a good working relationship across geographies is not easy. So, if you are looking for a quick solution in a short time frame (2-3 months), your odds of not getting what you really want, are higher.
Previous related discussion threads:
http://news.ycombinator.com/item?id=217858
http://news.ycombinator.com/item?id=233145
Empirically a majority of the software work outsourced happens to be the resource intensive and the mundane work from large companies, primarily in the US. The software outsourcing companies from India have figured out or happen to know how to deliver and meet the expectations of these clients best. They are addressing the market need.
I hope the people on this forum realize and distinguish between outsourcing companies in India and the Indian programmers.
In other words, Don't hate the player, hate the game...
So, now, what is better, just stop paying the gov. of california employees, or outsource the payroll processing to india?
outsourcing is not just about money, there's more to it.