Agile software development
Agile software development (or simply Agile) is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.
Description
Agile promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.
The Manifesto for Agile Software Development, also known as the Agile Manifesto, first introduced the term agile in the context of software development in 2001.
Agile versus Waterfall
Agile is commonly compared to the Waterfall model.
One of the differences between agile and waterfall is the approach to quality and testing. In the waterfall model, there is always a separate testing phase after a build phase; however, in agile development testing is usually done concurrently with, or at least in the same iteration as, programming.
Because testing is done in every iteration -- which develops a small piece of the software -- users can frequently use those new pieces of software and validate the value.
After the users know the real value of the updated piece of software, they can make better decisions about the software's future. Having a value retrospective and software re-planning session in each iteration—scrum typically has iterations of just two weeks—helps the team continuously adapt its plans so as to maximize the value it delivers.
This iterative practice also introduces a product mindset rather than the waterfall model's project mindset. Software can be seen as a living organism, which actively changes due to environmental change. As long as the software is being used, especially when it has competition, iterations in agile software development drive the change.
See also
- Deliverable
- Iteration
- Scrum
- Software development
- Software development process
- Sprint
- Standup
- Waterfall model
External Links
- Agile software development @ Wikipedia