Insourcing is what is happening at some large global Fortune 500 companies.  Essentially this is doing away with H-1B visas and establishing your own IT center offshore or rather on a different shore than your HQ.  Massive money savings by doing this.<p>The way this should operate for software development is to have people at or near HQ that are the key roles - software architecture, project managers, requirements analysts and software development leads or managers.  Then at your Asia branch (India most likely) you would staff up managers, software developers, etc. in a center where they can deliver things that are tightly aligned to your companies strategy instead of aligning to some legal contract.<p>In software terms: insourcing is a tightly coupled mutually beneficial interface, outsourcing is going through a facade owned by two legal teams.