A Review on the synergy between Agile Software Development and ...

6 downloads 0 Views 383KB Size Report
Keywords— Agile software development; Agility; Cloud based software development ... Nowadays, Cloud has seen rapid growth in the IT world and allows ...
International Journal of Software Engineering and Technology

A Review on the synergy between Agile Software Development and Cloud Computing Shahrzad Haghshenas Dept. of Computer Engineering Isfahan Branch, Islamic Azad University Isfahan, Iran [email protected]

Taghi Javdani Gandomani Dept. of Computer Engineering Isfahan Branch, Islamic Azad University Isfahan, Iran [email protected]

improvement in projects delivery, getting faster response and customer feedback, strengthen understanding among customers and business parties, and achieving agility that allows organizations to check quality of every piece of development with the lowest cost to pay[2]. Cloud services include infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS) [2]. To develop software based on Cloud computing and minimizing development costs and enhancing customer satisfaction and reusability of software, a model, called ACD 1, has been introduced. In order to better acceptance of Cloud, this model of Agile methodologies, merges with Cloud server. Another thing that can help Agile software development in Cloud environment, is taking advantage of Cloud features such as testing services, project management and so on in software development. In this article, we discuss how Agile methods can take advantage of the Cloud. Section II introduces the background of Agile methodologies and Cloud services and combination of them is explained. Section III introduces how Cloud causes further acceleration of software projects, advantages and challenges of using Cloud in Agile methodologies. Finally, the paper concludes in Section IV, and future work is expressed in Section V.

Abstract— Software companies are trying to improve their productions by employing new technologies, processes, and infrastructures. Recently, emerging Cloud computing concepts has motivated software teams to take advantages from the Cloud environment. At the same time, recently, Agile software methods are increasingly adopted in software companies. This study aims to review and focus on combination of Agile software methods and Cloud computing environments. The literature review showed considerable synergy between both of them. Especially, using Cloud services can lead to better results in development process and phases. Keywords— Agile software development; Agility; Cloud based software development; Cloud computin;, Reusability Introduction

I. INTRODUCTION In recent years, many different software methodologies are used by software companies. Developers and users use these methods to spend a considerable amount of time and energy. Employing proper methods of software development depends on the type of organization, type of project, and the type of customers. Agile software development methods due to their iterative nature and acceptance of change of requirements, and continual communication with customers, are highly focused by software teams[1]. All Agile methodologies have special attention to customer requirements at all stages of software design and development, and when the product is being prepared. In this case, whenever new features are added to a product, software development team members must wait until the meeting with the representative of the customer. But in case of using Cloud environment, team members can put all changes in a Cloud service and quickly find out the customer feedback.

II. RESEARCH BACKGROUND AND RELATED WORK Software development cycle involves all stakeholders and includes short iterations on design, construction, and testing. During all these iterations, wrong information may be accumulated due to inaccurate assumptions and correction of these errors will enhance the experience. In one study, researchers designed a model for reusability[3, 4]. Cloud computing refers to the use of resources (hardware and software) as a service over a network (typically the Internet) Cloud formation and its services are shown in Figure 1.

Nowadays, Cloud has seen rapid growth in the IT world and allows organizations to use a shared data space for their applications. Also, Cloud is very effective in mitigating huge processes associated with the development of software, testing, installation, etc. Cloud environment is a customizable environment, without the need for any special hardware and software, with easy integration and optimal use of resources. The most important advantage of Cloud is optimized resource management. In fact, the combination of Agile methodologies and Cloud computing, has caused to new techniques and tools. The most important benefits of this combination are

1 Adoptive Cloud Development

32

Shahrzad Haghshenas et al./ IJSET Vol. 2, No.1 (2016)

