Just what the title states.
How does outsourcing differ from subcontracting? Is it merely terminology that is different?
The terms do seem to be used interchangeably...
However, I would suggest that there is a semantic difference:
Having Googled, this is in line with other opinions, eg:
As Andrew said, both terms have the same meaning, more or less.
But in my own experience, the clients approached to me with both terms and each time each of them was used in a similar manner. This made me think that there is a spoken meaning adopted among clients hiring freelancers.
Outsourcing - usually smaller projects. Another team is hired and the project is outsourced to them. The real client is usually not aware that his project is done by 3rd party.
Subcontracting - usually large projects. A big company took the project for large money and has hired another team to finish it for them. Such contractors usually last more than 6 months, or more often a year.
As I said, this may be my own interpretation, but each time someone approached to me with a term "outsourcing project", it was usually a smaller project. Whenever I hear a word "subcontracting", then I am approached by a large company and I know that this project will occupy my whole team.
The two terms mean the same thing from a business perspective. It has nothing to do with size. Entire departments for call centers, accounting, order fulfillment consisting of hundreds of employees can be contracted out to professionals on a long term recurring basis. The outsourcing is governed by a contract stipulating the services expected and the payment terms that may be fixed-priced for the duration of the contract or based on some sort of pay-per- use/service arrangement. Hence, it is essentially a subcontracting effort so that someone else does the job instead of the company doing it.
In the 50s until now, airlines subcontract their sales operations to general sales agencies and their airport operations to ground handling agents in cities the airline serves so they don't need to hire and send their own staff to these cities and pay them more. The term outsourcing didn't exist then, but these subcontracting efforts have the same implication to the airline business in that others do the job the airline could have done but at a lower operating cost.
When I use (or hear) the terms:
Outsourcing: Something you do with a project or task, you sent it to an individual or organization outside of your company, and the expectation is that they will return it completed.
We outsourced the project to another firm.
Subcontracting: Someone you hire, generally to assist with a project or task, but that isn't a traditional employee.
We subcontracted a few people to finish up the project.
Note: My definitions and usage are very industry and experience specific. To manufacturing / enterprise outsourcing and subcontracting have a different meaning. In the context of freelance web development and smaller scale web development shops, I believe the my definitions are consistent.
While preparing my deck of slides on Contract Management for a training program, I suddenly felt I should refer to Dr. Google to find out if there is any difference at all between these two terms. I felt Tim Lytle's answer is closest to the point. An ENTIRE function is generally outsourced by an Organization so that it can concentrate on its core competency (e.g. accounting, estate management, even IT functions in manufacturing industries, etc.), i.e., ONE FUNCTION - ONE AGENCY. Sub-contracting, on the other hand, is when, for example, the construction work in different zones in a large project is awarded to different contractors.