Software development outsourcing is typically done in 6 stages:
Defining the scope and requirements of a project;
Finding an outsourcing partner;
Selecting the most appropriate outsourcing model;
Development;
Deployment;
Maintenance.