Difference between revisions of "Agile software development"

From Wiki @ Karl Jones dot com
Jump to: navigation, search
Line 1: Line 1:
'''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.  
+
'''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.  
  
It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.
+
== 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.
 
''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.
Line 11: Line 13:
 
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.
 
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.
+
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.
 
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.
Line 19: Line 21:
 
== See also ==
 
== See also ==
  
 +
* [[Deliverable]]
 +
* [[Iteration]]
 +
* [[Scrum]]
 
* [[Software development]]
 
* [[Software development]]
 
* [[Software development process]]
 
* [[Software development process]]
 +
* [[Sprint]]
 +
* [[Standup]]
 
* [[Waterfall model]]
 
* [[Waterfall model]]
  

Revision as of 05:51, 9 September 2015

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

External Links