Money
Budget optimization
Usually outsourcing companies offer better cost conditions due to offshore nature and lower cost of living in other countries. Your tax obligations for employees are moved to specialized companies and often optimized. Popular outsourcing regions have good tax laws to minimize the overhead. Development budget is often more accurate and controllable then for in-house hiring, due to already refined processes and experience of work on multiple projects or with various clients.
Reduce operating costs
You may know that operating costs can be greater than developers salary. Just imagine all the infrastructure that is needed to serve just one developer. Accountant, hardware support, electrician, even cleaner that removes the dust from developers desk and keyboard. And this is not a complete list. When you pay a fixed price to outsourcing company, all these incidental costs just disappear, and you can free your in-house resources for other business purposes.
You shouldn't use a steam-hammer to crack a nut
Every project have stages or areas that can be easily done with average developer. You don't have to assign your local talent to such simple tasks. This parts of project can be outsourced, so your in-house developer can do his more complicated tasks.
Time
Improved time to market for your application
In some cases you can start development process in a day.
Outsourcing teams often have developers work bench and can start to work immediately. Bigger teams also can be gathered rather fast by reassigning good specialists from the completed projects.
This approach can greatly reduce the time you need to make your application available to market. Time is money - so this can be a great advantage over your competitors.
Scalability and flexibility
It is much easier to change the number of specialists in the team when you have only short-term plans and don't want to hire or fire anyone locally.
You can vary your outsourcing developers pool the way you need it. You can increase and decrease the number of developers that working on you seamlessly. When you need to add additional technology experts to your project, you can expand the team very quickly. This is true especially when you need to add different technology to your project.
Talent
Specialization and qualification
You can gain access to broader selection of qualified specialists then you will have when hiring locally. Outsourcing companies that specialize in specific areas can have extremely qualified people that are not available on market for hiring. Outsourcing companies mostly have a developers that specialized in different technologies, so projects with complex architecture and components usage can be easily supported by remote organization.
Get access to high skills level
Sometime it can be a problem to find a specialist of suitable level in your country. It takes 5-7 years to train good Senior Developer, but the development trends may change every year, some technologies may become more popular, like cloud applications development or Android software development. And of course when demand exceeds the offer, professionals tends to raise their wage requirements.
In case you need to temporarily freeze the project or just slow it down to finish some parallel processes you can release your staff back to company pool. And when you need them back - they will be just here, with all their experience and knowledge that they gain on your project. You don't have to pay them salary during project idle time or train completely new staff