Software development outsourcing has been around for many years. Still, it is worth starting with the basics—service models. There are different models you can use to outsource the development, testing, or maintenance of a software product, but they are all based on the three primary approaches: staff augmentation, dedicated teams, and project-based outsourcing. These models are like the rock-paper-scissors (or healer-DPS-tank of the MMO world, if we consider more modern on-line games) of outsourcing: There is no “best” model. Depending on your needs, one beats the other, and we need them all to reach a balance in outsourcing software development tasks.
To read more follow source: http://auriga.com/blog/outsourcing-in-software-development-rock-paper-scissors-of-service-models/