P.S. don't ask for downvotes.
Isn't this what's already happening right now? The US is still competitive only because of the Capitalist structure that is already in place. Obama and other Occupy(tm) Socialists are destroying that, and soon you won't have any jobs left.
p.s.: Most of us from the 3rd world would like the US to keep its superpower status, to balance the threat of China. :)
Unless the laws have changed dramatically in the last few years, there was never any barriers in place contracting labor outside the US assuming you paid them as contractors. If anything, US labor laws favor outsourcing over insourcing "native" contractors due to tax laws surrounding 1099 Technology workers that were put in place in the early 90s.
So really, despite the fact that scales are tipped in favor of foreign contracted labor (cheaper rate, less tax and legal considerations) businesses STILL prefer to hire local labor. To me, that's very telling -- it has a lot to do with the fact that much of the foreign talent, like the US talent, is already gainfully employed and tough to access.
So please, take this "our senior developers (with only 2-3 years of real experience) are just as good as your top US developers" idea and stick it where the sun don't shine. There is a huge benefit to hiring people that have been eating, sleeping, and breathing code since age 10. Our 15 year senior developers might only be 25 years old, but they can code circles around any of your 2-3 year experience engineers.
To be a genuinely "senior developer | engineer | programmer" in the eyes of others it probably takes at least 15 to 20 years of experience building and running things. Not all of that needs to be professional - writing door games in high school counts.
I do. Started working as a software dev in 1994. Moved to Bangalore to take up another sw dev position at CyberCash India (an offshore office of a Virginia based ecommerce product company http://en.wikipedia.org/wiki/CyberCash,_Inc . ) in 1998. C on VAX Unix. Those were the days. Lived and worked in the US for a while before returning to India (and have no plans of going back to the USA :) ).
" They don't exist, because the software industry has only been there for the last 5-10 years."
You have no idea what you are talking about. Infosys was founded in 1981, for example.
I never worked for Infosys or any of the large outsourced services dev companies, but the idea that there are no developers in India with 15+ years experience is rubbish. (Not getting into whether 'number of years of experience' is a valid metric for judging sw talent).
And as for "living and breathing code", I started programming when I was 10 years old, on a Sinclair ZX Spectrum in the Eighties, writing games in ZX-80 assembler. We even had a club for Spectrum devs - in a small town in South India, in the eighties. I have many classmates who still code every day (though they have fancy titles like "Senior Architect" these days).
Did most of my generation of coders move into management? Sure they did. Are the good developers swamped by tonnes of clueless people flocking to the "hot career"? Sure they are. But none of that is specific to India.
If you have to deal with dumb Indians off a boat who can't speak English but seem to take your jobs, I sympathize. There are a lot of dumb Indian devs. But I've also had to deal with a lot of dumb American devs who think they are automatically superior to all Indian devs "just because". Plenty of those too.
(all this is just to counter your idea that people with 15 years of experience writing code don't exist here and "the software industry has only been there for the last 5-10 years" (roll eyes). Please educate yourself before making such emphatic (and false!) statements.
I live in a third world country and I know what you mean. There are spectacular developers in Tunisia, but they are a tiny minority. So the point here. The % of developers that can do the work.
Yes, there are pretty impressive developers in my country. But what's their numbers and what are they doing now (either hired, working abroad or running their own businesses)? Are there a new and constant supply of good devs so you don't run out of them (considering you have the money)? Are they enough so that you company can scale when needed? Is there good sales people, managers, office assistants (because you don't only need developers for you business)? Is there a good infra-structure (Internet, Telecom, Importing stuff, Airports...)?
Factor all this and you'll find that third-world countries make no sense to run high yield businesses.
the post I replied to didn't make the nuanced argument you do. I am fairly anti outsourcing myself - in practice it results in ancient rotting codebases that people in the West don't want to maintain anymore landing up here and train a new bunch of third grade developers.
I mostly agree with what you say, but that wasn't the point made by the poster I responded to.
He(?) made a statement that India's software industry is only 10 years old (false) and condescendingly extrapolated that to say that therefore there aren't any senior devs in India with 15 years experience (also false).
I quote "what senior engineers in the Phillipines or India have 15+ years of software development experience. They don't exist, because the software industry has only been there for the last 5-10 years."
My post was only to refute his specific claims, and push back just a little bit on his condescending tone. No more,no less.
I made no claims about whether it makes economic sense to outsource to India (or Tunisia or wherever) or comparing India to Silcion Valley, or absolute measurements of number of good devs/square km or whatever.
What I've noticed from working first-hand with outsourcing companies is that they promise degrees and accreditations that don't exist. They promise the developers working on your project will have 5-10 years experience, but for the most part you will get developers with 2-3. They promise masters level CompSci but you are lucky to get associates or trade school level. They promise systems and network engineers with MCSE or RHCE or CCIE but you are lucky to get MCP or CCNA.
I apologize for making blanket statements, but there is a lot of job hopping for qualified candidates in Bangalore (as I'm sure you are aware), so the outsourcing companies are usually offering those candidates that are new to the industry and have not had the time to generate sufficient experience and get a better job somewhere else. That is just the reality of what I have seen in my career.
Just saying, don't dismiss a country of a billion people so easily - with so many people, there have to be some smart ones.
Good engineers are a minority in every country. That said,the USA (and it is a great country) has the advantage of attracting smart people from all over the world to learn, work and settle there, so you have a constant influx of really smart people, an adavantage no other country has(these days, Canada and Australia maybe?). The US also has the finest universities in the world. So I am not surprised that in general, the US has the best tech companies and the best engineers.
But that doesn't mean there aren't good engineers elsewhere. I was only mildly pushing back against your somewhat sweeping generalizations. No insult or harm intended.
If the only Indian devs you've encountered are the lying incompetents exposed to you by the typical Bangalore bodyshop, I am not surprised if people draw conclusions that may not be very flattering.
I'd posit that it's not necessary to being a good programmer anyway.
I tried (well, was forced by management) to remotely lead an offshore team (in India). The project was quite complicated (storing, retrieving, and interpreting the results of a large quadratic programming model with millions of variables), and the programmers were paid $12/hr. The first pass was a disaster. I described the problem generally, and got nowhere. I then asked them to use a hashmap to store the results, and they responded ".NET doesn't have a hashmap." I explained that .NET must have some kind of data structure that would allow us to retrieve a variable's value based on it's name or some other lookup key, and that's the approach I recommended they take, though honestly, they're the ones spending hours on the code, so they were free to take an intelligent approach the problem and shouldn't feel obligated to take any approach I suggested, though I was happy to help. A week later, I got code based on arrays. They were iterating through one array to get the variable name's index, then looking it up in a different array. And doing this millions of times.
So you'd think I'd soured on offshoring, right? Not really, I'd soured on trying to find good programmers with a decent math background for $12/hr. We ended up hiring two people located in India, one with an MS and another with a PhD (both from good US universities). I think we paid an annualized rate of $65,000-$75,000 each, though I don't really remember, it was around that much. That was considerably less than we would have paid in the US, and they were good programmers - even better, I was able to describe a need rather than a solution, and they were definitely able to fill in the gaps and get it done.
So, could they "run circles around their American counterparts?" Well, that all depends on how you define counterparts. If you go by dollar-to-dollar, I'd say so - it's unlikely that you'd hire someone in the US who could do this for such a low salary (though plenty of grad students here do as "research assistants" it for a tenth that salary and a tuition waiver). If you go by salary percentile, I'd say no way. The guys we hired were good, but it'd be stupid to claim that they'd run circles around the top tier of US-based programmers. The top tier in the US is very very strong.
Overall, I'm not sure it was worth it, though I wouldn't claim it was a bad experience (like the $12/hr programmer experience, which was definitely a bad one). The company still had to pay me and other developers the higher salaries to oversee the work, converting us into "architects" who managed overseas teams - and I could have just written the damn code myself. We were considerably less agile, and our local people (including me) were less knowledgeable of the code base even though we were spending time reviewing. At the same time, it's hard to hire anyone with these skills, so if they're available overseas, I'd say it's a reasonable option.
Just whatever you do, don't fall into the trap that it will be "easy" to hire "top" developers for vastly lower salaries who will "run circles" around Americans. I do think that you can, with substantial effort, hire strong developers for somewhat lower salaries who will perform well, though you will (in my experience) incur enough overhead that it makes more sense to do this to access top talent than to save money.
Managing outsourced workers is expensive, and quite a hassle too. You will most certainly have to hold their hand much more than a native. Without significant oversight and hand holding, it's a recipe for disaster.
In most successful outsourcing scenarios, there is a dedicated team to manage the outsourced workers. For every one success story with outsourcing, there are 50 failed and frustrated attempts.