INTRODUCTION
Traditional methods such as Waterfall model were very popular to complete a project. But nowadays, developers face various problems while using it to develop a software. The major difficulties lie in the advent of modern technology and changing customer needs at every level during the development of a project. Of late, software systems are becoming more complicated than ever before in order to meet the enormous data and software requirements of social networking sites such as Facebook, Twitter, YouTube, etc. The conventional or traditional models are incapable of handling such large and complex systems, result in high costs and are more time-consuming
Apart from the above-mentioned shortcomings, one of the major handicaps of the traditional Waterfall model is that until the first phase is complete, the application does not proceed to the next phase. And if by chance there are some changes in the later stage of the cycle, it becomes very challenging to implement those changes as it would involve revisiting the earlier phases and carry out the changes. Thus, for handling modern-age large and complex software systems, and keeping pace with the continuous changing customer needs and requirements, agile methods were developed. In English, "agile" means "the ability to move quickly and easily" and responding swiftly to change. This is a key aspect of agile software development. This chapter focuses on "agile software development methods" for software engineering along with practical implementation and aspects of software engineering
WHAT IS AGILE SOFTWARE DEVELOPMENT
Agile is a way to manage projects. Agile Build breaks down larger projects into small, manageable chunks called iterations. At the end of each iteration (which generally takes place over a consistent time interval) something of value is produced. At the end of each phase, the product so obtained is shown to the users or stakeholders for their feedback before entering the next phase of software development. Unlike Waterfall project management, which is strictly sequenced and where you don't start designing until research is done and development begins only after designs are signed off, agile has designers, developers and business people working simultaneously. Thus, agile approach or agile method can be described as:
Agile Method: The Agile Method is an approach to project management in software development. This method assists teams in responding to the unpredictability of software development. It uses incremental, iterative work sequences that are commonly known as sprints. Agile methodology promotes continuous iteration of development/testing throughout the software development where both development and testing activities run concurrently.
All agile methods adhere to a set of rules described as Agile Manifesto, which are well-defined guidelines for the agile methods.
The above-defined agile manifesto can be elaborated as:
1. Individuals and interactions: In agile development, self-organization and motivation are important, as are interactions like co-location and pair programming.
2. Working software: Working software is more useful and important than just presenting documents to clients in meetings.
3. Customer collaboration: Requirements cannot be fully identified at the beginning of the software development cycle. Therefore, continuous customer or stakeholder involvement is very important.
4. Responding to change: Agile methods are focused on quick responses to change and continuous development.
The above-defined agile manifesto is based on twelve principles:
1. The highest priority is customer satisfaction by early and continuous delivery of valuable software.
2. Welcomes changing requirements, even in late development.
3. Working software is delivered frequently (in weeks rather than months).
4. Close daily cooperation between business people and developers.
5. Projects are built around motivated individuals who should be trusted.
6. Face-to-face conversation is the best form of communication (co-location) within a development team.
7. Working Software is the principal or primary measure of progress
8. Sustainable development should be maintained at a constant pace.
9.Continuous attention to technical excellence and good design enhance agility
10. Simplicity-the art of maximizing the amount of work done is essential.
11. Best architecture, requirements and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective and adjusts accordingly.
Sign up here with your email
ConversionConversion EmoticonEmoticon