Using the Cloud to Facilitate Global Software Development Challenges Sajid Ibrahim Hashmi1, Viktor Clerc2, Maryam Razavian2, Christina Manteli2, Damian Andrew Tamburri2, Patricia Lago2, Elisabetta Di Nitto3, and Ita Richardson1 Lero – the Irish Software Engineering Research Centre University of Limerick, Ireland 1 Department of Computer Science, Faculty of Sciences, VU University Amsterdam, the Netherlands 2 Department of Electronics and Information at Politecnico di Milano, Italy3 {Sajid.hashmi, ita.richardson}@lero.ie1 {v.clerc, m.razavian, c.manteli, d.a.tamburri, p.lago}@vu.nl 2
[email protected]3 Abstract— With the expansion of national markets beyond A. Context geographical limits, success of any business often depends on In the global environment, outsourcing software development using software for competitive advantage. Furthermore, as projects to low cost economies is becoming increasingly popular, technological boundaries are expanding, projects distributed especially as there is the expectation that companies who embark on across different geographical locations have become a norm for GSD strategies will gain and maintain economic advantage through the software solution providers. Nevertheless, when numerous technical and commercial factors [1][2]. This increase in implementing Global Software Development (GSD), GSD implementation is supported by the availability and accessibility organizations continue to face challenges in adhering to the of communication tools as they enhance the options to use a remotely development life cycle. The advent of the internet has supported located workforce [3]. The business models in low cost countries GSD by bringing new concepts and opportunities resulting in have provided capable and willing workers who undertake benefits such as scalability, flexibility, independence, reduced outsourced and offshore software development [4]. This in turn cost, resource pools, and usage tracking. It has also caused the provides cost reduction in software development projects [5]. emergence of new challenges in the way software is being However, outsourcing software development to organizations at delivered to stakeholders. Application software and data on the various outsourcing destinations is not an easy and straightforward cloud is accessed through services which follow SOA (Service task [8][9][10][11] and organizations very often face difficulties due Oriented Architecture) principles. In this paper, we present the to global distance and the involvement of the development teams challenges encountered in globally dispersed software projects. which are geographically distributed. Based on goals mutually shared between GSD and the cloud computing paradigm, we propose to exploit cloud computing B. Research Question characteristics and privileges both as a product and as a process GSD is software development incorporating teams spread across to improve GSD. the globe in different locations, countries, and even continents. We are motivated by the fact that conducting software projects in Keywords- Service Oriented Architecture (SOA), Global multiple geographical locations is likely to result in benefits such as Software Development (GSD), Challenges, SaaS (Software as a cost reduction and reduced time-to-market [14][19], access to a larger Service) skill pool, proximity to customer, and twenty-four hour development by following the sun [60]. But, at the same time, GSD brings challenges to distributed software development activities due to I. INTRODUCTION geographic, cultural, linguistic, and temporal distance between the project development teams. Advances in technology and communication channels has had a positive impact on business growth as the exchange of information In order to meet the different challenges posed by GSD, we has become more timely, accurate and available. Because of this, suggest making use of the cloud computing paradigm and illustrate business organizations are no longer reluctant to outsource software that it has potential to enhance the usefulness of GSD. We argue that development and to have development operations in multiple different types of geographic and cultural issues can be addressed by geographical locations. They strive to make use of customized making use of different cloud computing realizations such as PaaS business models to maximize their benefits. In addition, from the (Platform as a Service), IaaS (Infrastructure as a Service), and SaaS marketing perspective, the goals of globally sourced development (Software as a Service). Since data in the cloud is accessed through [10] include making use of international physical and material services [38], we study its characteristics in the light of Service- resources, reducing time to market, and taking advantage of Oriented Architecture (SOA). Furthermore, we argue that the cloud can facilitate GSD both as a process and as a product. The former one marketing business opportunities. could have implications for the GSD business model in which service In the remainder of this introduction section, we highlight the providers are organizations and services are parts of a GSD process, context of this research, the research question, the objective of the for example, requirements, design, coding, and testing. SOA as a research, and the research methodology. Also, we present a synopsis product is developed, run, and distributed globally. The idea is to of the cloud computing, challenges faced by GSD, and our motive for identify different types and domains of GSD issues and investigate using the cloud paradigm to support GSD. the potential of the cloud to address those. C. Objective of the Research we can say that it delivers a platform utilization environment as a This paper proposes the development of Global Software service. Instead of physically purchasing hardware and software Development (GSD) using the cloud computing paradigm, based on infrastructure, clients buy such resources as a fully outsourced our understanding of current GSD and SOA methods from literature, service. and our overall project aim is to propose the re-construction and In addition to the infrastructure, Platform as a Service (PasS) improvement of the GSD process. This is done through the use of occurs when a software platform is provided on which systems can cloud computing and SOA. We discuss how the GSD process can be be run. This includes the delivery of programming platforms and aligned with SOA, and how GSD products can be implemented using tools as a service. This kind of cloud computing provides a services. We have established that, for example, some web tools development environment and the infrastructure provider’s such as Wikis support GSD communication processes. However, we equipment can be used to develop programs which are delivered to question whether these can be streamlined and re-organized by end users through internet and servers. defining how exactly GSD can work better by making use of a service based environment. Software as a Service (SaaS) occurs when applications are delivered as services using IaaS and PaaS. This implementation of Initially, we identify problem areas in GSD and subsequently, the cloud focuses on separating the ownership and possession of propose the support of GSD development activities through services. software from its use [18]. It is based on the idea that software The emphasis is on facilitating collaboration activities among GSD functionality could be provided as set of distributed services that teams by structuring those activities. Our rationale is that we can could be configured and bound at delivery time, to avoid the current parallel the GSD situation with manufacturing supply-chain limitations with software use, deployment, and evolution [18]. Since management where systems used are composed of ready-to use cloud computing stimulates the provision of online services via the service-oriented systems. The reason services are widely adopted in World Wide Web, software can be hosted on web servers as services industry is because they can be integrated seamlessly. This has [18]. Thus, the advent of SaaS within the cloud computing paradigm resulted in benefits to industry such as increased return on investment has created new opportunities for organizations to communicate and and reduced information technology costs [5]. We argue that services coordinate among themselves. to support GSD activities could be developed in the form of service based systems and that what we need are heterogeneous services F. GSD Challenges which could support different development activities. Moreover, output from one service could be taken as input to the next, in cases, With the emergence of technologies in a world which has become where those services supported interrelated activities. In this article, increasingly globalized, the relationship between culture and terms like SOA (Service Oriented Architecture) and the cloud have management of remote work has become an unavoidable issue which been used interchangeably as different representations of the cloud needs to be addressed [15]. Because of distance among the software are being accessed using services. development teams, GSD encounters certain challenges in terms of collaboration [61], communication [62], coordination [63], culture [64], management [65], organizational [66], outsourcing [35][67], D. Research Methodology development process [68], development teams [16][69], and tools In order to conduct this research, our literature review studied [29][70]. characteristics of services (both SOA and the cloud). We also identified challenges faced by GSD. Following this step, we held a Global distance comprises of four elements: geographic, cultural, workshop, attended by all of the authors of this paper, each of whom linguistic, and temporal distance [57][58]. Geographic distance has research and/or industrial expertise in GSD and/or SOA. During occurs as the teams are dispersed across countries. Cultural distance occurs due to teams being made up of members from different this workshop, through interactive discussion and brainstorming, we cultures, and the additional expectation that each member will developed the concepts presented in this paper. To do this, we understand and support each other’s culture. When team members summarized the GSD challenges and requirements and investigated speak in different languages, there needs to one chosen language for the potential of SOA based cloud services [47] to address these. We work purposes, and as this is everyone’s first language, linguistic are embarking on further research to understand whether these indeed distance occurs. As teams are geographically dispersed, there is the can be of value to both the industrial and research communities. additional difficulty of temporal distance – members working across different time zones [49][50]. Each of these differences individually E. Cloud Computing causes problems within GSD teams, and the culmination of these differences into global distance can and do impede global software Cloud computing is an internet based computing paradigm in development projects [12][13]. Thus, the management of globally which shared resources like software, hardware, and information are outsourced software development has been accepted as a difficult and provided to the subscribers on demand [17][18][26]. NIST [55] complex task [14]. These four types of GSD challenges are addressed defines cloud computing as a model for enabling convenient and on using the SOA based cloud services (Table 1). demand network access to shared computing resources that can be managed and provided rapidly with minimal effort. The aim is to construct a low cost computing system by using certain entities G. Motive for Using the Cloud for Supporting GSD without compromising on computing capabilities. Depending on the One of the missions [59] of the cloud architecture is to provide type of shared resources, the cloud paradigm can have different services to customers by not only managing them but optimizing implementations like IaaS (Infrastructure as a Service), PaaS them by taking into consideration economies of scale. The cloud (Platform as a Service), and SaaS (Software as a Service), to dispense model is composed of three service models (IaaS, PaaS, and SaaS), computing capacity to end users. five essential characteristics, and four deployment models [59]. The cloud deployment models - Private, Community, Public, and Hybrid - Infrastructure as a Service (IaaS) includes the delivery of define the scope of the cloud solution. The cloud model is discussed hardware such as processors and storage as a service, e.g., Amazon in terms of creation and provision of services [20] which means that Elastic Cloud (EC2) and Simple Storage Service (S3). In other words TABLE I. GSD CHALLENGES POTENTIALLY FACILITATED BY THE USE OF SERVICES Collaboration Issues Negative Impact on Software Project Facilitating GSD Using Services (SOA/Cloud ) Challenges Distance Communication gaps Dynamic binding, runtime adaptation, and timely availability Geographic Time Project Delays of required services could help dealing with geographic Knowledge transfer Ambiguity on technical aspects issues. Tools Unequal quality levels across the Also, availability of SaaS could diminish installation software development sites overheads at each development location. Unequal distribution Increase in cost Service could maintain a fair distribution of work between the Cultural of work Poor skill management teams. Only a specific person will be responsible for the task Lack of Trust, Fear Reporting problems assigned to thus skill management would be easier too. Frequency of Loss in project quality Run time evolution of services can meet with the linguistic Linguistics communication Invisibility on project development issues. Also, isolation of each task and related information as a Knowledge transfer Ineffective project management service can ensure right level of knowledge transfer. Lack of Motivation Loss in project quality The cloud service models imply that the data resides on a Temporal Less visibility Poor management of configuration centralized location where inventory of services is maintained. Risk Chances of project artifact loss Services maintain a registry where all of them are stored. This attribute could be used to store and retrieve configurations. it supports services. Since SOA runs a mechanism for development coding, and testing. The characteristics and the architecture of the and management of distributed dynamic systems and it evolved from cloud model itself has the potential to fulfill the GSD task the distributed component based approach [21], we argue that it has requirements. For example, cloud deployment models allow certain potential to cater the challenges of GSD where a project is developed trusted partners (which could be GSD team members) to share across different geographical locations. Our thesis is that GSD resources among themselves. Service models may not only provide challenges can be overcome through Service Oriented Architecture access to collaboration and productivity tools but also allow network (SOA) support. This will contribute increased interoperability, access to computing resources, and the “use as you go” feature is diversification, and business and technology alignment. Moreover, likely to reduce the overall project costs across multiple development the vision behind this architectural paradigm is to set up common sites as computing resources and infrastructure is not required up- goals and objectives to improve the collective effectiveness of the front. enterprises participating in globally distributed projects. Since software processes are software too [22], we argue that the cloud has We investigate the impacts of the aforementioned collaboration potential to reinforce GSD as a process. Initially, we considered the challenges and suggest the likelihood of using the cloud to address use of standard procedures to meet the quality challenges posed by them. We expect to achieve efficiency in collaboration through using GSD. But, since organizations have to interact dynamically in the cloud in different implementations. The essence of using this global environments, these standard procedures cannot scale up to paradigm to facilitate GSD is that instead of acquiring and owning support dynamism (which is a main feature of SOA). Moreover, the the software and project data, GSD team members can access and ideology posed by both SOA and GSD is somehow similar [1, 23], subscribe to some of the software at a time (according to the need) in for example, coordination, transaction, context, execution the form of services. In addition, we want to take advantage of the monitoring, and infrastructure. In addition, SOA is one of the main SOA characteristics [43] like loose coupling, service composition and technical foundations of the cloud [51]. negotiation to facilitate a similar level of development practices across multiple sites. Moreover, the service provider and user are For GSD, the use of collaboration tools among teams is not new. important to the technical and economic changes made possible by Existing research has already proposed further work in this regard cloud computing. In our model, this concept of provider and [7][24][25]. We adopt the idea of SaaS for GSD to make use of consumer is similar to the SOA paradigm. properties of both cloud and SaaS, such as reusability, reliability, extendibility and inexpensiveness [27][28]. Teams with frequent II. GSD AS A SERVICE ON THE CLOUD communications among their members are likely to collaborate In this section, we describe how GSD as a service can facilitate better. Thus, this frequent communication is important to make full and improve how GSD is carried out. We discuss certain GSD use of GSD advantages, e.g. improved productivity, reduced time to challenges and provide a rationale as to how the cloud service models the market, and reduced cost. However, oral communication is prone can address them respectively. to confusion and misunderstanding. One way could be to minimize the need for communication but such strategy would emphasize on A. GSD Services Concept the involvement of more dedicated personnel from each development site [48] which could not be feasible either. At the same time it is Figure 1 illustrates the concept of using the cloud paradigm to important for the communication media to be formal, flexible, and support GSD. Service standards and policies are defined by evolvable to ensure the collaboration mechanisms work effectively. engineering and project management personnel. Different GSD development sites (represented as GSD1, GSD2,…,GSD5) are GSD teams also need to collaborate effectively and the attributes deployed on a private cloud which covers all geographically of the cloud paradigm, especially SaaS, can be used to facilitate distributed development teams. We propose that this concept can efficient collaboration between geographically distributed teams support the reduction of difficulties caused by global distance. For during software development phases such as requirements, design, example, the use of services itself reduces the distance factor to meet Figure 1. Using the cloud to support GSD product and process activities geographic and temporal challenges. As far as cultural and linguistic sides to facilitate the task. challenges are concerned, the provision of multilingual services based on the location of GSD teams could improve the problem. We One would argue that the translation task could be facilitated by a consider an example scenario to understand the GSD collaboration simple word parser, and the use of cloud and services seemed to be irrelevant, but the situation is not as simple as it appears to be. challenges that could be minimized using the cloud paradigm. Communications between the teams could involve some other Suppose that an organization in Ireland (GSD1) outsources a software artifacts such as design documents, code snippets, and legal and component development to a company in Germany (GSD3). financial negotiations. All of this could be made available on the As part of the project requirement, people in both countries have cloud in the form of services which could be accessed by the to communicate to exchange information on different development authorized team members. Also, cloud services can evolve with phases and tasks. The project manager from GSD1 sends on some changes in the associated business [18], for example, such a change important instructions regarding requirements and architecture of the might occur in the form of a financial or money transfer service after potential system. Not only should this information be conveyed to the both companies agree on terms and conditions. Using our proposed concerned team member but there should be some assurance that it system would result in the elimination of GSD3 overhead, i.e. storage has indeed reached them, without the risk of being lost or disclosed to of project artifacts and information, as everything would be stored on other GSD locations. But, the concerned team member is a novice in cloud infrastructure and would be accessible from there in the form of the language and also needs to have those instructions translated into services. Table 2 list down the characteristics [46][55] of the Cloud his local language. Thus, a translation service is required on both which can be potentially beneficial for GSD. TABLE II. SUPPORTING CHARACTERISTICS OF CLOUD COMPUTING Courtesy of this privilege, cloud providers can enhance their infrastructure to accommodate in case there is Virtualization growing demand for services. Usually, a combination of hardware and software are used on the provider side to meet with the scaling requirements. Costs in the cloud do not include server side infrastructure and equipment costs. Moreover, pay as you go model Reduced Cost ensures that subscribers are bound to pay for only those resources which they use. In short, the distribution costs of software are reduced. On-demand provision of application software provides scalability, which results in greater efficiency. Whereas Scalability cloud based application development platforms provide with high level of scalability thus making the developed application to coup with the fluctuation demands. Providers’ applications are run on a cloud infrastructure from where a consumer can access those. Similarly, Infrastructure consumer-modified information or application can be deployed on the same infrastructure as well. The privilege is that the consumer does not have to deal with the underlying infrastructure. The cloud paradigm can support various levels of performance requirements like service scaling, response time, Performance and availability of the application based on the needs of the consumers. In addition indirect performance measures may also be achieved by eliminating the overheads involved with installation procedures and reduction in unnecessary reduction among the applications running on the cloud. Multi Tenancy Public clouds are elastic in nature as their consumers are not limited. More importantly, consumers’ workloads are Support isolated to provide privacy. However, the number of consumers can be restricted by opting out a specific deployment model. A. GSD Challenges and Requirements cloud paradigm is to facilitate a pool of shared hardware and software During our workshop, we identified GSD challenges and resources. requirements which could be, in our view, solved through using cloudF Facilitating global software development activities as a process in architecture. the form of services, can overcome many software limitations involving software evolution, reuse, and deployment. Such a model is 1) Coordination likely to open not only new opportunities for the business but also the Coordination among distributed teams is important to GSD but way software is being developed, i.e. services become part of GSD geographic distance negatively affects the ability to collaborate [23]. processes being provided by the outsourcing organizations. For building complex systems, coordination requires interaction over sequences of operations. However, often, due to collaboration within different time zones, employees have less time to coordinate their D. Global Project Optimization work. In GSD, it is important to share the information in terms of work performed by distributed teams. Communication and awareness As a product, cloud services ensure interactions among different capabilities should be provided by integrating this information not activities. For example, interaction between the service consumer and only into a collaborative environment [1], but also to maintain a rich provider on finding and binding of services is independent of the “project memory” [34]. geographical distance. SOA puts an emphasis on adding transactional guarantees to facilitate the interaction in the coordination framework Provision of this information exchange on software development [31]. For example, standards have been proposed by IBM [32][33] activities as a process is likely to reduce the software installation and suggested by Sun [34]. costs across different development sites. In addition, it can make collaboration more instant and flexible because of the customization Since cloud computing is the key service delivery platform in the and scalability attributes of the cloud. field of service computing [44], as a process, it could allow resource sharing not only for infrastructure and application resources, but also SOA not only manages service execution and output information, for software resources and business processes [45][46]. These but also keep track of the new information without any changes to the advantages are likely to support different disciplines, for example, underlying infrastructure [23]. This unique feature can ensure team Infrastructure as a Service (IaaS) could help provide different GSD management and coordination by means of its use as a product, by teams with resources such as computing power or storage scaling on to the existing project information. provisioning to store project related data. Software resources may consist of middleware and development resources like application E. Optimizing Globally Distributed Software Development systems, database servers, and operating systems. The advantage of It is true that geographic distance affects the ability to collaborate using fist two types of resources as a service is that they are never [1]. Moreover, it has been reported that communication and wasted after the project is over - instead, they can be unsubscribed. collaboration declines as the distance between the two working Application resources could assist in providing SaaS with necessary location increases [28]. As a process, cloud based collaboration interfaces that could facilitate collaboration and sharing of among GSD teams is likely to diminish the deficiency caused by information among the teams. distance as services are free from geographical boundaries. Yet another type of resource in the cloud could be business process [45], B. Support of Technical Development which may facilitate the optimization of the overall technical software A variety of special purpose services can be used for process development. related software development activities e.g. requirements, design, and testing. Services which support different process activities, can be As a product, it can serve as an intermediary to facilitate users to combined together to facilitate the whole process. As shown in Figure access and communicate with the cloud. The services involved in a 2, supporting development process activities in the form of services system can change with the change in the associated business in terms can help alleviate geographic and distance challenges. of requirements, and can perform this change dynamically. The reason for change in GSD could be the availability of yet another As a product, shifting the provision model from Software as an programming task or a need to collaborate on a task which is already Application to SaaS removes the dependencies and challenges in underway. terms of architecture and task dependencies that traditional software development and reuse models impose. Moreover, it can reduce cost F. Eliminating the Strategic Issues by facilitating reuse of services which provide similar operability for In GSD, ownership is often lacking [1]. Service ownership is a software application development. Hence the development is reduced concept which allows the service users to focus on their core on building similar business applications as the only challenge which activities; it also helps the service provider with an opportunity to take remains is the identification of suitable services which can serve the advantage of economies of scale [56]. As a product, well defined purpose required. ownership exists for each service, and GSD users benefitting from such services can enjoy this privilege. This ensures that services are C. Geographical Distance used in a way to give the most to a business. Physical distance removes the opportunity for face to face communication. As a product, the Platform as a Service As a process, SOA addresses ownership by collocating service representation can provide a development platform with set of provisioning by service development. The wrapping of a GSD task services to assist application development and hosting on the cloud. It into an independent service can promote ownership, as it can be used does not require any kind of software downloads and installations [2], exclusively. In this case, the outsourcing company (the provider) and because of its characteristics, has the capacity to support could be the one to convey the project requirements or architecture geographically distributed teams. Moreover, the philosophy of the knowledge to a specific GSD team or to a single member without notifying others. Thus, it can incorporate privacy by increasing the feeling of ownership. components being developed across multiple locations. As a product, this task can be facilitated by service registries which serve as G. Enhancing Communication Among Teams databases for services. Potential users can find and bind any service using the service description provided with these registries. Or, The structure of multi-site software development mimics the team alternatively, since services are a black box, their use is likely to structure [37]. The main distinctive feature of the cloud is that it eliminate the need for centralized configuration management within allows rapid elasticity, making it straightforward for the service their scope. provider to dimension the resources necessary to support a service dynamically depending on the service demands [39]. Thus, Cooperation and coordination is required to obtain trust between investigating the potential interactions among the stakeholders would two or more parties [52]. Lack of trust is always likely to reduce the enable getting insight into the service creation process for team cohesion. Teams with higher trust are coordinate better to collaboration among GSD teams. These interactions are likely to be achieve better performance [53] which could make management an among the outsourcing organizations and the teams jointly working easier task. A goal of cloud computing is that its users must be able to on the same project. access its different implementations at any time [54]. As a product, appropriate service definitions (including their descriptions) may act as proxies for communication and hence may K. Technical Issues reduce the need for cross site communication. This privilege could be In GSD, a modular approach for software development has been useful when teams from different time zones find it difficult to suggested [1], but dependencies are likely to exist among components collaborate. On a technical level, the SOA paradigm provides an in the running version of the software. This nature of such a project appropriate mechanism for cross platform data exchange and sharing would require evolvable software which could cope with the by message passing, service search and collaboration [30]. In challenge of component and functional dependencies. As a product, addition, the SOA and the XML-described data, information and services are loosely coupled and independent in nature, with knowledge can combine the different loosely coupled subsystems. minimum dependencies among them. This characteristic can not only minimize the task dependencies but ultimately eliminate the risk factor because, in case of a service failure, the failed component can H. Managing Project Knowledge Transfer be replaced with another one at run time. This dynamic replacement is The transfer of requirements and architecture knowledge across one of the distinguishing features of services. development sites is an issue in GSD. Services are likely to wrap this knowledge using the correct abstraction level. Using services as a Testing software is usually the most costly phase in software product diminishes the need for sharing knowledge as the constituent development and it can be responsible for over 50 percent of services have sufficient description about themselves, and because development costs [41]. Therefore, this phase often becomes this knowledge is developed locally. Two knowledge transfer issues responsible for the ultimate profitability of the product [42]. Carrying in GSD which exist are requirements and architectural knowledge. out testing activities correctly is important as the quality assurance, With SOA, a sufficient description and transfer of the requirements financial incentives, and customer satisfaction of the end product knowledge diminishes the need for transfer of other forms of often depend on the testing activity [40]. Making use of standard knowledge. Moreover, coordination aspects are hardly needed in procedures to meet the quality challenges posed by GSD is important, services as they are isolated. but since organizations have to interact dynamically in global environment, these standard procedures often cannot scale up to In terms of as a process, isolating any task as a service helps to support dynamism. On the other hand, dynamism is supported by identify right abstraction level for the transfer of such information SOA by means of run time evolution and on demand provision. within the task as a service. This form of service provision could take Facilitating collaboration on testing in the form of the services as a care of how requirements should be provided, what the outcome will process could ensure higher quality levels. be, and what should a GSD team member expect from others. Hence it can help managing the knowledge of a distributed project. In normal circumstances, different software tools [29][70] are used to facilitate not only GSD development but also collaboration among the teams. Unavailability of tools at the right time or version I. Execution Monitoring misalignment can cause delays in global software projects. Use of In GSD, the potential order in which components interact should collaboration tools as a service can reduce the overhead of tool dictate the decision on the interaction among the corresponding teams installation. Using the SOA paradigm, tools, data, and workspace [1]. Moreover the use of Application Programming Interfaces (APIs) could be stored and accessed from the cloud, thus eliminating the promotes isolation and reduced information sharing [36]. A crucial need for tool installation. The purpose is not only to cater with the aspect is responding to the constant changes in the business version issue, but also provide GSD teams with all tools required for requirements. As a product, SOA can ensure the correct order of the project. service execution by a central scheduler, which controls the execution of the service and consequently the right order of communication III. DISCUSSION between the project partners in GSD. As a process, these services may In order to propose the use of cloud for GSD, it is important to share their execution context among each other to guarantee the have a comprehensive understanding of the GSD processes. We do correct execution order. To support the collaboration activities among not expect that all will be served by this technological paradigm, but geographically distributed teams, the concept of execution monitoring we do believe, if designed correctly, GSD can be successfully can be used as the basis for designing the collaboration process. supported by services. For example, in a context where different GSD locations are inter-connected and are using the cloud, all of them may J. Eliminating Project and Process Management Issues not have the same level functional needs. Determining different level of needs for service provision could be one of the major concerns In GSD, a centralized configuration management system should among different GSD locations. be made available to manage project artifacts produced out of The concept of SaaS itself continues to be subject to evolution and [9] D. W. Karolak, “Global software development: managing virtual teams revision. In addition, the availability and subscription of these services and environments.” Los Alamitos, CA, USA, IEEE Computer Society because of different types of dependency relationships among cloud Press, 1999. users (tenants) could be considered as a challenge for using the cloud [10] J. D. Herbsleb and D. Moitra, "Global software development." IEEE to support GSD. Moreover, in terms of project knowledge transfer Software 18(2), 2001, pp. 16-20. across global software development sites, the right level of abstraction [11] V. Clerc, P. Lago, and H. V. Vliet, “The architect’s mindset,” 3rd of the useful codification as well as the reduction in tacit knowledge International Conference on the Quality of Software Architectures, will remain an issue. Since the main usage in services comes in Volume 4880 of Lecture Notes in Computer Science, 2007, pp. 231-249, connecting pieces of information, sharing services across different Springer Berlin / Heidelberg. domains and enterprises is also likely to result in further security [12] E. Carmel, “Building your information systems from the other side of the issues. world: how Infosys manages time differences,” Management Information Systems Quarterly -MIS Quarterly Executive, vol. 5, no. 1, Mar 2006, pp. 43-53. IV. CONCLUSIONS [13] V. Casey, S. Deshpande, and I. Richardson, “Outsourcing and offshoring We have proposed using the cloud paradigm to meet with different software development: the remote developers’ perspective,” Global challenges posed by Global Software Development (GSD). We are Sourcing Workshop, Val d’Isere, France March 2008. suggesting that this will result in GSD benefitting from the cloud’s [14] F. Lanubile, D. Damian, and H. L. Oppenheimer, "Global software infrastructure, platform, and provision of software as a service features. development: technical, organizational, and social challenges," SIGSOFT Information and data on the cloud is transmitted and shared by means Software Engineering Notes 28(6): 1 - 4. of web services which work on underlying Service Oriented [15] R. T. Watson, T. H. Ho, and K. S. Raman, “Culture: a fourth dimension Architecture (SOA) principle. of group support systems,” Communications of the ACM, 37-10, 1994, pp. 44-55. We argue that the cloud paradigm has the potential to turn over a [16] C. M. Beise, “IT project management and virtual teams,” in Proceedings few more unturned stones of GSD issues which are a significant hurdle of the 2004 SIGMIS Conference on Computer Personnel Research: for the development of successful projects in the GSD situation. But, Careers, Culture, and Ethics in A Networked Environment (Tucson, AZ, we are planning to develop our ideas further with a view to filling the USA, April 22 - 24, 2004). SIGMIS CPR '04. ACM, New York, NY, pp. gap between technical proficiency and meeting the needs of 129-133. developers. So, like SOA, we cannot expect the cloud paradigm to [17] J. Yang and Z. Chen, "Cloud computing research and security issues," address some psychological and social issues like trust but we can International Conference on Computational Intelligence and Software reduce their negative impact through the use of this model. Engineering (CiSE), 2010, pp. 1-3. [18] M. Turner, D. Budgen, and P. Brereton, "Turning software into a service," Computer, vol.36, no.10, Oct. 2003, pp. 38- 44. ACKNOWLEDGMENT [19] S.-o Setamanit, W. Wakeland, and D. Raffo, "Improving global software The research leading to these results has received funding from development project performance using simulation," Portland the European Community’s Seventh Framework Programme International Center for Management of Engineering and Technology, FP7/2007-2013 under grant agreement 215483 (S-Cube). It was 5-9 August, 2007, pp. 2458-2466. supported, in part, by Science Foundation Ireland grant 10/CE/I1855 [20] K. Zhang, X. Zhang, W. Sun, H. Liang, Y. Huang, L. Zeng, and X. Liu, to Lero – the Irish Software Engineering Research Centre "A policy-driven approach for software-as-services customization," in (www.lero.ie), and a Higher Education Authority grant PRTLI 4 to Proceedings of the 4th IEEE International Conference on Enterprise Computing, E-Commerce, and E-Services, CEC/EEE 2007, pp.123-130. the Lero Graduate School in Software Engineering. [21] A. Bertolino and A. Polini, “SOA test governance: enabling service REFERENCES integration across organization and technology borders”, IEEE International Conference on Software Testing Verification and Validation Workshops. [1] J. D. Herbsleb, “Global software engineering: the future of socio- [22] L. Osterweil, “Software processes are software too,” in Proceedings of technical coordination,” in Proceedings of the Future of Software the 9th International Conference on Software Engineering, IEEE Engineering (FOSE’07), 2007, pp. 188-198. Computer Society Press Los Alamtos, CA, USA. [2] R.E. Grinter, J.D. Herbsleb, and D.E. Perry, “The geography of [23] S. Dustdar and W. Schreiner, “A survey on web services composition”, coordination: dealing with distance in R&D work,” in Proceedings of the International Journal of Web and Grid Services, vol. 1, no. 1, 2005, pp. International ACM SIGGROUP Conference on Supporting Group Work 1-30. (GROUP ’99), ACM Press, New York, 1999, pp. 306–315. [24] L. Cheng, C. DeSouza, S. Hupfer, J. Patterson, and S. Ross, “Building [3] J. A. O’Brien, “Management information systems: managing information cllaboration into IDEs,” ACM Queue, vol.1, no.9, 2004, pp. 40-50. technology in the business enterprise,” Mc Graw Hill Irwin, 2002. [25] A. Sarma, Z. Noroozi, and A. V. D. Hoek, “Palantír: raising [4] S. S. Toaff, “Don’t play with “Mouths of Fire,” and other lessons of awareness among configuration management workspaces,” in global software development.” Cutter IT Journal 15(11), 2002, pp. 23- Proceedings of the 25th International Conference on Software 28. Engineering, 2003, pp. 444-454. [5] E. Carmel and P. Tjia, “Offshoring information technology: sourcing and [26] S. Zhang; S. Zhang, X. Chen, and X. Huo, "Cloud computing research outsourcing to a global workforce.” Cambridge, UK, Cambridge and development trend," in Proceedings of the 2nd International University Press, 2005. Conference on Future Networks, 2010, pp. 93-97. [6] A. J. Espinosa and E. Carmel, “The impact of time separation on [27] J. Yang and Z. Chen, "Cloud computing research and security issues," in coordination in global software teams: a conceptual foundation” Proceedings of the International Conference on Computational Software Process Improvement and Practice, 8(4), 2003, pp. 249 –266. Intelligence and Software Engineering (CiSE), 2010, pp. 1-3. [7] A. Sarma and V. D. Hoek, “Towards awareness in the large,” in [28] T.J. Allen, “Managing the flow of technology,” Cambridge, MA: MIT Proceedings of the International Conference on Global Software Press, 1977. Engineering, 2006, pp. 127-31. [29] R. Martignoni, “Global sourcing of software development – a review of [8] E. Carmel, “global software teams: collaboration across borders and time tools and services”, in Proceedings of the 4th IEEE International zones”. Saddle River, NJ, Prentice Hall, 1999. Conference on Global Software Engineering, 2009, pp. 303-308. [30] M. P. Papazoglou, “Web Services and Business Transactions”, World [50] P. Hartman, "ESB enablement of an international corporate acquisition, Wide Web, vol. 6, no. 1, March 2003, pp. 49-91. an experience report," in Proceedings of the 3rd IEEE International [31] F. Cabrera, G. Copeland, B. Cox, T. Freund, J. Klein, T. Storey, and S. Conference on Global Software Engineering, 2008, pp. 200-204. Thatte, “Web services transaction specifications,” available online, last [51] M. D. Dikaiakos, G. Pallis, D. Katsaros, P. Mehra, and A. Vakali, “Cloud accessed 16 August, 2005: http://www- computing: distributed internet computing for IT and scientific research,” 106.ibm.com/developerworks/webservices/library/ws-transpec/ Internet Computing, vol. 13, no. 5, pp. 10-13. [32] F. Cabrera, et al., “Web services coordination (WS-coordination),” [52] E. E. Jennings, “Routes to the executive sites,” New York: Mcgraw-Hill, Version 1.0, available online, last accessed August 2005: 1971. ftp://www6.software.ibm.com/software/developer/library/ws- [53] S. L. Jarvenpaa and D. E. Leidner, “Communication and trust in global coordination.pdf teams,” Journal of Computer Mediated Communication, vol. 10, no. 6, [33] D. Bunting, M.C.O. Hurley, M. Little, J. Mischkinsky, E. Newcomer, J. 1999, pp. 791-815. Webber, and K. Swenson, “Web services transaction management” (WS- [54] M. Zhou, R. Zhang, W. Xie, W. Qian, and A. Zhou, “Security and TXM), Ver1.0. privacy in cloud computing: a survey,” in Proceedings of the 6th http://developers.sun.com/techtopics/webservices/wscaf/wstxm.pdf International Conference on Semantics, Knowledge, and Grids, 2010, [34] D. Cubranic and G. Murphy, “Hipikat: recommending pertinent software pp. 105-112. development artifacts,” in Proceedings of the 25th International [55] L. Badger, T. Grance, R. P.-Comer, J. Voas, “Draft cloud computing Conference on Software Engineering, 2003, pp. 408-418. synopsis and recommendations,” National Institute of Standards and [35] M. Jensen, S. Menon, L.E. Mangset, and V. Dalberg, “Managing Technology, Special Publication 800-146, May 2011. offshore outsourcing of knowledge intensive projects – A people centric [56] http://itsm.certification.info/ownership.html approach,” in Proceedings of the 2nd International Conference on Global Software Engineering, 2007, pp. 186-196. [57] A. Begel, N. Nagappan, C. Poile, L. and Layman, "Coordination in large- scale software teams," ICSE Workshop on Cooperative and Human [36] C. R. B. D. Souza, D. Redmiles, L. T. Cheng, D. Millen, and J. Patterson, Aspects on Software Engineering, 2009, CHASE '09, pp. 1-7. “Sometimes you need to see through walls: a field study of application programming interfaces,” in Proceedings of the 2004 ACM conference [58] A. Begel, N. Nagappan, "Global software development: who does it?," in on Computer supported cooperative work, pp. 63-71. Proceedings of the 3rd IEEE International Conference on Global Software Engineering, 2008. pp.195-199. [37] J. D. Herbsleb and R. E. Grinter, “Splitting the organization and integrating the code: Conway’s law revisted,” in Proceedings of the 21st [59] M. Behrendt, et al., “Introduction and architecture overview: IBM cloud International Conference on Software Engineering, 1999, pp. 85-95. computing reference architecture 2.0,” Draft Version V1.0, 2011. [60] T. Nguyen, T. Wolf, and D. Damian, "Global software development and [38] L. W. Pires, L. F. Wombacher, A. V. Sinderen, and M. J. Chihung Chi, delay: does distance still matter?," in Proceedings of the 3rd IEEE "Stakeholder interactions to support service creation in cloud International Conference on Global Software Engineering, 2008, pp. 45- computing," in Proceedings of the 14th IEEE International Enterprise 54. Distributed Object Computing Conference Workshops (EDOCW), 2010, pp. 173-176. [61] P. Mohapatra, P. Bjorndal, and K. Smiley, “Causal analysis of factors [39] Armbrust et. al., “Above the clouds: a Berkley view of cloud governing collaboration in global software development teams,” in computing,” EECS Department, University of California, Berkeley Proceedings of the 5th IEEE International Conference on Global Technical Report No. UCB/EECS-2009-28 Software Engineering, 2010, pp. 128 – 132. February 10, 2009. [62] T. Niinimaki, A. Piri, and C. Lassenius, “Factors affecting audio and [40] E. Kit, “Software testing in the real world: improving the process”, text-based communication media choice in global software development Addison-Wesley, Reading, MA, USA, 1995. projects”, in Proceedings of the 4th IEEE International Conference on [41] H. Do and G. Rothermel, “An empirical study of regression testing Global Software Engineering, 2009, pp. 153-162. techniques incorporating context and lifetime factors and improved cost- [63] M. Cataldo, M. Bass, J. D. Herbsleb, and L. Bass, “Factors affecting benefit models,” in Proceedings of 14th ACM SIGSOFT International audio and text-based communication media choice in global software Symposium on Foundations of Software Engineering, 2006, pp. 141-151. development projects”, in Proceedings of the 4th IEEE International [42] J. Kasurinen, “Elaborating software test processes and strategies,” in Conference on Global Software Engineering, 2009, pp. 153-162. Proceedings of the 3rd International Conference on Software Testing, [64] V. Casey, “Leveraging or exploiting cultural difference?”, in Proceedings Verification, and Validation, 2010, pp. 355-358. of the 4th IEEE International Conference on Global Software [43] L. J. Zhang, “EIC editorial: introduction to the body of knowledge areas Engineering, 2009, pp. 8 - 17 . of services computing,” IEEE Transactions on Service Computing, vol. [65] V. Casey and I. Richardson, “Project management within virtual 1, no. 2, April-June, 2008, pp. 62-74. software teams”, in Proceedings of the International Conference on [44] L. J. Zhang, J. Zhang, and H. Cai, “Services computing, core enabling Global Software Engineering, 2006, pp. 33-42. technology of the modern services industry,” published by Springer and [66] D. Damian, F. Lanubile, and H. L. Oppenheimer, “Addressing the Tsinghua University Press, 2007. challenges of software industry globalization- the workshop on global [45] L. J. Zhang and Q. Zhou, "CCOA: cloud computing open architecture," software development,” in Proceedings of the 25th International in Proceedings of the 7th IEEE International Conference on Web Conference on Software Engineering, 2003, pp. 793-794. Services, 2009, pp. 607-616. [67] R. Heeks, S. Krishna, B. Nicholsen, and S. Sahay,” Synching or sinking- [46] R. Guha, and D. Al-Dabass, "Impact of Web 2.0 and cloud computing global software outsourcing relationships,” IEEE Software, platform on Software Engineering," in Proceedings of the International vol. 18, Issue. 2 , 2001, pp. 54 - 60. Symposium on Electronic System Design (ISED), 2010, pp.213-218. [68] H. Klein, A. Rausch, and E. Fischer, “Process-based collaboration in [47] J. Schaper, “Cloud Services, ” in Proceedings of the 4th IEEE global software engineering,” in Proceedings of the 35th Euromicro International Conference on Digital Ecosystems and Technologies, 2010, Conference on Software Engineering and Advanced Applications, 2009, pp. 91. pp. 263 - 266. [48] A. Elfatatry and P. Layzell, "Software as a service: a negotiation [69] H. K. Edwards and V. Sridhar, “Analysis of the efectiveness of global perspective," in proceedings of the 26 th International Conference on virtual teams in software engineering projects,” in Proceedings of the 36th Computer Software and Applications Conference, COMPSAC 2002. pp. Annual Hawaii International Conference on System Sciences, 2003. 501-506. [70] J. Portillo-Rodriguez, A. Vizcaino, C. Ebert, and M. Piattini “Tools to [49] A. Avritzer, D. Paulish, Y. Cai, and K. Sethi, "Coordination implications support global software development processes: a survey”, in of software architecture in a global software development project," Proceedings of the 5th IEEE International Conference on Global Software Journal of Systems and Software 83(10), pp. 1881-1895. Engineering, 2010, pp. 13 - 22.