## 1 Introduction  
Over the last few decades, Global Software Development (GSD) has been the emerging trend for the development of software across the globe. In the GSD paradigm, software engineering teams are spread across the globe, working together to carry out a project. The organizations have adopted this business strategy in order to obtain quality products at low prices by using the resources of low-wage countries. This brings down the cost of software development by utilizing the employees with high skill sets and a wide pool of global resources as well as accessing cheaper resources and global talent. In addition, GSD provides opportunities, such as the development of software by following the sun, software development round the clock, access to qualified developers and engineers, access to online available resources, and obtaining economic as well as business growth [1; 2; 3]. Organizations are always looking for new business strategies to gain competitive advantages. By adopting outsourcing, the organizations gain competitiveness. Outsourcing is a strategy that engages an external vendor in order to receive services, such as software development, maintenance, data entry operations, facility management and telecommunication services. Software development outsourcing is a business strategy that has been adopted by organizations for the last two decades. This can be defined as \"an agreement between client and vendor where the client hands over its software or part of it to vendor and vendor provides the services\". In other words, software development outsourcing is a mechanism involving a third party to provide maintenance services either using an onshore model or an offshore model. Similarly, outsourcing strategies are increasingly used by firms in the leading countries; namely the US, UK and Japan. These firms outsource their projects to low-wage countries, like China, India, South Korea, Russia and Ireland, to find cost efficient solutions. Offshore outsourcing or offshoring or global outsourcing is defined as the engagement of geographically distant vendors to provide services at a low cost across national borders. The major reason for adopting this strategy is the reduction of software development cost. Organizations cut down development costs about 30-50% by using the offshore outsourcing strategy [1; 2; 3; 4; 5; 6; 7]. According to [PERSON] et al. [8], the market size of Information Technology (IT) outsourcing and Business Process (BP) outsourcing was 373 US billion dollars in 2011 and 424 US dollars in 2014 with 4.4% annual growth. Similarly, \"Horses for Sources\" estimated the market growth of IT outsourcing and BP outsourcing for 2013 as double, i.e., 952 billion dollar [8]. Likewise, it is expected that the market size of IT outsourcing alone would be 64.3 billion dollars between 2018 and 2021, with 2.4% of annual growth. A number of business functions are outsourced, such as IT, financial services, management of human resources, logistics and manufacturing [9]. IT outsourcing has sub categories; namely software development, software maintenance, infrastructure and business process [1]. Software maintenance is an important part of the development phase. Software maintenance modifies an existing application in order to correct errors, deal with new technology and platform, and adapt to a new environment. According to the IEEE standard [10] software maintenance is defined as \"the modification of software after its delivery to fix errors, to increase the performance and to adapt the application to a changing environment\". After becoming operational, the software system enters into the maintenance phase. Maintenance is aimed at keeping the software operational according to the needs of clients. The main categories of software maintenance are corrective, perfective, adaptive and preventive. Software maintenance is the most costly and the time consuming phase of software development life cycle.