Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
ISSN:2229-6093 Ritu Singhal et al, Int.J.Computer Technology & Applications,Vol 7(2),240-246 Rising future of Agile Software Development using Cloud Computing: A study using Cloud Computing in different phases of an Agile method-SCRUM Ritu Singhal, Sonia, Archana Singhal Department of Computer Science University of Delhi New Delhi, India toritu7@gmail.com, soniacsit@yahoo.com, singhal_archana@yahoo.com Abstract Due to the growing popularity of agile methods in the software engineering world nowadays companies do prefer and support agile methods over traditional methods. Agile methods are adaptive and provide software development at a faster pace with the flexibility of changes at any point of time. Also, during development of web applications, agile processes are gaining popularity as the prevailing conditions recognize that changes are inevitable. It is a lightweight and iterative approach most suitable with volatile customer requirements. However agile methodology needs a development platform to develop software at a faster pace. This platform can be efficiently provided by cloud computing which accelerates the agile development. Thus, the present paper proposed a framework ESCAM which integrates the cloud services with an agile method SCRUM and describes how cloud activities can aggravate the SCRUM development activities. Keywords: Cloud computing, Agile Software Development Methodology, Agile Methods, SCRUM 1. Introduction In current era, agile methods are gaining attention in software industries as they foster changes rapidly and promote sustainable development with incremental delivery of software. Moreover, prevailing business conditions make changes inevitable and thus agile methods are becoming preferred mode of development. Agile methodologies promise simple and iterative development with minimal documentation. During last decade, various Agile IJCTA | March-April 2016 Available online@www.ijcta.com methods such as Extreme Programming (XP), Scrum, Feature driven development, Adaptive software development have come into existence to overcome perceived and actual problems faced by prescriptive process models. These methods are gaining popularity in software development community but the organizations still face challenges in the real life scenarios while they want to follow its “rapid development cycles” principle. This is due to fact that developers are missing a crucial element that is, a development platform, that can actually support the agile manifesto and principles [1, 2] rather than just stating them. Agile methods also lack certain factors like on-site presence of customers, team members and team leader during most of the development time, high effort and cost involved in infrastructure, availability of skilled resources, ability to build applications from multiple locations [3]. Thus there arises the need of some technology with agile methods that can make a substantial difference. Cloud computing fulfills this dire need by providing agile developers a platform with lot of computing resources and services. Cloud services eliminate the requirement of onsite customer and stakeholder’s presence. By using cloud with agile development, prototypes and working softwares (after each cycle) are available faster. Moreover, it can be distributed at different geographical locations making rapid modifications faster with more accuracy. In essence, it must be said that due to cloud computing alluring and innovative features agile software development gets a new boost. In present paper modest attempt has been made by suggesting a framework, ESCAM (Extended Scrum Cloud Agile Method) that integrates various cloud services in different phases of an agile method named Scrum. Some key features of proposed framework ESCAM are as follows: 240 ISSN:2229-6093 Ritu Singhal et al, Int.J.Computer Technology & Applications,Vol 7(2),240-246 a) ESCAM provides an insight to developers that how cloud services supports in enhancing the principles laid down by Scrum method. b) ESCAM suggests which cloud service is most beneficial during a particular Scrum Phase or an activity. It also states the need of a particular cloud service required at that Scrum phase and its benefits of the integration. The rest of the paper is organized in some sections. Section 2 gives the description of related work. Section 3 provides an overview of Agile Development Process and Cloud Computing. Our proposed Framework ESCAM is presented in Section 4 with conclusion and future work in Section 5. describing what type of cloud services are beneficial at different steps of SCRUM agile development method. Thus we are proposing a novel framework ESCAM, which can be used for developing software following agile principles of SCRUM method on Cloud Platform. 3. Background This section presents briefly the concepts of Agile Software Development, Scrum Model and Cloud Computing. 3.1 Agile Software Development 2. Literature Review Various publications presents security guidelines for software development and among them several proposals had delivered a quality work for implementing cloud computing in agile software development. Sidharth et al. had enhanced agile development practices with cloud practices using Microsoft Azure Platform as a Service (PaaS) [3]. They provided a great insight into how cloud platform Azure enhance agile practices to deliver software faster but they have collapsed their vision only on one platform of cloud computing. Salesforce.com had also described that how agile methodology works better on cloud platform [4]. According to authors cloud computing with agile development assists developers to get valuable functionality, immediate feedback, and make rapid changes based on that feedback. Basically in this paper they have given the benefits of using Cloud environment with agile computing methodology. However author has not suggested that how cloud computing can be integrated for developing a project. Ambreen Nazir et al. had explained Agile processes and their benefits with Cloud computing [5]. Many researchers have described the impact of cloud computing on software engineering and its development processes [6, 7]. Radha and David have also suggested an extreme cloud model by integrating one method of agile development named Extreme Programming with Cloud computing. Some publications have described how cloud computing reinforces agile software development [8]. Cloud computing is a nascent and regularly evolving model with new aspects and capabilities. Many researchers are working in this field to enhance agile development using cloud computing. But till now there is no study which provides a framework IJCTA | March-April 2016 Available online@www.ijcta.com From 2001, Kent Beck and 16 other prominent software developers brought the agile Manifesto [1] and named a group of software development methods as agile methods. Since then, the Agile Methods, with all its values, principles, methods, practices, tools, champions and practitioners, philosophies and cultures, have significantly changed the landscape of the modern software engineering and commercial software development in the Internet era. Basically “Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between selforganizing, cross-functional teams“ [2]. The term ‘agile’ emphasizes adaptive and evolutionary development that encourages rapid and flexible response to change. Agile methodology, as the name specifies, is based on the concept of agility. In general, agility is the ability to provide effective response to change. It facilitates communication among team members & customers and aims to deliver working software in short duration. In simpler terms, Tisni J. Kurian [9] defines agility as “the ability of the process to successfully cope with changes in requirement”. Some notable early agile methods include Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development, and Dynamic Systems Development Method (1995). All these methods acknowledged that high quality software and more importantly customer satisfaction could only be achieved by bringing ‘lightness’ to their development processes. Next comes, an overview of one the most popular and commonly used agile method, SCRUM, in order to reveal the philosophy and fundamental approach introduced by agile principles. 241 ISSN:2229-6093 Ritu Singhal et al, Int.J.Computer Technology & Applications,Vol 7(2),240-246 3.1.1 SCRUM: An Agile Software Development Method SCRUM is one of the well-known agile methods. Nowadays, SCRUM is successfully used by many organizations all over the world. This method employs many agile principles that emphasize simple and iterative development, minimal documentation, earlier feedback, customer satisfaction, teamwork and changes at any stage of development. SCRUM consists of a set of rules and practices that occur within the context of five framework activitiesRequirement, Analysis, Design, Evolution and Delivery. The Scrum process and some of the key ideas, tasks and roles associated with each framework activity is illustrated in Figure 1. Figure 1: An Agile Method- SCRUM 3.2 Cloud Computing Cloud computing is a model consisting of certain services like renting out network access among various computing resources, providing storage space over the internet, making tools and applications available for customer. The future of computer world is dependent on cloud computing. A cloud platform IJCTA | March-April 2016 Available online@www.ijcta.com consists of the certain services based on resources shared and used by cloud customers. • Infrastructure as a Service (IaaS): It provides virtual machines, hardware (such as network, storage space and processors) and operating systems as a service. • Platform as a Service (PaaS): It delivers programming tools and platforms as a service to a customer. It allows users to developsome applications 242 ISSN:2229-6093 Ritu Singhal et al, Int.J.Computer Technology & Applications,Vol 7(2),240-246 Cloud provides infrastructure to scrum team from the very first iteration. In scrum method of Agile methodology, development happens in sprint. Sprint is time-boxed mostly have 2-4 week increments in which development teams prioritize tasks and remove deficiencies of previous sprint. Also in Initiate phase of scrum, activities like ‘Creation of Prioritized Product Backlog’, ‘Conducting Release Planning’, ‘Monitoring and managing the actions of present Sprints’ are also followed. In traditional scrum method conducting such activities and managing time-boxed sprints requires much time and power. Cloud platform is suggested here in the proposed framework as it enables easy access to number of users in different geographic locations. In essence, cloud platform in this phase of scrum, provides developers unlimited number of resources, quick feedbacks to incorporate in next releases and unlimited servers instead of just one physical server in traditional scrum. using APIs, which can be further implemented and operated remotely. • Software as a Service (SaaS): It is software or applications offered by a third party provider on demand, usually operating from a remote location. Depending on the control on resources by the tenant, Cloud Deployment Model is divided 3 categories that are, private cloud, public cloud and hybrid cloud. In private cloud infrastructure is limited to a single enterprise owns all In public cloud the enterprise sells cloud services to the general public or to the industries. Hybrid cloud consists of above two models and comes in the middle of them. In this an organization owns some resources and rents some other resources from a third party. 4. Proposed Framework: ESCAM This section proposes guidelines for the software developers required during agile software development using cloud services. Integration of cloud computing in agile development is just a beginning to emerge as a significant contribution in various applications of development. However, to take advantages of cloud services effectively various services of cloud computing must be considered in parallel during different phases of development Next section describes the important phases of lifecycle of an agile method named scrum taking all aforementioned aspects into account wherein cloud services are intervened. Scrum development method addresses certain framework activities during the flow of a Scrum project. According to SBOK (Scrum Body Of Knowledge) Guide [10], in total there are 19 activities which are grouped into five phases. All phases of Agile Development gets benefits from cloud computing. The phase-wise description of scrum activities with role and purpose of cloud activities in each phase is illustrated below and represented in Figure 2. 1. Initiate - This is the first phase of proposed framework ESCAM. This phase consists of the activities required for initiation of a project. Scrum method requires infrastructure before the development starts. In general scrum, development teams devotes certain initial iterations and waste considerable effort and time for setting up the development environment. However IJCTA | March-April 2016 Available online@www.ijcta.com 2. Plan and Estimate – In this phase of Scrum activities related to planning and estimating tasks are included that contain: Create User Stories, Approve, Estimate, and Commit User Stories, Create Tasks, Estimate Tasks, and Create Sprint Backlog. In traditional scrum in case of distributed team members and customers creating such User Stories, estimating tasks and incorporating reviews of present sprint in next sprint requires management tool that all members can access. Cloud platform provides such Agile management tools in fraction of seconds without having to manage any IT infrastructure. Moreover with cloud we can have many users apart from team members and customers. Cloud environment also enables parallel activity since developers can use number of servers at a time. In this phase during task estimation and sprint backlog creation, team leader can plan parallel activities for different team members taking various software and hardware architecture required directly from cloud. Thus it makes effective utilization of software development teams. 243 ISSN:2229-6093 Ritu Singhal et al, Int.J.Computer Technology & Applications,Vol 7(2),240-246 Figure 2: ESCAM framework illustrating various phases of SCRUM method with respective agile and cloud services IJCTA | March-April 2016 Available online@www.ijcta.com 244 ISSN:2229-6093 Ritu Singhal et al, Int.J.Computer Technology & Applications,Vol 7(2),240-246 3. According to Agile Scrum method, all requirements of a project should be broken down into user stories of same size and prioritized for builds. But in practice, agile developers deal with those features whose development efforts last till end rather than just in a build or a release. For code refactoring, efforts and improvements in existing releases with minor changes is done. These changes are done before using them in production; however a major redesign of code is going on. So code branching is needed in all such cases. To achieve this, reshuffling of different versions of development builds is required in Coding and Testing phase. Thus in proposed framework Cloud services are suggested for using additional physical servers for temporary infrastructure needs, instead of buying or renting each server. Moreover, developers can get their existing versions of build which are placed on different platforms with the help of Cloud. Since cloud platform can provide multiple environments, its services are recommended during testing phase. Developer can run any piece of code or a build quickly, without disturbing the other versions of code that he is testing. Cloud also allows Unit testing in parallel using multiple servers. 4. 5. Coding and Testing- This phase consist of execution of activities for building a project's product. These activities include ‘creating the various deliverables’, conducting Daily Standup Meetings’, and ‘Reviewing and regularly updating the Product Backlog at regular intervals’. Review and Retrospect - This phase starts with the review of end product that is based on the feedback of work done. Moreover in this phase, ways to improve the practices and methods has been determined. These methods are essential for conducting a project work. Instant feedback achieved through cloud services in case of distributed customers is extremely important to the Scrum method. This is achieved in various phases and also at release time through continuous integration, testing and inputs from stakeholders. Thus in proposed framework cloud services are recommended to automate feedback at all stages of a project. 5. Conclusion Agile developers want to develop projects via regular customer feedbacks, continuous integration and testing with accurate and rapid development cycles which are best achieved using cloud services. Thus it is evident that combining agile software development with cloud environment brings together the best of both worlds. In the present paper, a framework ESCAM has been proposed that represents some informal guidelines for integrating the cloud services while developing software using agile methodology. The proposed framework is a novel attempt to reinforce Agile method, SCRUM using cloud services. This framework is beneficial in achieving iterative software releases, regular feedbacks of customer evaluating quality standards of project, increased productivity, and better agility having cost efficiency. Moreover, integration of cloud services with some other agile methods and there comparative study is also a promising area for further research. References 1. 2. 3. In this phase, using cloud services (as described in section 3.2), customer’s feedback enables developer quick and correct deployment. It helps to move developing software in right direction. IJCTA | March-April 2016 Available online@www.ijcta.com Release - This phase delivers the accepted software to the customer and reviews the things learned during the project development. With many servers available through cloud environment, development team can enhance continuous integration and delivery of developing software in a better way. 4. Beck, K., et al. (2001).Manifesto for Agile Software Development, February 2001. The Agile Alliance Home Page, http://www.agilealliance.org/home. Dumbre, A., Senthil, S.P., Garg, S., Practicing Agile software development on the Windows Azure Platform, Infosys, Building Tomorrows’s Enterprise, May 2011. The Landmark, White Paper, “Agile Development Meets Cloud Computing for Extraordinary Results at Salesforce.com”, 245 ISSN:2229-6093 Ritu Singhal et al, Int.J.Computer Technology & Applications,Vol 7(2),240-246 http://www.developerforce.com/media/ForcedotcomB ookLibrary/WP_Agile_112608.pdf, 2008 5. Nazir, A., Raana, A., Khan M.F., Cloud Computing ensembles Agile Development Methodologies for Successful Project Development, In I.J.Modern Education and Computer Science, 2013, 11, 28-35. 6. Mani, P., Deebitha.S, Jayakumar, S., Gopalakrishnan, R., Enhancing Agile Software Development Using Cloud Computing: A Case Study, In International Journal of Research in Management & Business Studies (IJRMBS 2014), Vol. 1 Issue 1 Jan - March 2014 7. Guha, R., Al-Dabass, D., Impact of Web 2.0 and Cloud Computing Platform on Software Engineering, In International Symposium on Electronic System Design, 2010, IEEE Computer Society. 8. Willie, CollabNet Inc., White Paper, “Reinforcing Agile Software Development in the Cloud”, http://www.open.collab.net/media/pdfs/CollabNet%20 Whitepaper_Reinforcing%20Agile%20Dev%20in%20 the%20Cloud.pdf?_=d, 2011. 9. Kurian ,T., 2005,“Agility in IT :Creating Software through AgileTechniques “.Proceedings of the IEIInternational Conference on Agility Design & Manufacturing (ADEMSE-05), Bangalore , India. 10. A Guide To The Scrum Body Of Knowledge (SBOK Guide) 2013 Edition. Isbn: 978-0-9899252-0-4. http://www.scrumstudy.com/SBOK/SCRUM studySBOK-Guide-2013.pdf IJCTA | March-April 2016 Available online@www.ijcta.com 246