Agile Software Development
 
Definition : Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams
Agile Manifesto reads, in its entirety, as follows:
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Twelve principles underlie the Agile Manifesto, including:
- Customer satisfaction by rapid, continuous delivery of useful software
 - Working software is delivered frequently (weeks rather than months)
 - Working software is the principal measure of progress
 - Even late changes in requirements are welcome
 - Close, daily cooperation between business people and developers
 - Face-to-face conversation is the best form of communication (co-location)
 - Projects are built around motivated individuals, who should be trusted
 - Continuous attention to technical excellence and good design
 - Simplicity
 - Self-organizing teams
 - Regular adaptation to changing circumstances
 
 Agile methods
 
Well-known agile software development methods include:
- Agile Modeling
 - Agile Unified Process (AUP)
 - Dynamic Systems Development Method (DSDM)
 - Essential Unified Process (EssUP)
 - Extreme Programming (XP)
 - Feature Driven Development (FDD)
 - Open Unified Process (OpenUP)
 - Scrum
 - Velocity tracking
 
Related Information
