How To Choose The Right Outsourcing Model
All that means that rule #1 of outsourcing (and, I believe, of any activity as well) is “First, understand what your actual needs are. Then choose the right approach and implement it.” By needs here, I don’t mean the details of project/product requirements, but meta-project (which is actually what service is—it all makes sense) requirements: how flexible you need to be, what risks you are ready to pay for to be moved to the provider’s side, what you want to control yourself, and what you’ll be happy to make the provider responsible for.
In software development outsourcing, that means that one of the first questions you ask yourself should be, Do I choose rock, paper, or scissors (i.e., the staff augmentation, dedicated team, or standalone project approach for my task)? In short:
If you want fine-grained control and all you are looking to do is to get talent quicker and cheaper somewhere offshore, go with staff augmentation.
If you don’t want to micromanage and have a long roadmap to develop, or you know that your requirements will frequently change, or you need a continuous service like maintenance without the headache of managing the employees and other implementation details, go with the dedicated team.
If you have well-defined project requirements, expect a short development time, or don’t want to be responsible for the project underestimation risks, pick the project model.
Just keep in mind that this list is obviously an oversimplification. In your case, other considerations may play a significant role in choosing the right service model.