2.6. What are Agile Methods and Attitudes?
Agile development methods usually apply timeboxed iterative and evolutionary development, employ adaptive planning, promote incremental delivery, and include other values and practices that encourage agility rapid and flexible response to change.
Figure 2.4. Evolutionary analysis and designthe majority in early iterations.
TDD p. 385 Any iterative method, including the UP, can be applied in an agile spirit. And the UP itself is flexible, encouraging a "whatever works" attitude to include practices from Scrum, XP, and other methods.
The Agile Manifesto and Principles
The Agile Manifesto
Individuals and interactions | over processes and tools |
Working software | over comprehensive documentation |
Customer collaboration | over contract negotiation |
Responding to change | over following a plan |
The Agile Principles
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. | 8. Agile processes promote sustainable development. |
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. | 9. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. |
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter time scale. | 10. Continuous attention to technical excellence and good design enhances agility. |
4. Business people and developers must work together daily throughout the project. | 11. Simplicitythe art of maximizing the amount of work not doneis essential. |
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. | 12. The best architectures, requirements, and designs emerge from self-organizing teams. |
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. | 13. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. |
7. Working software is the primary measure of progress. |