Using the cloud to facilitate global software development challenges
Upcoming SlideShare
Loading in...5
×
 

Using the cloud to facilitate global software development challenges

on

  • 1,111 views

 

Statistics

Views

Total Views
1,111
Views on SlideShare
1,111
Embed Views
0

Actions

Likes
0
Downloads
17
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Using the cloud to facilitate global software development challenges Using the cloud to facilitate global software development challenges Document Transcript

    • 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 dinitto@elet.polimi.it 3Abstract— With the expansion of national markets beyond A. Contextgeographical limits, success of any business often depends on In the global environment, outsourcing software developmentusing 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 onacross different geographical locations have become a norm for GSD strategies will gain and maintain economic advantage throughthe software solution providers. Nevertheless, when numerous technical and commercial factors [1][2]. This increase inimplementing Global Software Development (GSD), GSD implementation is supported by the availability and accessibilityorganizations continue to face challenges in adhering to the of communication tools as they enhance the options to use a remotelydevelopment life cycle. The advent of the internet has supported located workforce [3]. The business models in low cost countriesGSD by bringing new concepts and opportunities resulting in have provided capable and willing workers who undertakebenefits such as scalability, flexibility, independence, reduced outsourced and offshore software development [4]. This in turncost, 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 atdelivered to stakeholders. Application software and data on the various outsourcing destinations is not an easy and straightforwardcloud is accessed through services which follow SOA (Service task [8][9][10][11] and organizations very often face difficulties dueOriented Architecture) principles. In this paper, we present the to global distance and the involvement of the development teamschallenges encountered in globally dispersed software projects. which are geographically distributed.Based on goals mutually shared between GSD and the cloudcomputing paradigm, we propose to exploit cloud computing B. Research Questioncharacteristics and privileges both as a product and as a process GSD is software development incorporating teams spread acrossto improve GSD. the globe in different locations, countries, and even continents. We are motivated by the fact that conducting software projects inKeywords- Service Oriented Architecture (SOA), Global multiple geographical locations is likely to result in benefits such asSoftware Development (GSD), Challenges, SaaS (Software as a cost reduction and reduced time-to-market [14][19], access to a largerService) 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 apositive impact on business growth as the exchange of information In order to meet the different challenges posed by GSD, wehas become more timely, accurate and available. Because of this, suggest making use of the cloud computing paradigm and illustratebusiness organizations are no longer reluctant to outsource software that it has potential to enhance the usefulness of GSD. We argue thatdevelopment and to have development operations in multiple different types of geographic and cultural issues can be addressed bygeographical locations. They strive to make use of customized making use of different cloud computing realizations such as PaaSbusiness models to maximize their benefits. In addition, from the (Platform as a Service), IaaS (Infrastructure as a Service), and SaaSmarketing 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 onemarketing 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 aresearch, and the research methodology. Also, we present a synopsis product is developed, run, and distributed globally. The idea is toof the cloud computing, challenges faced by GSD, and our motive for identify different types and domains of GSD issues and investigateusing 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 softwareDevelopment (GSD) using the cloud computing paradigm, based on infrastructure, clients buy such resources as a fully outsourcedour 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 cancloud computing and SOA. We discuss how the GSD process can be be run. This includes the delivery of programming platforms andaligned with SOA, and how GSD products can be implemented using tools as a service. This kind of cloud computing provides aservices. We have established that, for example, some web tools development environment and the infrastructure provider’ssuch as Wikis support GSD communication processes. However, we equipment can be used to develop programs which are delivered toquestion 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 aservice 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 ofpropose the support of GSD development activities through services. software from its use [18]. It is based on the idea that softwareThe emphasis is on facilitating collaboration activities among GSD functionality could be provided as set of distributed services thatteams by structuring those activities. Our rationale is that we can could be configured and bound at delivery time, to avoid the currentparallel the GSD situation with manufacturing supply-chain limitations with software use, deployment, and evolution [18]. Sincemanagement where systems used are composed of ready-to use cloud computing stimulates the provision of online services via theservice-oriented systems. The reason services are widely adopted in World Wide Web, software can be hosted on web servers as servicesindustry is because they can be integrated seamlessly. This has [18]. Thus, the advent of SaaS within the cloud computing paradigmresulted in benefits to industry such as increased return on investment has created new opportunities for organizations to communicate andand reduced information technology costs [5]. We argue that services coordinate among themselves.to support GSD activities could be developed in the form of servicebased systems and that what we need are heterogeneous services F. GSD Challengeswhich 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 becomewhere those services supported interrelated activities. In this article, increasingly globalized, the relationship between culture andterms like SOA (Service Oriented Architecture) and the cloud have management of remote work has become an unavoidable issue whichbeen used interchangeably as different representations of the cloud needs to be addressed [15]. Because of distance among the softwareare 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 alsoidentified 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 distancehas 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 differentthis workshop, through interactive discussion and brainstorming, we cultures, and the additional expectation that each member willdeveloped the concepts presented in this paper. To do this, we understand and support each other’s culture. When team memberssummarized the GSD challenges and requirements and investigated speak in different languages, there needs to one chosen language forthe potential of SOA based cloud services [47] to address these. We work purposes, and as this is everyone’s first language, linguisticare embarking on further research to understand whether these indeed distance occurs. As teams are geographically dispersed, there is thecan 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 individuallyE. 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 globallywhich shared resources like software, hardware, and information are outsourced software development has been accepted as a difficult andprovided to the subscribers on demand [17][18][26]. NIST [55] complex task [14]. These four types of GSD challenges are addresseddefines 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 bemanaged and provided rapidly with minimal effort. The aim is toconstruct a low cost computing system by using certain entities G. Motive for Using the Cloud for Supporting GSDwithout compromising on computing capabilities. Depending on the One of the missions [59] of the cloud architecture is to providetype of shared resources, the cloud paradigm can have different services to customers by not only managing them but optimizingimplementations 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 discussedhardware such as processors and storage as a service, e.g., Amazon in terms of creation and provision of services [20] which means thatElastic 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 theand management of distributed dynamic systems and it evolved from cloud model itself has the potential to fulfill the GSD taskthe distributed component based approach [21], we argue that it has requirements. For example, cloud deployment models allow certainpotential to cater the challenges of GSD where a project is developed trusted partners (which could be GSD team members) to shareacross different geographical locations. Our thesis is that GSD resources among themselves. Service models may not only providechallenges 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 isdiversification, and business and technology alignment. Moreover, likely to reduce the overall project costs across multiple developmentthe 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. Sincesoftware processes are software too [22], we argue that the cloud has We investigate the impacts of the aforementioned collaborationpotential to reinforce GSD as a process. Initially, we considered the challenges and suggest the likelihood of using the cloud to addressuse of standard procedures to meet the quality challenges posed by them. We expect to achieve efficiency in collaboration through usingGSD. But, since organizations have to interact dynamically in the cloud in different implementations. The essence of using thisglobal environments, these standard procedures cannot scale up to paradigm to facilitate GSD is that instead of acquiring and owningsupport dynamism (which is a main feature of SOA). Moreover, the the software and project data, GSD team members can access andideology posed by both SOA and GSD is somehow similar [1, 23], subscribe to some of the software at a time (according to the need) infor example, coordination, transaction, context, execution the form of services. In addition, we want to take advantage of themonitoring, and infrastructure. In addition, SOA is one of the main SOA characteristics [43] like loose coupling, service composition andtechnical 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 byExisting 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 CLOUDcommunications among their members are likely to collaborate In this section, we describe how GSD as a service can facilitatebetter. Thus, this frequent communication is important to make full and improve how GSD is carried out. We discuss certain GSDuse of GSD advantages, e.g. improved productivity, reduced time to challenges and provide a rationale as to how the cloud service modelsthe market, and reduced cost. However, oral communication is prone can address them respectively.to confusion and misunderstanding. One way could be to minimizethe need for communication but such strategy would emphasize on A. GSD Services Conceptthe involvement of more dedicated personnel from each developmentsite [48] which could not be feasible either. At the same time it is Figure 1 illustrates the concept of using the cloud paradigm toimportant for the communication media to be formal, flexible, and support GSD. Service standards and policies are defined byevolvable 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 geographicallyof the cloud paradigm, especially SaaS, can be used to facilitate distributed development teams. We propose that this concept canefficient collaboration between geographically distributed teams support the reduction of difficulties caused by global distance. Forduring 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 activitiesgeographic and temporal challenges. As far as cultural and linguistic sides to facilitate the task.challenges are concerned, the provision of multilingual services basedon the location of GSD teams could improve the problem. We One would argue that the translation task could be facilitated by aconsider 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 otherSuppose that an organization in Ireland (GSD1) outsources a software artifacts such as design documents, code snippets, and legal andcomponent 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 theto communicate to exchange information on different development authorized team members. Also, cloud services can evolve withphases and tasks. The project manager from GSD1 sends on some changes in the associated business [18], for example, such a changeimportant instructions regarding requirements and architecture of the might occur in the form of a financial or money transfer service afterpotential system. Not only should this information be conveyed to the both companies agree on terms and conditions. Using our proposedconcerned team member but there should be some assurance that it system would result in the elimination of GSD3 overhead, i.e. storagehas indeed reached them, without the risk of being lost or disclosed to of project artifacts and information, as everything would be stored onother GSD locations. But, the concerned team member is a novice in cloud infrastructure and would be accessible from there in the form ofthe language and also needs to have those instructions translated into services. Table 2 list down the characteristics [46][55] of the Cloudhis 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 inarchitecture. 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 GSDgeographic distance negatively affects the ability to collaborate [23]. processes being provided by the outsourcing organizations.For building complex systems, coordination requires interaction oversequences of operations. However, often, due to collaboration withindifferent time zones, employees have less time to coordinate their D. Global Project Optimizationwork. 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 notactivities. For example, interaction between the service consumer and only into a collaborative environment [1], but also to maintain a richprovider on finding and binding of services is independent of the “project memory” [34].geographical distance. SOA puts an emphasis on adding transactionalguarantees 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 installationand 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 resourcesharing 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 theadvantages are likely to support different disciplines, for example, underlying infrastructure [23]. This unique feature can ensure teamInfrastructure as a Service (IaaS) could help provide different GSD management and coordination by means of its use as a product, byteams with resources such as computing power or storage scaling on to the existing project information.provisioning to store project related data. Software resources mayconsist of middleware and development resources like application E. Optimizing Globally Distributed Software Developmentsystems, database servers, and operating systems. The advantage of It is true that geographic distance affects the ability to collaborateusing fist two types of resources as a service is that they are never [1]. Moreover, it has been reported that communication andwasted after the project is over - instead, they can be unsubscribed. collaboration declines as the distance between the two workingApplication resources could assist in providing SaaS with necessary location increases [28]. As a process, cloud based collaborationinterfaces that could facilitate collaboration and sharing of among GSD teams is likely to diminish the deficiency caused byinformation 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, andtesting. Services which support different process activities, can be As a product, it can serve as an intermediary to facilitate users tocombined together to facilitate the whole process. As shown in Figure access and communicate with the cloud. The services involved in a2, supporting development process activities in the form of services system can change with the change in the associated business in termscan 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 alreadyApplication to SaaS removes the dependencies and challenges in underway.terms of architecture and task dependencies that traditional softwaredevelopment and reuse models impose. Moreover, it can reduce cost F. Eliminating the Strategic Issuesby facilitating reuse of services which provide similar operability for In GSD, ownership is often lacking [1]. Service ownership is asoftware application development. Hence the development is reduced concept which allows the service users to focus on their coreon building similar business applications as the only challenge which activities; it also helps the service provider with an opportunity to takeremains is the identification of suitable services which can serve the advantage of economies of scale [56]. As a product, well definedpurpose required. ownership exists for each service, and GSD users benefitting from such services can enjoy this privilege. This ensures that services areC. Geographical Distance used in a way to give the most to a business. Physical distance removes the opportunity for face to facecommunication. As a product, the Platform as a Service As a process, SOA addresses ownership by collocating servicerepresentation can provide a development platform with set of provisioning by service development. The wrapping of a GSD taskservices to assist application development and hosting on the cloud. It into an independent service can promote ownership, as it can be useddoes 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 architecturegeographically 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 asG. 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 tostructure [37]. The main distinctive feature of the cloud is that it eliminate the need for centralized configuration management withinallows rapid elasticity, making it straightforward for the service their scope.provider to dimension the resources necessary to support a servicedynamically depending on the service demands [39]. Thus, Cooperation and coordination is required to obtain trust betweeninvestigating the potential interactions among the stakeholders would two or more parties [52]. Lack of trust is always likely to reduce theenable getting insight into the service creation process for team cohesion. Teams with higher trust are coordinate better tocollaboration among GSD teams. These interactions are likely to be achieve better performance [53] which could make management anamong the outsourcing organizations and the teams jointly working easier task. A goal of cloud computing is that its users must be able toon the same project. access its different implementations at any time [54]. As a product, appropriate service definitions (including theirdescriptions) may act as proxies for communication and hence may K. Technical Issuesreduce the need for cross site communication. This privilege could be In GSD, a modular approach for software development has beenuseful when teams from different time zones find it difficult to suggested [1], but dependencies are likely to exist among componentscollaborate. On a technical level, the SOA paradigm provides an in the running version of the software. This nature of such a projectappropriate mechanism for cross platform data exchange and sharing would require evolvable software which could cope with theby 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, withknowledge 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 canH. 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 thisknowledge using the correct abstraction level. Using services as a Testing software is usually the most costly phase in softwareproduct diminishes the need for sharing knowledge as the constituent development and it can be responsible for over 50 percent ofservices have sufficient description about themselves, and because development costs [41]. Therefore, this phase often becomesthis knowledge is developed locally. Two knowledge transfer issues responsible for the ultimate profitability of the product [42]. Carryingin 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 productknowledge diminishes the need for transfer of other forms of often depend on the testing activity [40]. Making use of standardknowledge. 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 byidentify 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 acare 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. Henceit 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 versionI. 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 tooldictate 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 thepromotes isolation and reduced information sharing [36]. A crucial need for tool installation. The purpose is not only to cater with theaspect is responding to the constant changes in the business version issue, but also provide GSD teams with all tools required forrequirements. As a product, SOA can ensure the correct order of the project.service execution by a central scheduler, which controls the executionof the service and consequently the right order of communication III. DISCUSSIONbetween the project partners in GSD. As a process, these services may In order to propose the use of cloud for GSD, it is important toshare their execution context among each other to guarantee the have a comprehensive understanding of the GSD processes. We docorrect execution order. To support the collaboration activities among not expect that all will be served by this technological paradigm, butgeographically distributed teams, the concept of execution monitoring we do believe, if designed correctly, GSD can be successfullycan 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 mayJ. 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 teamsrevision. In addition, the availability and subscription of these services and environments.” Los Alamitos, CA, USA, IEEE Computer Societybecause 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." IEEEto 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,” 3rdof 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 theissues. 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,” Globalchallenges 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 softwareinfrastructure, platform, and provision of software as a service features. development: technical, organizational, and social challenges," SIGSOFTInformation 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 dimensionArchitecture (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 Proceedingsfew 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 Softwarereduce 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," Portlandthe 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.