Your CEO is like 10 years too late on this one, companies who offshored or outsourced mostly brought those projects back internal since. The companies that were successful got there by starting a development office in the country they wanted to ship work to, that's the only way to do quality control long-term. I've seen companies with less than $3M in revenue do it and then rent the team out to other people for projects. The contract outsourcing teams that were good realized how few of them there were, and then like any good American tech worker those teams raised their price. So the "myriad benefits" are: cost cutting by scraping the bottom of the barrel and accepting that in 3 years you'll have to pay an expensive grown up to redo it...and that's it.<p>If your CEO is bound and determined to warp you back to 2005, it helps to understand what you are renting when you contract tasks out. If you get a team of 10 people there's: one great coder, one pretty great coder, and 8 random shlubs they grabbed off the street. This absolutely includes contract development teams in the United States. The two good coders are the only ones you will be able to communicate with before you sign a contract. The money you pay them (cost: 1 good coder x10) goes straight to paying the two good guys and then the contracting company makes their margins off underpaying the 8 shlubs. Note none of these are management, project management, or anything else. At best one of the two guys is a Lead Developer but that isn't management.<p>So in order to do it effectively, you have to have an extra manager in your location whose entire job is to manage the offshore/outsourced team directly. Not a project manager, a literal manager of software engineers. He absolutely has to be able to do weekly code reviews because the two good guys aren't going to do it for the 8 other guys who need it. He has to watch that each of the 8 guys are doing work, checking in their own code (some of them will have their sister do it because that's how they got through college), and you have to have language in the contract where this in-house manager can jettison anyone who can't keep up. The price of that guy needs to be factored into the 'cost' side of the cost/benefit, along with the regular project manager and tech executive time at your end. These people will work twice as hard communicating everything twice to the remote team.<p>At this point you should be thinking "why don't I just hire this theoretical Managing Developer and then give him two mid-senior recs in-house and let them do the project themselves?"<p>You can try to offload trivial coding tasks to them but palidanx is right, do not dump infrastructure, foundational tech, or release engineering on them. They will screw it up and in the process they will screw up all your in-house people's work, too.