has been taken of distributed grid computing space and leads to significant reduction of projects cost in software companies. Singh et al [12]expanded early Agile method called Adoptive Software Development (ASD) to develop and introduce ACD, which helps to decrease costs and greater customer satisfaction. In this study they aim to reduce the complexity, time, cost, and quality enhancement, reuse of resources and user satisfaction while using the Cloud. In fact, ACD is a great way for organizations because it can identify all customer requirements through the Cloud. Despite all the theories related to Cloud, the overall solution on Cloud satisfies customers’ demands and ASD has specific solutions in this field. The main purpose of this study was to manage a new dimension of communication between software engineers and the role of developer Cloud environment include: speculator Cloud, Cloud collaboration and Cloud learner but this method does not discuss about the risks may happen. Kalem et al. [13]discussed about Agile methodologies for Cloud environment. The main purpose in this study was to show how to achieve benefits including increased quality, better use of available resources, and reducing the time and cost. In this study, a company named Sprint, employed data and Cloud models and implemented a hybrid Cloud model. In fact, the hybrid Cloud included private and public Cloud that the company receives from a server. Users can access a server within the private storage, network and application services over their software development process. Department of software development can do the solution that is proposed to be used by Google's public Cloud using WAN (PaaS). Google engine is used during software development and testing. That study also discussed about the characteristics and features of private and public Cloud. Private Cloud contains large IT services and gives it to partners as part of the core of the system, data is evident and they have to use special firewalls for keeping security. Public Cloud is for when a very large number of users with their own applications and standard programs are working, when the test and codes are appropriate. That study explored and compared the methods of Agile software development methodologies with and without Cloud but there is no emphasis on testing in Agile using Cloud. Raj et al. [14] just spoke on software testing phase. The test phase can be any size and recursively done by software testers. Whenever an error in the software was developed, this information is immediately available to the software developers to solve the problem as soon as possible. They also discuss about one of the Scrum as an Agile methodology. In any phase of Scrum Agile testers are ready to test. In the planning phase testers have to identify changes of the customer requirements. Then, team communicates with the customer and tests are performed by the customer automatically or manually.

Fig.1. Cloud Computing and its Services

In another study on the synergy of software engineering generally and Agile methodologies specially[5, 6] and Cloud computing, experts conducted a survey[7]. The results showed that the combination of them leads to correct classification, increasing the use of resources and customer satisfaction. They also showed that many benefits can be increased agility with the help of Cloud space. Jain and Rani [8] did several research studies about Agile methodologies and Cloud. One of the problems discussed in these studies is the fact that the requirements are not fixed. They are also changing the business environments. Agile software development processes and effective use of favorable conditions issued by Cloud computing applications in an iterative manner and consistent user response created. Shorter development time, high stability and workload, initial feedback from customers, team productivity, and lower cost are some of the advantages of CC combined with Agile methods. Willie and CollabNet [9]addressed this issue in Agile methodologies that immediate feedback is the most important issue but the new advances in information technology can prolong feedback cycle. So in order to reduce cycle duration, using a development of automatic feedback is required. CC provides the tools and access to business spending as well as communication with other Cloud with intelligence, integration, and additional analysis. In the Cloud-based Agile methodology, data is distributed and shared to properly manage an Agile project with a service to help organizations. In this study, TeamForge supports Agile methodologies through version control software with immediate supply of virtual servers and security. Another study introduced tools to facilitate the software development process[10]. This study introduced system dynamic modeling and simulation environment that uses Cloud-based software and can be used by small and medium companies. Their development process is based on Scrum methodology. The main purpose of this model is that saving budget and time. During the simulation, they did not considered all variables, but those variables that had a big impact on software development process. Landmark [11] announced that Cloud is the best space for Agile software methodologies. He believed that the combination of Agile methodologies and Cloud increases customer satisfaction, development speed, enhance customer relationships, and increases production rates in many reputable companies. Zhang et al. [10] explained that Cloud

33

Shahrzad Haghshenas et al./ IJSET Vol. 2, No.1 (2016)

III. COMPARISON OF ACCELERATING AGILE METHODS WITH AND WITHOUT CLOUD Agile methodologies comprise several principles including customer satisfaction, responding to changes in requirements, preparing a continuous version of the program, continuous interaction with stakeholders, maintaining steady and rapid project progress, maintaining technical excellence, good design, and reflect and adjust on an ongoing basis. ACD model is used to accelerate software project development[11]. This model has faster search by categorizing components, and the development of Cloud-based methodologies for customer satisfaction compared with the previous methodology, and according to customer requirements. Let's look at how Cloud has been able to use this model on different phases of Agile methodologies and the development of these methodologies is affected. For example phases of requirements, analysis, software architecture, implementation, project management, less space and use of resources cause to enhance customer satisfaction and continuous production version. The evaluation of Adaptive Cloud Development Model has been summarized Development Phases

