Outsourcing refers to contracting a company's work, or an individual's work, to another company or individual who is willing to do the work. Basically, farming out services to a third party.
Reasons for Outsourcing
Company can focus on core issues while the third party focuses on the peripheral ones.
Lack of resources. The specialized company that handles the outsourced work is often streamlined and often has world-class capabilities and access to new technology that a company couldn't afford to buy on their own. 
Getting work done more efficiently or effectively
Increased flexibility to meet changing business and commercial conditions.
Tighter control of budget through predictable costs.
Lower ongoing investment in internal infrastructure.