agile methods overview
The foundations of agile ways of working is the "Agile Manifesto" from 2001, in which a group of 17 software developers formulated a set of agile values (and principles) aimed at improving software development:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
This leads to principles that advocate a collaborative, iterative, and incremental approach that can address current needs as well as future needs. Iterative refers to an approach that repeats a process until a desired result is achieved. Ideally, only an initial functional version of a product component is developed. This must meet the identified needs without being perfect. It can be tested under real conditions and subsequently improved. Incremental refers to a step-by-step approach in which the project grows organically. This is in contrast to waterfall models, which progress a project linearly, i.e. define different phases with a start and end point.
The advantages of such an agile approach are:
- Flexibility: Agile teams can react quickly to the unexpected and to newly discovered or emergent needs. The resulting effort is re-estimated by the team.
- Real-time project progress transparency: the customer can make adjustments and view resource consumption throughout the project.
- Regular exchanges create a high level of trust among team members and with the client(s), minimizing friction in day-to-day work.