Does Outsourcing Programming Really Save Money?
itwbennett writes "In a blog post titled 'Why I Will Never Feel Threatened by Cheap Overseas Programming', John Larson tells the story of a startup that shipped its initial programming to India, paying $14 per hour, with predictably disastrous results. Larson concludes: 'I have yet to see a project done overseas at that sort of hourly rate that has actually gone well.' But in this not-uncommon tale of outsourcing woe, is the problem really with the programming or with unrealistic expectations?" The comments on Larson's blog post (originally titled "Why I Will Never Feel Threatened by Programmers in India") seem to me more valuable than the post itself.
Just because the overseas programmers suck (debatable, but let's assume) doesn't mean management isn't going to go for the $14/hr carrot.
I am very small, utmostly microscopic.
If standard salary in US is USDx/hour for a developer
Then for an equivalent skill level in India, they will have to pay approx USD(x/10)/hour
if they decide to pay x/20 , then obviously they will get lower quality
They need to go for cheap, not the absolute cheapest
Modern management philosophy depersonalizes employees into interchangeable resources. There is Management, Knowledge Experts and "Cogs".
They don't even care that it's more expensive using cheap programmers to get a job done - it's worth it to them to not have to depend on any individual contributor.
I had a project that I was outsourcing a bid for. It was probably 6 - 10 hours maximum and I put a bid out for $150 figuring $15/hour or more for this simple task. All the overseas programmers started putting in bids of $250 - $500 and the ONLY bid I saw that was $150 or less was an AMERICAN PROGRAMMER!
If anyone NEEDS to know what the bid was, it was integrating a payment API into a web application. I've had people in the past do it in less than 2 hours for the $150 price I was offering.
If you pay someone by the hour, they will work as slowly as they can...
If you pay someone by project, they will cut corners to finish quicker.
If you pay someone by lines of code they will write bloated code.
All of this is even worse when the developers are halfway round the world and you can't keep track of them so easily, and when you don't have sufficiently clued up people on hand to inspect the code they have written.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
I work at a company that does outsourced programming for for US and EU companies. I have been working at this for the last 5 years aproximately (always in programming & analysis roles).
I am really amazed at how much our clients undermine their own goals. I understand that cost is what drives programming jobs to my country - but I still have to see a really successful product come out of this. It would be difficult to find a single cause for this, but all of the following are at least partially responsible:
1 - Low wages.
2 - Lack of good programmers getting involved: some of the programmers you can get for the lower wages are great, some suck. I've seen companies taking just anyone interested to fill programmer positions for such jobs (you can train them, right?). Getting involved in the selection process may help prevent this.
3 - Lack of trust in the the outsourced team: you can't think of the outsourced team as a bunch of mindless morons and expect them to care about your product. In those cases in which the outsourced team was a very good team, it didn't make the slightest difference because people was told what to do, and not to think - which makes hiring inexperienced people a pretty attractive alternative.
4 - Giving more importance to cost & time, than to quality: what would anyone expect to get, when quality is secondary to time & cost? This is a huge way to undermine your projects.
5 - Communication: communication is harder when people is spread all over the world. IMHO you need to compensate this difficulty by having some tool to help you keep in touch. In my current company, we use skype, and we keep in touch at all times with the client, which really helped solve this particular problem.
6 - Planning: planning is much more difficult when delivering work to someone who is not right at your side.
5 - Etc, etc.
diegoT
I know of a couple of software projects that are outsourced and getting good results.
This one basically the formula for one of the best of them:
Each team is overseen by a local (stateside/canadian) lead programmer who can actually review the code properly.
There are guidelines in place for documenting and commenting the code. Don't follow the guidelines, don't get paid.
And they pay close to what US programmers for a similar project would demand.
As such, they never run out of a supply of candidates. They can afford to be VERY choosy about their hires. And they get damn good value for their money.
Yes, they went through a few scammers during their early spin-up. But they had that sort of thing built into their expectations. They eventually wound up with a crack cadre of programmers and software products that are some of the best-documented I've ever seen anywhere. You could literally spend a couple hours reading the documentation and start working on the software.
Then you get the guys who think they're going to set up a programmer sweatshop someplace and pay sub-subsistence wages to hordes of thousands and magically fall on the fair side of the "infinite monkeys" principle.
I have zero pity for these fools and the crap they wind up with (if anything is ever actually delivered).
Chas - The one, the only.
THANK GOD!!!
I think you hit on something, even if you haven't realized it. Companies don't hire first year students. The numbers have been dropping for almost a decade now. Companies get it into their head "why deal with college hires when we can use experienced off-shore". Well you can't keep a pipeline of experienced programmers in the US unless you make the investments in the next generation of programmers.
The main problem I've had with Indian programmers is that a lot of them don't really understand english (even though it is the official language of India)
English is an official language of India, and not the primary one. The primary official language is Hindi - you know, their native language.
I realize it's vastly preferable that they speak English if they work for you, but you're implying there's actually something wrong with Indians who don't speak English, and that's absurd. There's nothing any more backward or stupid about an Indian who doesn't speak English than there is with a Canadian who doesn't speak French or a Belgian who doesn't speak German.
Don't practice the cultural ignorance and arrogance that befalls other Americans. I think you're smarter than that.
If you can't get the guy down the hall to do it right, don't expect it come back right from India correctly either. Most software fails are due to poor planning, misunderstood or absent requirements, poor design with no input from customers, and so on. Yes, most of us who've worked with or managed foreign teams know that the coding from India (or Iowa, for that matter) may not always be top notch, but coding is the easiest part. Planning, useful documentation and management of a well conceived project is the difficult part.
Please do not read this sig. Thank you.
Management that is supposed to oversee the project sucks.
Outsourcing properly is hard work, and how many managers do you know that actually work hard? Remember, these are the same people who couldn't figure out how to build and market a widget, now have decided that a boost in profits is only possible by outsourcing.
You must create comprehensive requirements. That takes a team. Reading large boring documents and sweating the details. How many of these lazy managers do you think would actually read anything over 10 pages long?
Next, you must set design reviews. Again, what is the attention span of these managers? Again, the lazy ones who decided to outsource in the first place?
Next, you must review the progress at multiple stages - and have enough flexibility in the contract that if you have to burn it and start over, you can afford that. Typically you don't have to burn everything, but you need to fix the other steps in the process that you obviously messed up on.
If you want a Ferrari and not a Tata, you had better be able to express the difference in a requirements document. "A car with 4 wheels" isn't going to cut it.
Best practice is to have a requirement that is based on a previous product. "We wants something just like this except......"
Oh, and don't forget to tell the Chinese that all materials must be food safe as specified in California or EU.
Perhaps from business's perspective it works like this: Since we don't know how to leverage, motivate, and manage talent, we might as well pay less for the same suckage.
Table-ized A.I.
Why didn't college teach me Lying 101 and 102?
Those are MBA levels courses
Half of writing history is hiding the truth.
than $60/hr in america. everything is much,much cheaper. in some respects, 14/hr in india will provide much better living standards than 60 in america.
the question is, why everything is so expensive in america - why they became so expensive, and why they are STILL staying so expensive, despite all the cost reductions due to outsourcing of manufacturing et al. cost of manufacturing shoes have gone to almost dime-level, but they are still being sold arond at least a few dozen bucks level. exorbitant profits.
this kills american competitiveness. corporations make exorbitant monies over americans, but they dont pay a reasonable percentage of what they make as salaries to americans. then americans make much less, and have to still live in an expensive world. all for shareholder betterment.
that being said, its possible for an american to compete easily at the 30/hr level. such a level, actually exists. indian programmers do not stay at $3, 5, 10/hr levels either - they jump ship going to higher hourlies. as far as what i can tell, a good one wont stay at 15/hr level either. so, everything normalizes at 30/hr level - those who are working at those hourly wages stay working with whomever they are working for a long time without jumping ships. this 'ship jumping under 30/hr level' also seems to contribute to the shitty work that is delivered under 15/hr. (you can still have good work done around 15/hr though).
Read radical news here