Agile methodology refers to a disciplined project management process encouraging frequent inspection and adaptation. Before the Agile methodology methods of software development tended to be slow, bureaucratic and inconsistent creating the need for a more adaptive method of software development. Agile methodology encourages teamwork, self-organization, and accountability. Most agile development teams comprise 5-9 employees and a single customer representative that work in a single open office to promote teamwork and cooperation.
Core Principles:
- Working software delivered frequently to customers
- Software is a measure of progress
- Even late changes are welcome
- Constant cooperation between business people and developers
- Simplicity
- Self-organizing Teams
- Adaptability
Agile Methods:
- Agile Modeling
- Agile Unified Process (AUP)
- Agile Data Method
- DSDM
- Essential Unified Process (EssUP)
- Extreme Programming (XP)
- Feature Driven Development (FDD)
- Getting Real
- Open Unified Process (OpenUP)
- Scrum
- Lean Software Development
Agile Practices:
- Test Driven Design
- Behavior Driven Development (BDD)
- Continuous Integration
- Pair Programming
- Planning Poker
More information and an example templates in Visio/TaskMap format