A Quick Rundown of Agile Methodologies

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.

Updated: April 13, 2011 — 10:00 pm