Letters posted here are associated with the following article:
The letters thread is now closed.
He misses the real thing that makes him marketable, and one of the key reasons Outsourcing doesn't work: He's here. Trying to communicate with people 1/2 way around the world who are speakers of another language and who have a different culture simply doesn't work well for creative projects and that's what software development is. Throw in the conversations all happening when it is noon for one person and midnight for the other over phone lines and even the horrors of speakerphones and it all gets even worse. There's no way to pick up visual cues when there's no visual. Teleconferencing doesn't really work well yet and even when it does, it is expensive. Not what you want to do when the whole point is saving money.
You can get around the time differences if you use EMail, but then a conversation involving 5 exchanges can take a week. Nothing can really substitute for two people sitting down at the same computer or in the same meeting room and hashing out design ideas or debugging problems.
There's another huge problem with outsourcing and combined with the first one I mentioned, it is why more and more companies are bringing everything back in-house. Lets say you have a company and you've outsourced creation of a software product that you intend to use. You've gotten a good price and the product miraculously comes in on time without bugs. (OK, that NEVER happens, but just for the sake of argument). Now you realize you've made a mistake in your specifications. Or your users have started complaining that part of the program isn't quite right. Likely, several problems like this have cropped up. If you have a programmer in-house, even a consultant, you go back to them, say "Fix this" and they do. However, since you've outsourced, now you get to go back to that company and renegotiate for the fixes. If you were foresighted, you worked this into the contract. Either way you're now about to pay more money for that same software. Plus, between the new negotiations and the other company's schedules, you're now late with the final (ha!) product. And this happens for EVERY change you want to make. Over time you end up spending more than you would have in-house and the development takes longer too.
Now add in bugs you don't discover until you've signed your acceptance of the product and the fact that communication delays and programming problems have made your product come in very late and you haven't saved anything at all. All you've really done is sign away control over your product and any flexibility you may have had. I've seen companies pay a fortune because the software design they originally signed off on doesn't actually meet their needs. Changes are often much more expensive than the original contract because really, what choice do you have at that point? If your software needs changing and you don't have room in your budget, you're just screwed. I've worked for companies where my job is to create software that interacts with outsourced software just to make it do what it was supposed to in the first place.
Other benefits of in-house development include programmers interacting with users and gaining an understanding of how the software will be used. Programmers being able to assist and train the employees. Immediate adjustments when they're needed. Well, the list goes on from there. Outsourcing, even many times to nearby companies, simply doesn't work in the long run. Bringing in consultants when you need them or having your own IT department far outweighs any supposed financial savings that might hypothetically result from outsourcing.
"outsourcing doesn't work"
Lynx, I used to manage a team of programmers in India while I was in the US, and although I am not exactly outsourced I currently work on a daily basis with people 3-6 hours time zones away from me (they're the main office; I, the American, am the outsider). There is no time zone problem that can't be solved, and telephone, IM, and email (and some in-person work) are all feasible with a common language and a willingness to work hours other than 9-5.
There are reasons why having people locally is great, and I agree with many of yours (although I shudder at the idea of an app's programmer training anyone on it). But saying that outsourcing doesn't work just isn't true. If it were, then outsourcing would not be putting immense pressure on local people who do the jobs most often outsourced.
The serious players are moving their labs offshore. The way around the time zone and language problem is not to eliminate offshoring but to treat the domestic R&D as a legacy operation. The result: 70% decline in computer science majors in the last 6 years. Only a fool would go into engineering in this country.
Anyway, this story is so anecdotal it trivializes the whole issue.
There's a thread over at slashdot on why it is so much more difficult to hire superstar programmers than it used to be. And one answer is that the job market isn't melting away beneath our feet - though it is still shrinking, just not so fast. But a big reason is that many of the brightest have left the field. Thanks to the outsourcing cheerleaders. Be careful what you wish for.
ref: http://ask.slashdot.org/article.pl?sid=06/10/30/1351249
Typical of the average, middle-class, North American: "I've got mine, so fuck you." Back when Kirwin's ass was in the fire he founded an entire lobbbying group, created a (very professional) web site and hounded "weasel" executives. But now? Well, Mr. Kirwin is doing just fine, fuck you very much, and I guess all the still-struggling members of his organization can just go to hell. What a nice fellow.
I am now convinced that nothing in this country will change until the first CEO is shot dead by the first maddened, formerly middle-class homeless guy whose job was off-shored. When they realize that they can be gotten to anywhere, even on the street, they may change their ways.
And if they don't? Time to man the barricades and dust off the guillotines.