Roles

Requirement Gathering Analysis

Cloud Provider, Software Developer Cloud Speculator, Software Developer Cloud Speculator, Software Developer Cloud Collaborator, Software Developer Cloud Learner

Design Coding Testing Deployment

Cloud Learner, Cloud Provider

No need for infrastructure development and Eliminating the need to invest

The need for infrastructure development and requires investment flexibility and high cost

[14]

There's no need to have the software, hardware and network

Buy software, hardware, network and security required

[15]

Allocation of resources can be at any time and any way according to demands

It is possible to allocate a lot of resources for large software projects and a shortage of resources faced In the early stages of development, sharing, commenting takes too long

[2]

Customers at any time don’t have access to software code online

[14]

Cloud environment enables sharing, commenting and improvement of various models for a group Customers at any time have access to the Internet to access to software code online Less time is required due to rapidly understand the requirements

Description

Elicitation, Resource accounting Software Architecture, Planning Interface Design, Estimation Construction, Implementations Integration and System Testing Operation and Maintenance

The model will be used widely if the model-based design, design patterns and the analysis based on UML are combined. Important ways that ACD model tends to increase the speed of Cloud-based models including preparing programs based on Cloud, transforming the rapid development of parallel activities of software reuse, encourage innovation and testing available the development of operating systems and external services. Table 2 shows how Cloud can facilitate Agile software development and compares Agile software development with and without Cloud advantages. Studies have been done on all rows Table 3 show that all these studies emphasis on usage of Agile methodology in collaboration with Cloud. Table 2. Comparison of Agile methodologies with and without Cloud Agile development Agile development Study using Cloud without Cloud computing computing

34

[1, 12]

Using a distributed environment for universal access

The need for more resources for availability to all

Depreciation reduces operating systems 30 to 50%

Depreciation increases the operating system and requires strong service

[14, 16]

Software testing without the need for special test environment

Need test environment for software testing

[14]

Service focus

People focus

[14]

Flexible on demand

Rigid

[14]

in Table 1. Table 1. Assessment of the Adaptive Cloud Development Model[12]

More time is needed for software development

[8]

[16]

Distributed and high fault tolerance and parallelism

Centralized, limited parallel and fault tolerance

[14]

Large scale sharing

Limited sharing

[14]

In the Cloud space as a whole and at the same time, all developers can work on their codes and test their owns

Developers are forced to test the environment to do this test because maybe codes can only run on a system

[14]

Shahrzad Haghshenas et al./ IJSET Vol. 2, No.1 (2016) Table 3. Phases of Agile manifesto principles in collaboration with Cloud Phases principles Analysis and Requirement Satisfy the customer, deliver working Gathering software frequently and empower selforganizing teams Design Satisfy the customer, deliver working software frequently Implementation Satisfy the customer, deliver working software frequently Testing Satisfy the customer, deliver working software frequently, welcome changing requirements Project Management Interact frequently with stakeholders, satisfy the customer, deliver working software frequently

V. CONCLUSION The purpose of this paper is to show the advantages of using Agile methodologies with Cloud on how this combination saves time and money as well as available resources. Agile Cloud Development introduces a new model that causes greater efficiency and faster development of software projects in the Cloud. All customers in everywhere and at any time can do online tests. Despite of the issues and problems, Cloud can be a good strategy combined with Agile methodologies and to improve software development projects and the agility.

A. Phases of Agile Manifesto Principles In Collaboration With Cloud Agile methodologies are all based on principles that speed up development in software projects. These principles are: satisfy the customer, deliver working software frequently, welcome changing requirements, interact frequently with stakeholders, reflect and adjust continuously and Empower self-organizing teams [12].

VI. FUTURE WORK It is anticipated that in the future, all companies will use Cloud computing over their software development. Also ACD model can be extended to provide more reusability and better use of components. REFERENCES

B. Acceleration in Agile Development and Testing using Cloud Computing Since organizations can’t able to judge whether the software is properly working according to the requirements of customers, testing phase has become a very important phase in developing process. Table 4 compares testing phase with and without Cloud.

