The key reasons include the lack of local talent, tight deadlines, limited budget, and the lack of understanding and experience of your existing team. Outsourcing is a great way to boost your development capabilities in the most cost-effective way. If you looking how to find a web developer or any other single expert, it may be a good idea to go with freelancers. However, even for small teams, you should consider contacting outsourcing companies, because they have engineers that have experience working together.