Agile Methods Presentation By: Jason Abbett
Definition A process to rapidly develop software Many kinds of agile methods but few are practiced
Allows developers to focus on software Supports rapid requirement change Deliver working software quickly Benefits
Principles of Agile Methods Customer involvement Incremental delivery People not process Embrace change Maintain simplicity
Extreme Programming (XP) System requirements are expressed as scenarios (user stories) Programmers work in pairs Develop tests
Release Cycle Select User Stories Break down stories to tasks Plan Release Develop Integrate Test software Release Software Evaluate System
Extreme Programming Practices Incremental planning Small releases Simple design Test-first development Refactoring Pair Programming Collective Ownership Continuous integration Sustainable pace On-site customer
Testing in XP Test-first development Incremental test development User involvement User of automate test harnesses
Pair Programming Common ownership and responsibility Informal review process Software Improvement
Summary Agile methods are good for small to medium sized companies Should not be used for large-scale systems Should not be used for critical systems