How many agile methodologies are there? If you were to include variations on a theme, I think the number would be almost infinite. Let’s stick to basics. Here’s a brief rundown of the approaches that software development teams can use to be agile:
- Scrum – Probably, the most widely used agile approach — if you include the many variations often referred to as “Scrum-but”. Scrum is lightweight, easy to adopt, but hard to do well.
- eXtreme Programming (XP) – More complete and rigorous than Scrum. It covers many aspects of writing good software, not just the planning and testing.
- Kanban – Patterned after the Toyota manufacturing system. It works on the principle of the team pulling work from a queue rather than having the work pushed at them. Limiting work-in-progress is key.
- Lean Software Development – As the name implies, this approach seeks to minimize waste in every aspect of development. It shares some concepts with Kanban as they are both used at Toyota.
- Crystal – This is actually a family of methodologies. It is adaptable because different situations may require variations on the core themes.
- Dynamic Systems Development Method (DSDM) – Requirements management is a key component of this approach which can be combined with other approaches such as XP.
- Feature-Driven Development (FDD) – Software is built as a collection of small and valuable features as determined by the business. Iterations are short and feature-driven.
Test-Driven Development (TDD) – A derivative of XP and not a separate methodology. It relies on writing tests before writing the underlying code and can be used in conjunction with any of the approaches above.
Did I miss one? Is there something you’d like to add? Please comment.