I've just read an interesting article on Wired.com: The Micro-Multinational.
And the story begins with a programmer in US who outsourced his own job to a guy in India. The magazine says this is "all win" situation because:
By subcontracting out the generic parts of his job, the programmer gives himself a promotion. The Indian developer is well paid. The employer gets good code.
I would strongly disagree: at least the employer gets code with a delay because of additional communication between a US programmer and the one in India.
I am also strongly for outsourcing as long as it put a brilliant people together to create a better product. But the quality should not suffer. Also it is not very loyal to keep this as a secret to the management because delays should be considered in the estimations (which are hard enough to create :) in software business ).