[1]

Table 4. Testing phase of Agile with and without Cloud Testing without Cloud Testing with Cloud We have to establish the connections, There is no need to define firewall defining firewall policies of and connections connection which takes a lot of time

[5]

Making copy of software needs some programs and more time

On a single click copy of your development environment is created

[7]

The code developers have to run from one place to another for solving their queries and sometime the code only runs on one machine

Cloud helps the developers to work together same environment in real time where all the bugs can be resolved

[8]

Customers Can not add new features and Validate Throughout Development/Testing[14]

Customers Can not add new features and Validate Throughout Development/Testing

[2] [3]

[4]

[6]

[9]

[10]

IV. CHALLENGES

[11]

First and the most important issue is the security challenge in Cloud space. It is mainly because each person puts his information by using someone else’s computer. Also, loss of data due to concurrent execution of multiple applications, is possible[17] or controls the encryption/decryption keys also Users must keep up to date with application improvements to be sure they are protected[18]. Also Cloud may cause more costs, particularly in a hybrid Cloud that there is rotating data.

[12]

[13]

[14]

35

V. E. Jyothi and K. N. Rao, "Effective Implementation of Agile Practices–In Collaboration with Cloud Computing," 2014. Jun-Feng and Z. J.-T. Zhou, "Strategies and Methods for Cloud Migration," 2014. F. Paulisch, "Software architecture and reuse-an inherent conflict?," in Software Reuse: Advances in Software Reusability, 1994. Proceedings., Third International Conference on, 1994, p. 214. I. Chana, "Sukhpal Singh," in Conference on Web Engg, 2006, pp. 305-312. D. Turk, R. France, and B. Rumpe, "Limitations of agile software processes," arXiv preprint arXiv:1409.6600, 2014. R. Guha and D. Al-Dabass, "Impact of web 2.0 and cloud computing platform on software engineering," in Electronic System Design (ISED), 2010 International Symposium on, 2010, pp. 213-218. H. Gomaa and G. Farrukh, "Composition of software architectures from reusable architecture patterns," in Proceedings of the third international workshop on Software architecture, 1998, pp. 45-48. A. Nazir, A. Raana, and M. F. Khan, "Cloud Computing ensembles Agile Development Methodologies for Successful Project Development," International Journal of Modern Education and Computer Science, vol. 5, p. 28, 2013. A. Tuli, N. Hasteer, M. Sharma, and A. Bansal, "Empirical investigation of agile software development: cloud perspective," ACM SIGSOFT Software Engineering Notes, vol. 39, pp. 1-6, 2014. L. Cocco, K. Mannaro, and G. Concas, "A Model for Global Software Development with Cloud Platforms," in 2012 38th Euromicro Conference on Software Engineering and Advanced Applications, 2012, pp. 446-452. C. Larman, Agile and iterative development: a manager's guide: Addison-Wesley Professional, 2004. S. Singh and I. Chana, "Introducing agility in cloud based software development through ASD," International Journal of u-and eService, Science and Technology, vol. 6, pp. 191-202, 2013. S. Kalem, D. Donko, and D. Boskovic, "Agile methods for cloud computing," in Information & Communication Technology Electronics & Microelectronics (MIPRO), 2013 36th International Convention on, 2013, pp. 1079-1083. G. Raj, A. Raana, and A. Jaiswal, "Emphasis on Testing Assimilation Using Cloud Computing for Improvised Agile SCRUM Framework," 2015.

Shahrzad Haghshenas et al./ IJSET Vol. 2, No.1 (2016) [15] [16]

[17] [18]

D. D. a. D. B. S. Kalem, "Agile Methods for Cloud Computing," 2013. F. Almudarra and B. Qureshi, "Issues in adopting Agile Development Principles for Mobile Cloud Computing Applications," 2015. S. Mavi, "Cloud Computing: Security Issues and Challenges," IITM Journal of Management and IT, vol. 7, pp. 25-31, 2016. K. Popović and Ž. Hocenski, "Cloud computing security issues and challenges," in Proceedings of the 33rd International Convention. IEEExplore, Opatija, 2010, pp. 344-349.

36

Suggest Documents