The Context of Global Software Development: Challenges, Best Practices and Benefits

: Global Software Development (GSD) environment is based on a contractual relationship between client and vendor organizations in which a client outsources all or some part of its software development activities to a vendor. The vendor in return provides the agreed services in lieu of certain amount of remuneration. The main reasons to select the GSD technique include reduced cost, faster development and access to skilled manpower available across the world. Though GSD is emerging as an effective technique, but it suffers from many challenges like poor communication, lack of trust and coordination. These challenges pose serious risk to the smooth execution of the GSD projects. In the past decade, GSD has become an area of active research and a number of the researchers have worked on different aspects of it. In this paper, we present a critical review of the research studies conducted on GSD to highlight the challenges, best practices and benefits of GSD. Our findings reveal that much of the research in this area has been focused on addressing issues faced by client organizations, however, vendor side in the GSD relationship is much ignored due to which this field of study is still immature; hence, further research work is required to be undertaken to address the issues faced by the vendor organizations.


Introduction and Background
Global software development (GSD), distributed software development and outsourcing are mainly the different names for a unique software development technique through which the clients get services from an outside organization known as vendors. GSD relates to software development undertaken at geographically separated locations across national and international boundaries in a coordinated fashion involving real time (i.e., synchronous) and asynchronous interaction. Such type of software development scenarios involve communication for information exchange, coordination of groups and their members, planned activities and artifacts so that the overall efforts contribute towards achieving the overall objectives of the project. GSD typically focuses on effective control of groups by adhering to goals and policies and on specific artifacts, particularly the quality, visibility and management issues related to a project (Mohagheghi, 2004). Forty percent of the Fortune 500 companies use GSD and 185 of them outsource their software related work to India (NASSCOM, 2000). IBM, British Airways, Alcatel, British Telecom and General Electric have moved parts of their software development to countries like Ireland and India. Mohagheghi (2004) report that eighty percent of the Irish software industry's output is exported.
GSD technique is of particular interest to the clients due to lower labour costs, faster delivery and access to skilled human resources across the world. Despite the supplementary benefits, GSD suffers from the following limitations: Teams involved in the software development usually have different cultural backgrounds; Face to face meetings are difficult due to remote locations of teams; Time zones and working hours of the clients and vendors do not match; Language barriers between the client and the vendor could lead to communication and coordination issues; Trust between both the parties always remains a prime concern.
This paper is organized into five sections. In the current section, a brief introduction of the GSD along with its merits and grey areas is described to emphasize the context of our study. In the second section, we discuss methodology and goal of this study. In the next section, we discuss the overall context of the GSD. Afterwards, we analyze the literature about challenges, best practices and benefits of GSD. Finally, we describe prospective future dimension of the study and conclude our work in the last section.

Methodology
Though significant work has been carried out on different aspects and factors of GSD, but this study observes that there is a lack of literature relating to the overall context of GSD like benefits, challenges and best practices. To address this concern, we have designed our study to highlight these dynamic in order to provide a complete understanding of the GSD context. For this purpose, we have analyzed papers, articles and case studies on GSD that are digitally available at different sources like ACM, IEEE Explore, Science Direct, SpringerLink, Google Scholar and open access journals. The selection of papers was mainly based on the relation and appropriateness to our three main research questions, which also serve as the core goals of our study. In this study, we have quested to seek answer for the following research questions (Fig. 1). Q 1: What are the challenges and issues in GSD? Q 2: What are the best practices for GSD? Q 3: What are the benefits of GSD?

Fig. 1: Study Goals to realize Context of GSD
Context of GSD: GSD is basically an outsourcing technique; some researchers call it Distributed Software Development in which software engineers working at the remote locations with different time zones provide their services to the clients. The development teams in the GSD environment come from diverse ethnic, cultural and religious backgrounds. The main reason for choosing this technique by the clients is that it is cost effective as outsourcing organizations choose the country in which the labor cost is low. Despite the fact that GSD is widely used now a days but the project manager face many challenges while planning and managing GSD projects. Communication, coordination and trust among stakeholders and the vendors, cost and time estimation are key challenges in GSD environment. Khan et al (2010) categorized GSD outsourcing into three subtypes based on geographical locations: Onshring also called domestic outsourcing in which both clients and vendors are from the same country but are based at different locations; nearshoring in which the teams are from neighboring countries; and offshoring/farshoring where the teams are from the far regions and oversees countries. Ramingwong & Ramingwong (2009) have discussed advantages and disadvantages of outsourcing in terms of cost, unemployment, quality, skills, 24/7 working operations, culture and language; and this study is much enlightening to understand the advantages and disadvantages of GSD in the context of global scenario (Fig.2). Khan et al. (2010) identify various barriers that could have negative impacts on the outsourcing clients in the selection of offshore software development vendors. The study identifies sixteen such factors including communication gap, country instability, delays in delivery, hidden costs, incompatibility with client, lack of project management practices, lack of protection for intellectual property rights, lack of technical capability, language and cultural barriers, lack of control over projects, poor quality of service and system/process, opportunistic behavior, poor contract management, poor infrastructure, poor relationship management and strategic inflexibility.

