The need for skilled resources, reasonable development costs and the criticality of projects pushes businesses to outsource. Complex projects can be outsourced when the end-user communication is minimum and requirements are well documented. Sometimes in-house staff is not sufficient for the advanced technologies so to gain access to these technologies and business growth, companies outsource their projects.