Agile development methods apply timeboxed iterative and evolutionary development, adaptive planning, promote evolutionary delivery, and include other values and practices that encourage agility rapid and flexible response to change. If agile methods have a motto, it is embrace change.[1] If agile methods have a strategic point, it is maneuverability.
It is not possible to exactly define agile methods, as specific practices vary. However, short timeboxed iterations with adaptive, evolutionary refinement of plans and goals is a basic practice various methods share. Thus, the book title and opening material includes iterative development, which lies at the heart of agile methods.
In addition, they promote practices and principles that reflect an agile sensibility of simplicity, lightness, communication, self-directed teams, programming over documenting, and more.
Example practices from Scrum include working in a common project room and self-directed teams that coordinate through a daily stand-up meeting with special questions each member answers. Example practices from XP include using terse notes on paper story cards to summarize requirements, programming in pairs, and working in a common project room with full-time participation by requirement donors so that detailed written requirements can be replaced with ongoing verbal explanations.
As a distinct software process concept, agile is newer than iterative. Most older IID methods (such as Evo and UP) were not strongly agile in their original definition, although many methods can be applied in an agile spirit with the right understanding. Although it is possible to imagine truly un-agile IID methods, as a practical matter they are rare or are quickly adopting agile values and practices it is hard to find someone promoting un-agility! |