Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Issues in Informing Science and Information Technology Volume 13, 2016 Cite as: Haig-Smith, T., & Tanner, M. (2016). Cloud computing as an enabler of agile global software development. Issues in Informing Science and Information Technology, 13, 121-144. Retrieved from http://www.informingscience.org/Publications/3476 Cloud Computing as an Enabler of Agile Global Software Development Timothy Haig-Smith and Maureen Tanner University of Cape Town, Cape Town, South Africa hgstim001@myuct.ac.za, mc.tanner@uct.ac.za Abstract Agile global software development (AGSD) is an increasingly prevalent software development strategy, as organizations hope to realize the benefits of accessing a larger resource pool of skilled labor, at a potentially reduced cost, while at the same time delivering value incrementally and iteratively. However, the distributed nature of AGSD creates geographic, temporal, socio-cultural distances that challenge collaboration between project stakeholders. The Cloud Computing (CC) service models of Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) are similar to the aspirant qualities of AGSD as they provide services that are globally accessible, efficient, and stable, with lower predictable operating costs that scale to meet the computational demand. This study focused on the 12 agile principles upon which all agile methodologies are based, therein potentially increasing the potential for the findings to be generalized. Domestication Theory was used to assist in understanding how cloud technologies were appropriated in support of AGSD. The research strategy took the form of case study research. The findings suggest that some of the challenges in applying the agile principles in AGSD may be overcome by using CC. Keywords: Cloud Computing, Agile Software Development, Agile Global Software Development, Agile Principles, Scrum. Introduction Globalization offers organizations the prospect of a larger customer base in addition to improvements in productivity and cost reduction. The geographically distributed nature of globalization and advancements in technology enable organizations to change their operating models, as well as how and where they source capital, customers, resources, and human capital (Esbensen, Jensen, & Matthiesen, 2014; Smirnova, 2013). These operational and sourcing changes also affected how organizations develop software, giving rise to the phenomenon of Global Software Development (GSD) (Richardson, Casey, Burton, & McCaffery, 2010). GSD refers to the practice of having software development Material published as part of this publication, either on-line or teams (SDTs) distributed geographically in print, is copyrighted by the Informing Science Institute. with the intended purposes that include Permission to make digital or paper copy of part or all of these reducing labor costs, increasing software works for personal or classroom use is granted without fee development capacity, and 24-hour provided that the copies are not made or distributed for profit or commercial advantage AND that copies 1) bear this notice productivity (Al-qadhi & Keung, 2014). in full and 2) give the full citation on the first page. It is permissible to abstract these works so long as credit is given. To copy in all other cases or to republish or to post on a server or to redistribute to lists requires specific permission and payment of a fee. Contact Publisher@InformingScience.org to request redistribution permission. Another concept affecting software development has been the evolution and increased adoption of agile methodologies. The formulation of the Agile Mani- Editor: Eli Cohen Submitted: December 26, 2015; Revised: March 13, March 21, 2016; Accepted: March 28, 2016 Cloud Computing an Enabler of AGSD festo (Agile Alliance, 2001) and related formulation of the Agile Principles, by software development thought leaders, was a seminal moment for what later became known as the “Agile Movement” (Linkevics, 2014). The period since has seen rapid acceptance of agile principles, with pervasive adoption by industry and extensive research by academia (Nilsson & Karlsson, 2014). The agile principles focus on delivering products that meet customer requirements, being responsive to change, while at the same time not compromising on quality (Highsmith & Cockburn, 2001). A core tenet in the agile manifesto stresses a greater importance of collaboration and interaction between individuals than that of tools and processes for project success (Cockburn, 2006). Organizations, having appreciated the benefits of following agile principles, are increasingly integrating agile practices into their GSD; this concept is termed Agile Global Software Development (AGSD). The goal of AGSD is to capitalize on the benefits of globally distributed production while still being more responsive to change, maintaining software quality, and controlling costs (Kamaruddin, Arshad, & Mohamed, 2012). While having many potential benefits AGSD also presents with the same challenges of GSD over and above the social challenges of distributed agile teams (Nilsson & Karlsson, 2014). Another development affecting the software development ecosystem, with increasing prominence, has been cloud computing (CC). The main characteristics of CC, which include reduced cost, scalability, performance, multi-tenancy support, and distributed availability, align with the needs of GSD (Cocco, Mannaro, & Concas, 2012). Academic research into the application of the benefits of the cloud to agile principles is low (Tuli, Hasteer, Sharma, & Bansal, 2014). However, research by Gill and Bunker (2013) found that CC could enable agile principles of communication through cloud-based social technologies. Examples of these social technologies include video conferencing, knowledge management, and web portals. Furthermore, given that CC significantly assists in the practice of GSD, it has the potential to aid in the following of agile principles, and potentially improve productivity by amalgamating CC with AGSD (Smirnova, 2013). This research study investigated how CC has the potential to reduce the conflict between agile principles and GSD, to enable organizations to realize the benefits of AGSD. The 12 agile principles provide an overarching framework for this study as all agile methodologies align to those principles (D. Cohen, Lindvall, & Costa, 2003). The primary research question guided this study: • How may cloud computing be used as an enabler of the agile principles whilst performing AGSD? This empirical research study adopted an interpretivist research stance, applying a qualitative research approach to collect and analyze information, with data sourced from two organizational case studies (Saunders, Lewis, & Thornhill, 2009). Two case studies were used in an attempt to understand the phenomena through the interpretation the participants had of their context (Runeson & Höst, 2009). The first case (C1) investigated a large multinational organization conducting AGSD from offices located in Australia (Melbourne), Brazil (São Paulo), Republic of Georgia (Tbilisi), Mexico (Mexico City), South Africa (Cape Town), and the United States of America (Charlotte). The second case (C2) investigated a small, distributed agile team developing while being located in various cities within South Africa (Cape Town, Durban, and Johannesburg). This aligned with the theory selection, as domestication theory-based research is commonly interpretivist in nature (Hynes & Richardson, 2009). The remainder of this paper is organized as follows. A literature review is first presented discussing issues around agile software development, agile global software development, and cloud 122 Haig-Smith & Tanner computing. The methodology employed for the study is then described, followed by a detailed discussion of the findings. The paper is then concluded. Literature Review Agile Software Development The following sub-sections describe the 12 agile principles and how Scrum, the most popular agile software development methodology, aligns with these principles. The core values of agile software development as listed in the Agile Manifesto relate to concepts that place an emphasis on people interacting and collaborating, and an acknowledgment that requirements will change, and that responding to such changes is important (Agile Alliance, 2001). Williams (2012) found that the agile principles remain as relevant to contemporary agile practitioners as at the signing of the agile manifesto. Table 1 lists the 12 principles that form the basis for agile software development. Each of the principles can be associated with a core value (Highsmith & Cockburn, 2001). Table 1. The 12 Agile Principles (Fowler & Highsmith, 2001, p. 35) 1. "Our highest priority is to satisfy the customer through the early and continuous delivery of valuable software." 2. "Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage." 3. "Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale." 4. "Business people and developers must work together daily throughout the project." 5. "Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done." 6. "The most efficient and effective method of conveying information to and within a development team is a face-to-face conversation." 7. "Working software is the primary measure of progress." 8. "Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely." 9. "Continuous attention to technical excellence and good design enhances agility." 10. "Simplicity — the art of maximizing the amount of work not done — is essential." 11. "The best architectures, requirements, and designs emerge from self-organizing teams." 12. "At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly." The Scrum methodology Agile methodologies are approaches that provide techniques which prescribe processes to assist SDTs in adhering to agile principles (Cockburn, 2006). There are numerous agile software methodologies each underpinned by the agile principles (D. Cohen et al., 2003). However, Scrum is the most widely adopted agile methodology (Azizyan, Magarian, & Kajko-Mattson, 2011; Kim, 2013). The study will thus focus on Scrum as a form of agile software development methodology. Scrum is an agile process framework developed by Ken Schwaber and Jeff Sutherland. Schwaber and Sutherland (2013, p. 3) define Scrum as “A framework within which people can address 123 Cloud Computing an Enabler of AGSD complex adaptive problems while productively and creatively delivering products of the highest possible value”. Scrum aligns with the agile principles in the follows ways: • Principle #1: Deliver Value to the Customer Scrum aligns with Principle #1, as sprints (iterations) occur with regular frequency, are shorter than a month, and the intended goal of each sprint is a usable and potentially shippable product (Schwaber & Sutherland, 2013). • Principle #2: Welcome Changing Requirements Scrum supports Principle #2 as changes to requirements and priorities are encouraged at various points of the Scrum cycle. Scrum also includes specific events designed to develop and communicate changes. However, Scrum does not permit changes to the sprint goal once a sprint has commenced (Schwaber & Sutherland, 2013). • Principle #3: Deliver Frequently Scrum sprints are time-boxed for less than four weeks, closely aligning with Principle #3. • Principle #4: Business & Developer Collaboration The business and development collaboration of Principle #4 of Scrum occurs both informally during a Sprint and at specific meetings (Schwaber & Sutherland, 2013). The role of the product owner creates open communication on requirements as they interface directly with the customer (Kim, 2013; Takkunen, 2014). • Principle #5: Motivated and Supported Team Members Organizations that adopt Scrum also align with Principle #5, as the cross-functional nature of the team requires support from the business to equip the teams appropriately with individuals with the required competencies. An outcome of the function of the scrum master to shelter the team from external influences creates the right environment for developers to focus solely on the tasks of the Scrum team (Darwish, 2014). • Principle #6: Face-to-Face Communication Scrum facilitates the face-to-face communication described in principle #6, through the sprint planning, daily scrum, sprint review, and sprint retrospective meetings (Schwaber & Sutherland, 2013). • Principle #7: Working Software Indicates Progress Principle #7 aligns with Scrum practices through the sprint review event, where the team is able to demonstrate useable software completed during the sprint, to assess the state of the product backlog (Darwish, 2014). • Principle #8: Sustainable Software Development Principle #8 states that the rate of progress should be sustainable and consistent (Fowler & Highsmith, 2001). Significant variance between a sprint velocity and team velocity identifies changes in the rate of progress, prompts the team to investigate and address the cause. Thus, team velocity allows Scrum teams to monitor the consistency of the rate of their progress (Pomar, Calvo-Manzano, Caballero, & Arcilla-Cobián, 2014). • Principle #9: Technical Excellence Scrum does not prescribe how software is developed therefore does not mention technical or architectural aspects of Principle #9 (Cockburn, 2006). 124 Haig-Smith & Tanner • Principle #10: Simplicity The design of the Scrum framework aligns with Principle #10. While Scrum is difficult to master it is simple to understand (Schwaber & Sutherland, 2013). • Principle #11: Self-organizing Teams Scrum teams mirror Principle #11, as they are self-organized and the team is autonomous but accountable for decisions made. Scrum does not prescribe how the team should develop the software but emphasizes team and individual accountability. This is reflected in the selforganizing nature of Scrum teams who collectively decide how best to complete project tasks (Cockburn, 2006). • Principle #12: Continuously Adapt and Improve The sprint review of Scrum fully aligns to Principle #12. Scrum also instills a culture of improvement, evidenced by every Scrum event being an opportunity to optimize and improve (Schwaber & Sutherland, 2013). The coaching function of the scrum master also aligns with the goal of individual and team effectiveness. Agile Global Software Development Organizations are increasingly coupling agile practices with GSD with the intended purpose of realizing the competitive advantage of developing software globally. However, AGSD poses both technical and social challenges for organizations due to the distributed nature of the software teams collaborating on projects (Nilsson & Karlsson, 2014) as well as to the application of the agile principles (Kamaruddin et al., 2012). Table 2 provides a mapping of the AGSD challenges affecting the application of the agile principles. As demonstrated in Table 2, three agile principles most affected in the AGSD context are Principle #6, Principle #5, and Principle #4. It is plausible that negatively affecting communication, collaboration, and SDT motivation could also negatively influence the value generated from developed software. Table 2. AGSD Challenges Impact on Agile Principles (Beck et al., 2001; Kamaruddin et al., 2012) AGSD Challenge P1 Lack of customer involvement ● P2 P3 P4 P5 P6 ● ● ● Bandwidth limitations ● Cultural differences ● ● Different project background Lack of commitment Poor Communication Infrastructure P11 P12 ● ● ● ● ● ● ● ● ● Lack of trust Miscommunication of requirements P10 ● ● Lack of frequent face-to-face contact Language differences P9 ● ● High communication costs Inadequate tool support P8 ● ● Different working hours P7 ● ● ● ● ● ● ● ● ● 125 Cloud Computing an Enabler of AGSD Cloud Computing The National Institute of Standards and Technology (NIST) defines CC as “… a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.” (Mell & Grance, 2011, p. 2). The model comprises Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) (Mell & Grance, 2011). Despite some challenges, the use of cloud-integrated tools and platforms have been proven to increase cost effectiveness and aid enterprises throughout the Software Development Life Cycle (SDLC) by allowing developers to focus more on building software with minimal impedance (Al-qadhi & Keung, 2014). Cloud services specifically IaaS, PaaS, and SaaS support AGSD. IaaS consumers have access to virtualized servers and network accessible infrastructure hosted by the Cloud Service Provider (CSP) (Liu et al., 2012). IaaS supports software development through virtualization, allowing the provisioning of servers based on the demand of the project. This enables project teams to work in parallel, minimizing parallel work streams conflicting for resources (Mwansa & Mnkandla, 2014). PaaS offers cloud consumers the ability to use frameworks and other software on preconfigured instances, provisioned and hosted by CSP (Liu et al., 2012). Standardized instances of virtual services with preinstalled and configured software assist in the SDLC process of custom-built software, through the rapid availability of new clean instances (Schneider & Sunyaev, 2014). Examples of PaaS include Cloud Foundry, Google App Engine, Heroku, and Microsoft Windows Azure (B. Cohen, 2013). SaaS users include system administrators and end users within organizations, as well as individual users who consume the software directly from a CSP (Kavis, 2014). Users access SaaS services via a thin client (Jula, Sundararajan, & Othman, 2014). SaaS examples include Google Apps, Microsoft 365, and Salesforce (Al-qadhi & Keung, 2014). SaaS supports development in several ways (Al-qadhi & Keung, 2014; Schneider & Sunyaev, 2014). Firstly, SaaS provides a delivery platform for software development with global access to users that have access to the Internet. Secondly, updating software happens at the server, limiting disruption to clients and can eliminate issues related to legacy versions of the software. Thirdly, software developers can use APIs delivered through SaaS, to integrate as a component of their software, promoting code reuse and standardization, in addition to being a potential source of revenue for the API provider. Fourthly, SaaS protects the income stream for software development producers by lowering the risk of software piracy, as SaaS supports the ability to enforce a pay per use fee model. Cloud as an Enabler of AGSD The IaaS and PaaS layers of CC assist agile development teams in delivering value two ways (Dumbre, Senthil, & Ghag, 2011). Firstly, the rapid provisioning of environments through virtualization saves the Scrum team both time and effort in setting up the development environment. Secondly, cloud interfaces facilitate the deployment of software and environments, directly with the developer’s Integrated Development Environment (IDE), reducing the need for assistance from outside the Scrum team. SaaS provides a delivery platform for cloud-based agile management software tools that provide similar functionality as physical Scrum boards; examples include JIRA, Mingle, Rally, ScrumWorks, Trac, VersionOne, and XPlanner (Azizyan et al., 2011). These tools provide benefits to AGSD teams in four ways (Tuli et al., 2014). Firstly, being cloud based, the tools are globally accessible to the whole AGSD team, providing a single source of information across the whole team. Secondly, the tools are readily available. Thirdly, they do not require internal development 126 Haig-Smith & Tanner and deployment. Fourthly, the tools have the ability to scale, as adding new users does not degrade performance. Reduced feedback latency Agile software development relies on frequent feedback between developers and business users (Wang, 2011). CC reduces the time and effort to test and deploy software, thereby reducing the latency between completing development and receiving feedback on software errors, improving productivity by product owners and users (Guha & Al-Dabass, 2010). The deployment mechanisms supported by CC enable continuous integration. Continuous and frequent code deployment within a sprint enables product owners and stakeholders to review work done during a sprint and take corrective action mid-sprint. This allows developers to confirm and realign their understanding of the requirements as early as possible, eliminating wasted effort (Wang, 2011). The Sprint review is an important agile practice where software developers provide feedback to the product owners and other stakeholders, through demonstration of functionality developed during the sprint, in line with Principle #7 (Schwaber & Sutherland, 2013). Deploying software that is globally accessible allows stakeholders of the project to review the code, regardless of their location (Dumbre et al., 2011). In instances of large temporal distances and teams are unable to meet simultaneously, the environment used for the review and code can remain active until all relevant team members have reviewed and provided feedback. This is possible as cloud environments are not limited in the same ways as physical servers. Once testing has concluded the environment can be decommissioned (Hossain, Bannerman, & Jeffery, 2011). While the potential for software bugs remain, there is a reduced possibility of failure due to the software running on a CC platform (Wang, 2011). This cultivates trust between the business stakeholders and developers as environment instability has the potential to create incorrect perceptions of poor software development practices (Cockburn, 2006; Schwaber & Sutherland, 2013). Collaboration The agile principles stress the importance of frequent collaboration and communication (Schwaber & Sutherland, 2013). Esbensen et al. (2014) found that frequent informal communication between AGSD team members across distributed locations creates a sense of team unity and reduced the time to resolve issues. The most commonly used collaboration technologies were calendars, email, instant messaging, screen sharing, shared document spaces, social media, source code environments, telephones, and video conferencing. These collaboration technologies are supported by CC or have cloud-based equivalents; however, CC has the benefits of reduced cost and pervasive availability (Esbensen et al., 2014; Gill & Bunker, 2013). CC nurtures accountability, transparency, simplicity and trust emphasized in Scrum (Jula et al., 2014; Schwaber & Sutherland, 2013). By capturing information electronically using cloud-based tools, the entire team has access to the same information, eliminating delays or stale information. CC supports high levels of automation, reducing the need to capture information manually as in the case of code commits to a source repository, automated builds, and the results of automated tests (Schwaber & Sutherland, 2013). Source code management Source code repository software facilitates source code management, with the primary functions being to store, version, and prevent loss of source code and configuration files; they are essential tools for developer collaboration (Amin, Hasab, & Faraahi, 2014). Cloud-based software code repositories enable AGSD teams to distribute and integrate project files globally and help identify code changes with each check-in submission. SaaS code management products include Code Spaces, GitHub, GoogleCode, SourceForge, and Unfuddle (Fuggetta, Nitto, & Milano, 2014; 127 Cloud Computing an Enabler of AGSD Pulkkinen, 2013). Examples of PaaS products with integrated code management include Heroku, Engine Yard, Windows Azure, Google App Engine, and Force.com (B. Cohen, 2013). Cloudbased code management systems promote transparency as all team members can inspect the history of each file, identifying which sections have been changed, when, why, and by whom (Pulkkinen, 2013). This transparency allows organizations performing AGSD to enforce uniform coding standards across an organizational code base, and assist in problem-solving and knowledge transfer (Fuggetta et al., 2014; Pulkkinen, 2013; Wang, 2011). Automation Automation of continuous integration is one way that CC can reduce the feedback cycle. Continuous integration is a practice endorsed by agile software development (Cockburn, 2006). The process requires source code management where every team member commits their changes to a centralized repository every time a new change or a task is completed (Pulkkinen, 2013). Continuous integration is a complex, time-consuming, and resource-intensive process. The process includes the committing of source code to a central repository, building the software from the integrated source code, running automated tests on the software (including performance testing), and deploying the software. PaaS can provide this requisite scalable resourcing by its ability to provide computing resources as required (Pulkkinen, 2013) Uniform development environments AGSD projects that do not make the whole environment available to the entire SDT run the risk of significant integration problems once insourced or outsourced software is integrated or deployed with onsite systems. To minimize this risk, internal software teams that are outsourcing software development work must first assess their software environments for portability, identifying all the related dependencies and configuration. Portability issues may require tactical projects to change the code base prior to outsourcing the software development (Stankov & Datsenka, 2010). PaaS can support uniformity between teams in two ways. Firstly, PaaS environments are accessible through the Internet, resulting in all team members having access to the same or identical instances of the development environments (Stankov & Datsenka, 2010). Secondly, certain PaaS platforms are able to deliver development tools such as IDEs as a service, thereby eliminating the need to install and configure an IDE (Ghohandizi, 2014). Theoretical Framework Domestication theory is an approach concerned with the understanding of the adoption and use of technology within households and institutions. The theory is concerned with practical, temporal, and the socio-cultural aspects associated with a technology and covers the pre and post-adoption stages of a particular technology (Haddon, 2006). The theory was initially proposed for understanding the adoption and use of media technology within the context of a household. However, it has also been used to understand the appropriation of technology by other entities such as educational institutions, businesses, and other groups (Chigona, Chigona, Kayongo, & Kausa, 2010; Harwood, 2011; Hynes & Richardson, 2009; Sandtrø, 2012). Prior domestication studies have mostly been related to technology associated with a physical device such as motor vehicles, televisions, laptops, and mobile devices (Brussel, 2013; Haddon, 2006; Harwood, 2011; Hynes & Richardson, 2009). However, there are examples of the use of domestication theory for nonphysical technology such as Virtual Learning Environments (VLE) (Sandtrø, 2012). Consequently, it is appropriate to assume that domestication theory would be relevant to the understanding of how CC is used in AGSD. The domestication process covers four non-discrete phases or dimensions: commodification, objectification, incorporation, and conversion (Chigona et al., 2010; Haddon, 2007). Domestication 128 Haig-Smith & Tanner theory was used because the framework describes and analyzes the processes of user acceptance, rejection, use, and integration of technology into the routine activities of individuals or organizations (Lee, Smith-Jackson, & Kwon, 2009). The use of the four phases or dimensions of domestication theory as an explanatory framework promoted an understanding of the process of cloud technology adoption and use within an organization. This assisted in understanding how CC enables the application of the agile principles within an AGSD context. The domestication phases provided a structure upon which to base the interview questions, in addition, the thematic analysis of the data. The subsections that follow discuss the four phases of domestication theory. Commodification The commodification phase focuses on the process undertaken for the consumer to possess a particular technology and is also referred to as “appropriation” by some researchers (Bakardijeva et al., 2006). Both potential and actual consumers begin to develop mental images of the usability and functionality of the technology as they evaluate the technology based on their needs (Hynes & Richardson, 2009). This phase pertains to the route followed for a specific technology, from the point of marketing of a product to the user, as well as to the user’s motives for approaching the technology (Lee et al., 2009). Objectification The objectification phase covers the point at which a particular technology has been acquired. In this phase the consumers begin to decide on the meaning the technology has and in what aspect of their lives it inhabits (Haddon, 2006). However, possession of the technology does not imply its acceptance by the consumer (Hynes & Richardson, 2009). Incorporation Incorporation is the phase focusing on the point where the use of the technology becomes routine and forms part of the consumer’s regular activities, both informally - by way of routines - and formally as part of a defined procedure (Chigona et al., 2010). Consumers acquire technology with specific functionality and applications in mind. The incorporation phase also covers the usability aspects of the technology for the consumer, as some technologies may not align with required functionality or routines of particular consumers (Lee et al., 2009). Conversion In the conversion phase, consumers show the adoption of the technology by sharing their experience of the technology with others (Chigona et al., 2010). While still using and being reliant on the technology, the consumer no longer consciously thinks about the technology. Having mastered the technology, the consumer may also begin adapting the use of the technology in ways different to the original intentions of the designers and marketers (Haddon, 2006; Lee et al., 2009). Methodology The research design for this case study aligns with the steps described by Voss, Tsikriktsis, and Frohlich (2002), namely, (1) Development of the research framework, constructs, and questions, (2) Case selection, (3) Research instruments and protocols selection, (4) Ensuring Reliability and Validity and (5) Data Analysis. The research followed a deductive approach, as it used domestication theory as a theoretical lens. The research adopted an interpretivist research stance to the phenomena, aligning with the qualitative research method (Runeson & Höst, 2009). This aligns with the theory selection, as domestication theory-based research is commonly interpretivist in 129 Cloud Computing an Enabler of AGSD nature (Hynes & Richardson, 2009). The research study was empirical, applying a qualitative research approach to collect and analyze information, which comprised two case studies (C1 and C2) (Saunders et al., 2009). The first case study (C1) focused on a software project completed by a multi-national organization with 17 globally distributed offices. The organization provides global trade management solution to manage the export and import of goods. The project entailed the development and delivery of a bespoke trade integration system that complied with the Brazilian Customs authority. Table 3 lists the participants that were interviewed for C1. Software development to deliver these requirements occurred at four office locations: USA, Australia, Brazil, Mexico, and South Africa. Business analysts and client service managers are also globally distributed. The SDTs follow the Scrum development methodology. Table 3: Case 1 Interview Participants Respondent Pseudonym Job Title C1.C Technical Director/Enterprise Architect C1.M Project Manager C1.R Product Owner/Business Analyst The second case study (C2) was conducted in a small South African, software development company with developers operating from Cape Town, Durban, and Johannesburg. C2 is a Microsoft Solution Provider, with Gold Partner certifications in application development and application integration. C2 provides software development resourcing, consulting services, and bespoke software solutions on the web and mobile platforms. The software development methodology used is Kanban. The organization does not have formal offices, and developers work from home or onsite at client offices. The selection of C2 was because of how different it is when compared with C1. C2 did not have to contend with different time zones, language differences within the SDT, nor international operations. The small size relative to C1 allows the organization to be more responsive to change than C1. The embedded case takes the form of a single software project for a time tracking and resource management solution for internal consumption and as a SaaS product for customers. Table 4 lists the participants that were interviewed for C2 using respondent pseudonyms to protect their identities at the time of the interview. Table 4: Case 2 Interview Participants Respondent Pseudonym Job Title C2.W Director/Technology Specialist C2.P Software Developer Data collection Case research typically employs multiple data collection methods, that include interviews, observations, archival data, documents, and physical artifacts (Benbasat, Goldstein, & Mead, 1987). The primary data sources were semi-interviews and direct observation. The interview questions comprised four sections, structured as described in Table 5. 130 Haig-Smith & Tanner Table 5: Interview Questions Sections Section Description One Global software development processes performed within the organization. Two Alignment of software development practices to the agile principles. Three The pre and post adoption of CC for use within the software development practices of the organization. Four Open-ended: where the respondent was asked to suggest other ways that CC can enable the agile principles. Direct observation takes the form of documenting actions of participants in the context of the environment under investigation (Yin, 2009). For this research study, direct observation included the demonstration of the tools used in relation to the study. Secondary sources related to the case included documentation related to meeting minutes, emails, instant messaging (IM) conversations, project artifacts, context diagrams of solutions, and configuration files (Benbasat et al., 1987; Yin, 2009). The primary secondary sources were the websites of the case organizations, as they created background and context to case organizations. Data analysis NVivo is software designed to support qualitative and mixed methods research, designed to handle non-numeric data such as interviews, open-ended survey responses, literature reviews, and web content (Runeson & Höst, 2009; Yin, 2009). The researcher used NVivo software to aid in the thematic analysis of the data. The analysis followed similar steps to those described by Yin (2009). The process was highly iterative; the actual steps performed were as follows: 1. Each interview was transcribed using NVivo. 2. Additional sources such as marketing material and web pages relating to the cases were also ingested into NVivo. 3. Initial set themes corresponding to domestication theory, agile principles, and AGSD related concepts were created. 4. Each theme was created in NVivo as a node. 5. Sub-nodes were also created to refine each theme. 6. Interview responses were then mapped to the corresponding themes. 7. Word frequency and text queries were also used to identify new themes. 8. The initial themes were then grouped and refined through several iterations, using Microsoft Excel. 9. The themes were then mapped to research questions. 10. The relationships were also created between themes that allowed for the formulation of conclusions. Findings This section discusses the findings derived from the deductive thematic analysis process. To reduce duplication and structure the findings the 12 agile principles have been grouped into three categories of communication and collaboration, technical excellence, and frequent delivery. 131 Cloud Computing an Enabler of AGSD Communication and Collaboration This section provides an overview of findings of how CC enabled AGSD teams to adhere to the agile principles that relate to collaboration, communication, support of the team, and process improvement. Business & SDT collaboration Business users and customers are part of the project team and CC enables the collaboration of business and developers. For example, using agile management software exposed through SaaS eliminates the need for specialized tools, and access can be granted to project stakeholders, who would have been unable to access the information due to firewall restrictions. This potentially increases the level of transparency − and possibly trust − as business users can see the status and track the progress of activities through the project. Project administration is further reduced if other software used on the project, such as IDEs, is also integrated with the agile software. This is supported by C1, as covered in the following extract of a conversation between C1.C on the need for a single tool to manage an agile project: When you want to work with your customers, you want them to use the same tool, they might not see the same content as you. Most of these tools allow you to link issues together. I can have certain product codes under which the customer can log issues. Then I can link those issues to internal trackable issues, which they can't see, but you want that traceability at the end of the day and you can't do that when you've got two tools because then a human being must do the traceability link. Issue 500 over here and the customer system is now issue 200 here and everything that happens here must be filtered back here again (C1.C). Face-to-face communication Whilst principle six stresses that face-to-face, communication is the preferred way for the SDT to communicate, it is not always possible in an AGSD context. However, frequent communication between team members is essential and cloud-based software such as email, IM, screen sharing, shared document spaces, and video conferencing aids communication. Each of these tools has a proper use and teams may need to use more than one communication channel to be correctly understood. The frequent communication also allows individuals to feel they are part of a team, which in turn supports agile principle five. This is supported by the following extracts: There was a Skype group that has been setup since the day I joined and it is still going strong.… Slack came around the thing that I liked about Slack was the fact that you could paste different type of content in it. It would actually render images and links and is searchable. Whereas Skype's chat history is not that usable and easily accessible (C2.P). Communication is on the phone, IM and email. That’s pretty much it. Also often do a secure meeting with them, it is like WebX you basically setup a secure meeting, view their desktop and they will do a demonstration of what they are busy working on this is what they have a question on. And then obviously I can take control of the desktop and I just click around and show them that is how what I mean. So I think that is something, what is nice about talking to guys here is you can get up and draw on the whiteboard and say this is what I mean. Where is it a bit more difficult to convey that in a medium where you don't have complete artistic freedom and go I want this change moved over there and all that sort of stuff. You kind of got to highlight it and say "I want this changed to here and more of a, you have to really outline something quite well." (C1.R). 132 Haig-Smith & Tanner Motivated team members using the right environment The three service models of CC support principle five in an AGSD context as they provide the SDT with the right computing resources upon which to develop and reduce the latency between assigning an AGSD team to a project and the SDT performing tasks that are directly related to producing value from the first iteration. In C1, the private cloud provides uniform software environments required for development and testing. Creating virtual servers or a pristine virtual machine (VM) for a developer is a routine activity, as shown in the following extract: We send an email out to IT I think and they have templates within the virtualization environment where they select a template they want and it spins up in about five minutes. They will assign us a Partner ID, which will be for development or like a new project. Like our one's 2042 and 2040 which is for the development team (C1.M). Security restrictions are in place to prevent developers from copying any text or file data off their development image. C1.R expressed a level of frustration with the security restrictions. C1.R also voiced a consensus view that the primary motivation for the way the PaaS environment was implemented was to enforce security controls and that the ease of maintenance and rapidly available clean development machine instances were unintended benefits. The whole VM Ware thing is nice from … I think where they can apply patches and changes as needed to, but I don't think that is their intent. I think their intent was source code safety like C1.C said, even if you steal the whole source code base you're not going to get to roll it out … So what is the real point? The VMs are locked down so you can't copy anything off of the VM unless you do a request to copy a file and then the request goes via the development manager. So the Development Manager will say, "You are trying to copy source code off of your VM. You are not allowed to that, but you can copy a pre-built file." For instance he needs deploy or something, they are very careful (C1.R). Self-organizing teams Agile principle eleven stresses team accountability for the outcome of a project and trust in the team to make the best decisions possible (Kim, 2013; Schwaber & Sutherland, 2013; Takkunen, 2014). CC can potentially promote this by allowing the SDT to collaborate and express themselves using various tools. Trust in an AGSD context can be built through the SDT delivering consistently. Cloud-based agile management software can be used to track the current progress of an SDT as well as their progress over time. Transparency is achieved through the tracking of each team member’s contribution. In C1, extensive use was made of Team Foundation Server (TFS) for source code management, agile project management, and real-time tracking of progress made by individuals working on each requirement, as evidenced by the following extract: I can also then see [what has been done] because I have added the requirement to TFS and then I can see when they are actually checking-in against that requirement. So, I can see if they are making progress or not (C1.R). To become truly efficient, AGSD teams must overcome cultural issues that lead to fear and build trust between all team members. Cloud communication tools could be used to build relationships between team members and make all team members feel safe within the team. By example in C1, the product owner described the fear-based reluctance of members of his team to seek further clarity on particular requirements they did not understand. C1.M added that they intended using video conferencing to improve relationships. [W]e discussed just last week, Monday I can't remember, with the development manager in the States about buying the Georgian team a camera and a couple of screens to talk. If somebody new to the company is going to a meeting with more than two or three people, 133 Cloud Computing an Enabler of AGSD it is very difficult to map a name, a title to voice, it is really difficult. When you can see them I hope it will be a little easier (C1.M). Technical Excellence This section provides an overview of findings where CC enabled AGSD teams to adhere to the agile principles that relate to technical excellence. Simplicity CC supports the tenth agile principle of simplicity, by abstracting the complexity of maintenance and support of the server environments, releasing the AGSD team to focus on the activities that deliver value. In C2, PaaS reduced the complexity, effort, and lead-time to provision and configure used in the SDLC as described in the following extract: You can pre-configure them. You can get a blank one and do whatever, but you can actually say for any of the servers, "I want SQL this version, SharePoint this version, whatever, whatever", and it will spawn up a server for you (C2.W). Technical excellence and good design The ninth agile principle states that a constant focus on technical excellence and good design enhances other agile practices that are being followed (Jasemian, Mortensen, & Boje-Nielsen, 2007). Using CC for hosting of source code and following continuous integration practices exposes the code base and design to the entire AGSD team. This allows the SDT to conduct code reviews and ensure correct practices are followed consistently. In C1, the organization was able to enforce consistency through the use of a single internal framework executed on a uniform. We have a framework that has been written by the Georgian office and that being reused again and again. So, the coding that is done here [Cape Town], needs to align with the way his framework is set out. So if he needs to add action buttons or we to need to add a new report that needs to be generated or something like that. There's a section pretty much just needs to be copied and pasted, we've already done all the work in terms of what or how you generate the report, it is just put it in the code and then let it run (C1.R). Welcome changing requirements The agile principle two of changing requirements requires consistent adherence to the other eleven agile principles. However, once requirements have changed the entire AGSD team must be notified and have updated requirements documentation. CC can support this by providing a secure, globally accessible location to store documents, and the team and the means to notify the SDT using appropriate communication mediums. The following extract from C1 illustrates how an architect notified the AGSD team of changing requirements: They [SDT] have access to the UML model there they can make their changes and what we do is generate a document out of the tool which is then a static document that we can give over to the developers. Then we also make use of DropBox to share the specification so the static specifications which customs [government agency] gives us. We hand that over. So we are all working with the latest version, so if there is an update I will warn them and say [using Skype], "Look there is an updated spec we no longer using version X, we're using version X+1" (C1.R). 134 Haig-Smith & Tanner Frequent Delivery This section provides an overview of findings where CC enabled AGSD teams to adhere to the agile principles that speak to frequent delivery. Deliver frequently CC enables the third agile principle of frequent delivery in an AGSD context is through continuous integration. Continuous and frequent code deployment within an iteration enables the product owners and stakeholders to review work done during a sprint and take corrective action before each iteration is complete. The process of continuous integration can be automated using centralized source code management software and a build server. In the following extract, the C1.M describes a typical sequence of events followed to deliver software that is ready for testing: So the developer will develop on their VM, which is..., they can test their stuff, well those screens on their Dev VM. When they are ready, they commit it to TFS. The builds will happen in TFS, there is a Continuous Integration build setup. They would then pick the components of the solution they changed and which they need as part of their project and push it or copy it to the integration server. Which the analysts and testers would then they say, "Well this is now our next version of [project name redacted] development." (C1.M). CC enables frequent delivery by allowing AGSD teams to create multiple parallel environments for demonstration and indefinite testing (Ghohandizi, 2014). In C1, as described in the following extract, business users have a dedicated environment for them to test: Sometimes we do the demo on a product owner’s server instance. We do the demo, show them what it can do, and they go play on their server on their own (C1.M). Sustainable development As previously discussed, frequent delivery decreases the amount of long-term planning required by the AGSD team, by having smaller time intervals which enable the SDT to more accurately estimate and manage their time. In C1, the ability to perform multiple progress demonstrations encourages the AGSD team to work consistently. What is nice about these demos is that it focuses the team on getting goals ticked off, because if you just leave it, if they can work for three months it will, they will take it easy for those two months and then start working overtime the last month. You need to constantly say "Ok, guys I want to see that we are on the right page” (C1.C). Deliver value to the customer Product owners or customers determine the value and priority of features delivered by an AGSD project (Sverrisdottir, Ingason, & Jonasson, 2014). CC can support this principle using SaaS agile management software as it enables the “customer” to set the priority, giving the AGSD team a clear view of what must be performed within a sprint. In C2, the product owner sets the priority of issues performed within the sprint, using agile management software as described in the following extract of C2.P who discusses how they used TFS to prioritize sprint deliverables: Each task is drag and drop. The product manager would want to see everything so he can prioritize what is put into a Sprint (C2.P). Cloud Support for Agile Requirements Lightweight agile methodologies such as Scrum and Extreme Programing (XP) recommend an evolutionary approach to system design, as requirements and designs are refined and improved 135 Cloud Computing an Enabler of AGSD through iterative cycles (Jasemian et al., 2007). CC can potentially support this requirement maturation process via different tools for the different phases. …[D]epending on the life cycle of the document. We put it, we normally start with GoogleDocs, then DropBox, and then we probably go to TFS (C1.M). Waiting for a document to reach a fully matured state may delay opportunities for collaboration and use − well past the point where the document would begin adding value (Ambler, 2002). C1 used GoogleDocs for the initial phases of requirements documentation maturity cycle. Once requirements documents were created, they were also accessible to the entire team. GoogleDocs also supports concurrent editing of documents by multiple authors with real-time updates. The reason for this approach is to support team collaboration and to make sure the team works off the latest requirements as described by C1.C in the following extract: Once this team is busy writing documents, I want to know what [person name] has been working on in the last 30 minutes and I can open the document and instantaneously I can see the contribution of each team member on the document. I don't want them to check it in first because people are hesitant to check things in, it is a mental thing. There is a hesitation to check-in or save your document or whatever it is. The team is updated every six hours or every five days of this person's work. Where you work on something like GoogleDocs it is immediately shared there is no save button. When I change a letter now everybody sees it and with documents I find it handier to use GoogleDocs for those initial phases. Write it, draft it and by all means, get to a point where the company now needs to know of it take it, "Save As" word document, upload it onto TFS (C1.C). Artefacts management CC offers a variety of tools with which to store and develop artifacts such as requirements documents, diagrams, and other project related artifacts. However, using different tools and storage mechanisms means that relevant documentation can be in multiple locations. AGSD teams need to have clearly defined processes and mechanisms to support the storage and retrieval of documents. In C2, all project artifacts not stored in the source code repository are referenced by a single document maintained, by the SDT to track metadata such as the version and location of project artifacts, as described in the following extract: … [T]his is an example of a GoogleDoc which is document map. Any document people need to share or reference. This is a landing page [Shows a spreadsheet of documents and metadata related to the documents]. So people don't have to look in their emails or whatever, they go in here look, do a search or whatever and there is a purpose description, who the owner is, whether it is released or not, and at the end here [points to the last column] where is this thing. Is it in DropBox, is in the GoogleDocs, and soon where will it be in TFS (C2.M). Table 6 is presented in the Appendix to summarize how CC was found to enable SDTs in adhering to the agile principles while performing AGSD comparing the findings with literature. Discussion Analysis of the research findings suggests that CC assists in reducing feedback latency between the stakeholders of a project, through the support of both a value based approach to project artifacts and continuous integration. The study found frequent delivery could be achieved by adopting continuous integration practices. CC provided a platform for centrally accessible source code management as well as build servers that generated builds once developers checked-in source code. Hosting the source code management software and build server using cloud resources 136 Haig-Smith & Tanner meant that SDT productivity was not affected by frequent integration builds. CC also enabled parallel server environments to be available for testing; this allowed development to continue by using other environments while business users were testing. These findings are in line with research conducted by Fuggetta et al. (2014) and Lin (2014). The tools used by AGSD projects may vary based on the needs of a project as it was found that when standard tools inhibited a project the SDT began using other tools that provided the required functionality. While the software must adequately support each AGSD project (and may vary as a result), using multiple software tools for a similar purpose may also present a project with different challenges. In the case of this study, users were reluctant or unwilling to use new collaboration tools due to company policy or firewall restrictions, in addition to not wanting to update yet another tool. The study found that through the use of a range of cloud-based communication tools such as video conferencing, IM, voice chat, screen sharing has the potential to reduce the impact of infrequent face-to-face communication within an AGSD context. IM was found to support AGSD teams in communicating synchronously when the temporal distance was small and asynchronously where office hours did not overlap. IM chat information persistence allows SDTs to use the IM content as a historical record of events and decisions made over an extended period. IM also creates an awareness of availability for communication and the status of team members. IM can be tactically within an iteration to allow distributed team members to collaboratively address technical issues. IM could be used to notify the SDT of new or changed requirements documentation being available. Synchronous communication was found to be the preferred means of communicating shown by teams shifting meetings − such as stand-ups − traditionally held at the start of the day to later in the day to include as many team members as possible. Scheduled meetings used a standard set of communication tools. However, informal and ad hoc with preferred communication method was negotiated between participants. The study also found instances where more than one tool such as email, IM, and screen sharing was required to make sure all parties understood each other. The use of multiple CC tools resulted in an additional administrative overhead of finding project artifacts. To mitigate this, a centrally accessible document was made available to the team that contained metadata such as the filename, purpose, version, and importantly the location of the document. However, this required diligent maintenance that could have been mitigated had fewer tools and storage locations been used. The study found that CC was used to enforce company policy of code security and data loss prevention. The use of a PaaS environment was found to promote standardization of environments assisting in IT maintenance and rapid provisioning of software environments, as well as resilience to the loss or failure of hardware. It was also found that migrating the server environment to a CC environment improved stability, created software development capacity allowing developers to focus on tasks directly related to delivery. This increased development capacity came as a result of a reduction in the time and effort required to setup and configure servers, improved stability, and availability of the server platform, thus reducing the resources allocated to fixing server infrastructure issues. Integrating CC tools with the IDEs used by the SDT reduced the administration overhead of updating the status of project tasks. This allowed teams to focus communication more on why tasks were at a current status and collaborating on how to resolve issues. Research Limitations As a multiple case study, the generalizability of the results is limited. Participants in the interviews represented most of the roles that form part of an AGSD team. However, the full crosssection was only achieved across cases and not within each case. While participant responses 137 Cloud Computing an Enabler of AGSD from both cases were congruent, including more participants could potentially further strengthen the triangulation of the findings, as well as expose additional insights and themes related to the study. The primary limitation to low participant numbers was work commitments, which affected the availability of the interview participants. The hope is that future case research will be conducted with a larger number of participants that are globally distributed. Conclusion Communication challenges are a recurring theme throughout the GSD and AGSD literature. Agile software development requires coordination, feedback, and trust - all of which are challenges in a distributed context. Temporal issues may require modifying agile methodologies, for example, when an AGSD team is using Scrum and where offices hours between locations do not overlap, they may need to adapt a sprint review meeting to be an asynchronous event. For this research, domestication theory was used as a theoretical lens. The four dimensions of domestication theory assisted the researcher in developing interview questions and developing themes to gain insight into appropriation of CC within each case. Following from the empirical findings and an analysis process, five key findings have been identified, namely: 1. Using CC reduces feedback latency. 2. CC provides a range of communication tools designed for different communication requirements. 3. The use of CC in conjunction with AGSD requires more discipline. 4. The software tools used on an AGSD project should support the project context. 5. CC enables an SDT to focus more on project delivery than ancillary project activities. A research contribution of this study is that it was formulated − in part − as a response to a call for further research by Amin et al. (2014) for empirical case studies of how CC could be used to address challenges of AGSD. The contribution towards practice includes practical examples of the use of CC in both an AGSD and collocated context. In conclusion, the paper successfully provides an understanding of how, through the use of CC, some of the challenges in applying the agile principles in an AGSD context may be overcome. References Agile Alliance. (2001). Manifesto for agile software development. Retrieved April 5, 2015, from http://agilemanifesto.org/ Al-qadhi, M., & Keung, J. (2014). Cloud-based support for global software engineering: Potentials, risks, and gaps. In Proceedings of the International Workshop on Innovative Software Development Methodologies and Practices (pp. 57–64). Hong Kong: ACM. Ambler, S. W. (2002). In T. Hudson (Eds.), Agile modeling (1st ed.). New York, USA: John Wiley & Sons, Inc. doi:10.1017/CBO9780511817533.018 Amin, S., Hasab, M., & Faraahi, A. (2014). An overview of applying cloud computing in addressing agile global software development challenges. Reef Resources Assessment and Management Technical Paper, 40(5), 184–191. Azizyan, G., Magarian, M. K., & Kajko-Mattson, M. (2011). Survey of agile tool usage and needs. In Proceedings of the 2011 Agile Conference (pp. 29–38). Salt Lake City, USA: IEEE. Bakardijeva, M., Thomas Berker, Haddon, L., Hartmann, M., Hynes, D., Rommes, E., … Ward, K. J. (2006). In T. Berker, M. Hartmann, Y. Punie, & K. J. Ward (Eds.), The domestication of media and technology (1st ed.). New York, USA: McGraw-Hill Education. 138 Haig-Smith & Tanner Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., … Thomas, D. (2001). Principles behind the agile manifesto. Retrieved April 5, 2015, from http://www.agilemanifesto.org/principles.html Benbasat, I., Goldstein, D. K., & Mead, M. (1987). The case research strategy in studies of information systems case research. MIS Quarterly, 3(3), 369–386. Brussel, V. U. (2013). Smartphone domestication in the urban environment. Vrije Universiteit Brussel. Chappell, D. (2012). How SaaS changes an ISV’s business. Retrieved from http://www.davidchappell.com/writing/white_papers/How_SaaS_Changes_an_ISVs_Business-Chappell_v1.0.pdf Chigona, A., Chigona, W., Kayongo, P., & Kausa, M. (2010). An empirical survey on domestication of ICT in schools in disadvantaged communities in South Africa. International Journal of Education and Development Using Information and Communication Technology, 6(2), 21–32. Cocco, L., Mannaro, K., & Concas, G. (2012). A model for global software development with cloud platforms. In Proceedings of the 38th Euromicro Conference on Software Engineering and Advanced Applications (pp. 446–452). Çeşme, Turkey: IEEE. Cockburn, A. (2006). Agile software development: The cooperative game (2nd ed.). Boston, USA: Addison-Wesley Professional. Cohen, B. (2013). PaaS: New opportunities for cloud application development. IEEE Computer Society, 46(9), 97–100. Cohen, D., Lindvall, M., & Costa, P. (2003). Agile software development. Data & Analysis Center for Software. Darwish, N. R. (2014). Enhancements in Scrum framework using extreme practices. International Journal of Intelligent Computing and Information Science, 14(2), 53–67. Dumbre, A., Senthil, S. P., & Ghag, S. S. (2011). Practicing agile software development on the Windows Azure platform. Retrieved April 25, 2015, from http://www.infosys.com/cloud/resourcecenter/Documents/practicing-agile-software-development.pdf Esbensen, M., Jensen, R. E., & Matthiesen, S. (2014). Does distance still matter? Revisiting the CSCW fundamentals. ACM Transactions on Computer-Human Interaction, 21(5), 1–26. Fowler, M., & Highsmith, J. (2001). The agile manifesto. Software Development, 9(8), 28–35. Fuggetta, A., Nitto, E. Di, & Milano, P. (2014). Software process. In Proceedings of the on Future of Software Engineering (pp. 1–12). Hyderabad, India: ACM. Ghohandizi, F. A. (2014). Cloud-based software development for a federated cloud (Masters thesie). Tampere University of Technology. Gill, A. Q., & Bunker, D. (2013). Towards the development of a cloud-based communication technologies assessment tool: An analysis of practitioners’ perspectives. Vine, 43(1), 57–77. Guha, R., & Al-Dabass, D. (2010). Impact of Web 2.0 and cloud computing platform on software engineering. Proceedings of the International Symposium on Electronic System Design, 213–218. Haddon, L. (2006). The contribution of domestication research to in-home computing and media consumption. The Information Society, 22(4), 195–203. Haddon, L. (2007). Roger Silverstone’s legacies: Domestication. New Media & Society, 9(1), 25–32. Harwood, S. A. (2011). The domestication of online technologies by smaller businesses and the “busy day.” Information and Organization, 21(2), 84–106. Highsmith, J., & Cockburn, A. (2001). Agile software development: The business of innovation. Computer, 34(9), 120–122. 139 Cloud Computing an Enabler of AGSD Hossain, E., Bannerman, P. L., & Jeffery, R. (2011). Towards an understanding of tailoring Scrum in global software development. In Proceedings of the International Conference on Software and Systems Process (pp. 110–119). Honolulu, USA: ACM. Hynes, D., & Richardson, H. (2009). What use is domestication theory to information systems research? In Yogesh Kumar Dwivedi, B. Lal, & M. D. Williams (Eds.), Handbook of research on contemporary theoretical models in information systems (1st ed., pp. 482–494). Hershey, Pennsylvania: Information Science Reference. Jasemian, T., Mortensen, R. S. K., & Boje-Nielsen, T. (2007). Measuring agility: A quantitative survey among IT professionals. Aalborg University. Jula, A., Sundararajan, E., & Othman, Z. (2014). Cloud computing service composition: A systematic literature review. Expert Systems with Applications, 41(8), 3809–3824. Kamaruddin, N. K., Arshad, N. H., & Mohamed, A. (2012). Chaos issues on communication in agile global software development. In Proceedings of the IEEE Business, Engineering and Industrial Applications Colloquium (pp. 394–398). Kuala Lumpur, Malaysia: IEEE. Kavis, M. (Ed.),(2014). Architecting the cloud: Design decisions for cloud computing service models (SaaS, PaaS, and IaaS) (1st. ed.). Hoboken, NJ, United States of America: John Wiley & Sons, Inc. Kim, D. (2013). The state of Scrum: Benchmarks and guidelines. Retrieved April 20, 2015, from https://www.scrumalliance.org/scrum/media/ScrumAllianceMedia/Files and PDFs/State of Scrum/2013-State-of-Scrum-Report_062713_final.pdf Lee, Y. S., Smith-Jackson, T. L., & Kwon, G. H. (2009). Domestication of technology theory: Conceptual framework of user experience. In Proceedings of the 27th CHI Conference (pp. 1–5). Boston, USA: ACM. Lin, C. C. (2014). Toward a cloud based framework for facilitating software development and testing tasks. In Proceedings of 2014 IEEE/ACM 7th International Conference on Utility and Cloud Computing (pp. 1–2). London, United Kingdom: ACM. Liu, F., Tong, J., Mao, J., Bohn, R., Messina, J., Badger, L., & Leaf, D. (2012). NIST cloud computing reference architecture: Recommendations of the national institute of standards and technology (Special Publication 500-292). Retrieved May 10, 2016, from http://www.isaca.org/Groups/Professional-English/cloud-computing/GroupDocuments/909505.pdf Linkevics, G. (2014). Adopting to agile software development. Applied Computer Systems, 16(1), 64–70. Mani, P., Jayakumar, S., & Gopalakrishnan, R. (2014). Enhancing agile software development using cloud computing : A case study. International Journal of Research in Management & Business Studies, 1(1), 127–129. Mell, P., & Grance, T. (2011). The NIST definition of cloud computing: Recommendations of the National Institute of Standards and Technology. Retrieved October 5, 2014, from http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf Moe, N. B., Cruzes, D. S., Dyba, T., & Engebretsen, E. (2015). Coaching a global agile virtual team. In IEEE (Ed.), Proceedings of the 10th International Conference on Global Software Engineering (pp. 33–37). Ciudad Real, Spain. Münch, J. (2013). Impact of cloud computing on global software development challenges. In Proceedings of Cloud-Based Software Engineering (pp. 34–39). Helsinki, Finland: University of Helsinki. Mwansa, G., & Mnkandla, E. (2014). Migrating agile development into the cloud computing environment. In 2014 IEEE International Conference on Cloud Computing (pp. 818–825). Anchorage, USA: IEEE. Nilsson, C. G., & Karlsson, D. (2014). Implementing agile project methods in globally distributed teams. Karlstad University. 140 Haig-Smith & Tanner Pomar, F. A., Calvo-Manzano, J. A., Caballero, E., & Arcilla-Cobián, M. (2014). Managing the software process with a software process improvement tool in a small enterprise. Journal of Software-Evolution and Process, 26(9), 481–491. Pulkkinen, V. (2013). Continuous deployment of software. In Proceedings of Cloud-Based Software Engineering (pp. 46–52). Helsinki, Finland: University of Helsinki. Richardson, I., Casey, V., Burton, J., & McCaffery, F. (2010). Global software engineering: A software process approach. In I. Mistrík, J. Grundy, A. Hoek, & J. Whitehead (Eds.), Collaborative software engineering (Vol. 1, pp. 35-56). Berlin: Springer-Verlag. Runeson, P., & Höst, M. (2009). Guidelines for conducting and reporting case study research in software engineering. Empirical Software Engineering, 14(2), 131–164. Sandtrø, T. (2012). How the domestication process of a VLE came to closure. The Online Educational Research Journal, 3(7), 2–8. Saunders, M., Lewis, P., & Thornhill, A. (2009). Research methods for business students. Harlow, Essex: Pearson Education Ltd. Schneider, S., & Sunyaev, A. (2014). Determinant factors of cloud-sourcing decisions: Reflecting on the IT outsourcing literature in the era of cloud computing. Journal of Information Technology, 1–31. Schwaber, K., & Sutherland, J. (2013). the scrum guide. Retrieved April 24, 2015, from http://www.scrumguides.org/docs/scrumguide/v1/scrum-guide-us.pdf Smirnova, I. (2013). Impact of cloud computing on global software development challenges. In Proceedings of Cloud-Based Software Engineering (pp. 71–78). Helsinki, Finland: University of Helsinki. Spinellis, D. (2014). Developing in the cloud. IEEE Software, 31(2), 41–43. Stankov, I., & Datsenka, R. (2010). Platform-as-a-service as an enabler for global software development and delivery. Multikonferenz Wirtschaftsinformatik, 555–566. Sverrisdottir, H., Ingason, H., & Jonasson, H. (2014). The role of the product owner in Scrum-comparison between theory and practices. In Proceedings of 27th IPMA World Congress (Vol. 119, pp. 257–267). Dubrovnik, Croatia: Elsevier B.V. Takkunen, M. (2014). Scrum implementation in a virtual team environment (Master’s thesis). Helsinki Metropolia University of Applied Sciences. Tuli, A., Hasteer, N., Sharma, M., & Bansal, A. (2014). Empirical investigation of agile software development: A cloud perspective. ACM SIGSOFT Software Engineering Notes, 39(4), 1–6. Voss, C., Tsikriktsis, N., & Frohlich, M. (2002). Case research in operations management. International Journal of Operations & Production Management, 22(2), 195–219. Wang, W. (2011). Reinforcing agile software development in the cloud. Retrieved May 10, 2016, from https://www.open.collab.net/media/pdfs/CollabNet%20Whitepaper_Reinforcing%20Agile%20Dev%2 0in%20the%20Cloud.pdf?_=d Williams, L. (2012). What agile teams think of agile principles. Communications of the ACM, 55(4), 71. Yin, R. K. (2009). Case Study Research: Design and Methods. (V. Knight, S. Connelly, L. Habib, C. M. Chilton, & G. Dickens, Eds.) (4th ed.). Thousand Oaks, USA: Sage Publications, Inc. 141 Cloud Computing an Enabler of AGSD Appendix Table 6: Summary of Cloud Enablers of the Agile Principles while performing AGSD Category: Regular Delivery Principle C1 C2 Cloud Based Support • Parallel development environments (Stankov & Datsenka, 2010). √ √ • SaaS: Platform for deploying software (Chappell, 2012). √ √ • Product owners determine, prioritize, and track value using agile management software (Azizyan et al., 2011). √ - • Continuous integration (Mani, Jayakumar, & Gopalakrishnan, 2014). √ √ • IaaS, PaaS: fewer delays in freeing developers to focus on development work (Smirnova, 2013). √ √ • SaaS: Platform for rapid software deployment (Chappell, 2012). √ √ P07 Working Software Measure • Continuous integration (Mani et al., 2014). √ √ P08 Sustainable development • Agile management software: automated tracking of delivery rate and activities (Hossain, Bannerman, & Jeffery, 2011). Better time management due to the ability to deliver frequently (Smirnova, 2013). √ - √ √ P01 Deliver value to the customer P03 Deliver Frequently • Category: Communication and Collaboration Principle P04 Business & SD Collaboration P05 Motivated Team Members, Environment, Trust 142 C1 C2 Cloud Based Support • Agile management software: allows product owner to prioritize value with the collaboration of whole team (Azizyan et al., 2011). √ − • Continuous integration allows for regular feedback between business people and developers (Mani et al., 2014). √ √ • PaaS and SaaS are globally accessible (Chappell, 2012). √ √ • SaaS: No specialized tools for business users, transparency (Chappell, 2012). √ √ • Agile management software highlights when tasks are taking too long allowing the whole team to address issues that may go unnoticed (Tuli et al., 2014). √ − • Cloud-based code management provides developers with source code that is current (Pulkkinen, 2013) √ √ Haig-Smith & Tanner • PaaS: supports the team by providing a uniform development environment between locations, limits the required software required for setup and configuration (Münch, 2013). √ √ P06 Face to Face Communication • The impact of distance distributed teams can be minimized through the use of CC tools email, instant messaging, screen sharing, shared document spaces, and video conferencing (Gill & Bunker, 2013). √ √ P11 Selforganizing teams • Agile management software – improvements can be tracked (Azizyan et al., 2011). √ − • CC allows for more options to overcome AGSD challenges √ √ P12 Continuously Adapt and Improve • Code Management tools allow for code reviews to highlight areas of improvement (Moe, Cruzes, Dyba, & Engebretsen, 2015). √ − Category: Technical Excellence Principle C1 C2 Cloud Based Support P10 Simplicity • IaaS, PaaS: Lower IT skills required for setup of stable and scalable development and production environments (Spinellis, 2014). √ √ P09 Technical Excellence • Centralized Code Management supports code reviews, enforces standardization, and eliminates duplication (Stankov & Datsenka, 2010). √ √ • Cloud platforms are robust, scalable, and highly reliable (Chappell, 2012). √ √ • Automated testing begins at the point of committing code and at every integration point (Lin, 2014). − − • Resilience to the impact of change requires proper adherence to the other 11 principles. √ √ P02 Welcome Changing Requirements Key: Present =√ Absent/Not explicitly covered = − 143 Cloud Computing an Enabler of AGSD Biographies Timothy Haig-Smith obtained a BCOM (Hons) degree from the University of Cape Town specializing in Information Systems in 2015, after a long absence from academia. He has worked in a variety of industries as a software developer and software development manager for several years. He is presently pursuing a Masters degree in Information Systems. His research interests include software development team dynamics, software development practice, and technical debt. Dr Maureen Tanner has been teaching systems analysis and design at the Department of Information Systems of the University of Cape Town since 2009. Her research interests lie in Agile software development related issues (for both collocated and distributed teams), UML, software engineering and social aspects of social engineering, global software development, virtual teams, and team collaboration. 144