Fig. 2: Benefits and Risks of GSD (Ramingwong & Ramingwong, 2009)
GSD Challenges: Since GSD suffers from many challenges, therefore, this study focuses on precisely ascertaining these challenges with ultimate aim to discover practical solutions to these problems. Tufekci et al. (2010) have identified some key challenges of GSD in conjunction with their root causes (Fig. 3). The establishment and maintenance of trust is a major issue in GSD (Nguyen et al., 2006). For establishing trust, most of the companies recommend to bring about cultural understanding, creditability, capabilities, pilot project performance, personal visits and investments in the field of GSD. Studies like (Nguyen et al., 2006) suggest that cultural understanding, capabilities, contract conformance, quality, timely delivery, development processes, managing expectations, personal relationships and performance are the key factors for maintenance of trust in communication. Panjer et al. (2008) state that cooperation and coordination is a key concern in globally distributed software development environment. In this context, it is recommended to use Version Control System (VCS) and Modification Request (MR) database to achieve better results. However, Deshpande et al. (2010) argued that cultural diversity creates many problems, but if project managers have understanding of national, international and organizational culture then they can benefit from it. Sangwan & Ros (2008) stress that the communication, coordination and control mechanisms are major issues in GSD. Therefore, the role of an architect is very important to share the common context of the system for all the involved teams in GSD. Korkala et al. (2010) applied traditional and agile methods in GSD; and findings of the study show that agile methods provide better results in GSD. Hazzan & Dubinsky (2006) claim that diversity in distributed development system can be enhanced by employing agile software development methodology and stress that the role chart is a useful technique for management diversity. The study discusses three diversity issues namely gender diversity, management diversity and opinion diversity from Agile software development perspective. Akbar et al. (2011) summarize agile methods in GSD context and stress that agile techniques have proven their worth in software industry and predict that agile practices will gain more response of the researchers and practitioners in the coming days.

GSD Best Practices:
Jalote & Gupta (2011) assert that the use of global pairs can reduce the development time provided that the global pairs are created by pursuing follow the sun phenomenon. The assertion is mainly made based on work nature of the developer and tester. The global pairs can reduce software development time especially when developers and testers are from different time zones. However, such a technique is applicable in the development and testing phases while other phases of overall software development activities also need to be examined in the context of global pairs. Setamanit et al. (2006) propose a simulation model to support process improvement, project planning and to assists the project managers. By using this tool, the project manager can monitor the project from different dimensions and parameters. It also facilitates the project managers in taking critical decisions e.g., relating different sites to different tasks and evaluating their suitability. The model can easily identify both positive and negative aspects of each site as well as asserting the specialty of each site. Carmel & Abbott. (2006) perform a systematic literature review to find out to what extent the distances matter in the GSD efforts by providing detailed information about near-shoring concept. The study also focuses on the advantages of near shoring over far shoring as the former technique is more likely to minimize the challenges of GSD .
Benefits of GSD: Many companies have commenced practicing global software engineering (GSE) practices to benefit from cheaper, faster and better development of software systems, products and services (Smite et al. 2010). Ramingwong & Ramingwong (2009) discussed some benefits of GSD, which are low labor cost, increasing needs of global talents, infinite pool of workforce, round the clock services, possibility of satisfactory and quality products, broader perspectives and opportunities and encouraging localization. Conchuir et al. (2009) used a survey based approach to identify the benefits of GSD. The study highlights six main influencing benefits of GSD:-(i) reduced development cost; (ii) time zone effectiveness; (iii) cross site modularization of work; (iv) access to large skilled labor pool; (v) innovation and shared best practices; and (vi) closer proximity to market and customer.

Prospective Future Dimension:
The research conducted in the area of GSD has mostly focused the issues related to the challenges faced by the client organizations, however the vendor side has ordinarily been overlooked. In view of this, we plan to conduct a survey and collect data from industry practitioners that what kind of problems they face while working on GSD projects and we intend to propose a framework that duly provides the solution set to account for the issues faced by GSD vendors.

Conclusion
GSD is emerging as the most widely used technique in software industry. This study looked into the key challenges, best practices and benefits of GSD as many of the challenges still need further investigation in order to make it more viable and practical approach. The sole reason for choosing this technique is its competitive advantages like cost effectiveness, round the clock services and access to skilled labor pool. Despite its numerous benefits, the project managers as well as the distributed teams dealing the GSD projects face many challenges in planning, managing and execution of such types of projects. The major challenges include communication, coordination, control and trust with the key stakeholders. Our study discovered that the root causes of these challenges are culture, language and time zone diversity. To overcome these challenges and make GSD more efficient and effective, researchers have proposed some tactical approaches and best practices and these issues have been amply accounted for in this study to highlight the need for further research in this area. Over the period, researchers have proposed and developed different tools, techniques and frameworks for GSD and the critical review of this study discovered that in this context, agile methods have much attention of the practitioners and researchers. During the course of our study, we observed that a lot of work has been carried out on the issues and challenges of client organizations but vendor side still remains a grey area.