Abstract

<p>Software engineering is a discipline that undergone many improvements that aims to keep up with the new advancements in technologies and the modern business requirements through developing effective approaches to reach the final software product, agile software development is one of these successful approaches. Agile software development is a lightweight approach that was proposed to overcome the convolutional development methods’ limitations and to reduce the overhead and the cost while providing flexibility to adopt the changes in requirements at any stage, this is done by managing the tasks and their coordination through a certain set of values and principles.</p><p>In this work, a comprehensive review that outlines the main agile values and principles, and states the key differences that distinguish agile methods over the traditional ones are presented. Then a discussion of the most popular agile methodologies; their life cycles, their roles, and their advantages and disadvantages are outlined. The recent state of art trends that adopts agile development especially in cloud computing, big data, and coordination are also explored. And finally, this work highlights how to choose the best suitable agile methodology that must be selected according to the task at hand, how sensitive the product is and the organization structure.</p>

Highlights

  • The Software Engineering expression is a very old expression; it was founded in 1968 by a NATO study group, they focused on the software problems and they encouraged to use the software in many activities in our lives

  • In the review study of Younas et al [34], they focused on techniques employed in cloud computing environment that are useful for agile development, and discussed the current state of cloud computing using agile software development practices the impact of cloud computing on agile development, and cloud challenges and benefits when adopting in agile software development

  • In this research we explained many types and methodologies for agile software development, each methodology has its own advantages and disadvantages, so there is no optimal methodology for all types of projects, each project has its own specifications, characteristics and needs to be done

Read more

Summary

Introduction

The Software Engineering expression is a very old expression; it was founded in 1968 by a NATO study group, they focused on the software problems and they encouraged to use the software in many activities in our lives. It can be seen from the definitions that the final product is important but the approaches and the steps that are needed to produce the software must be done in a systematic, disciplined and quantifiable way in all of the software life cycles By following these approaches’ characteristics, the resulted software will be more reliable, easy to maintain and meet the software requirements, especially when the size of the software is very huge and containing a lot of functionalities [1]. Many projects that follow the traditional software development methods addressed major problems, especially in the maintenance and the changes based on the user’s requests. Some of these changes may lead to major changes which are considered as a big problem in software development.

Agile Development Process
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Agile Software Development Versus Traditional Software Development
Agile Methods
Scrum method
The development phase or the sprint phase
The project closure phase
Scrum master
Extreme programming method
The Iterations to Release phase:
The Productionizing phase:
The Death phase
Big Data Systems Using Agile Development
Cloud Computing and Agile Development
Coordination and Agile Development
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call