The seven most popular agile development methods

When the Agile Manifesto was created, there were quite a few “lightweight” development processes; Other such methods have since emerged. They are now collectively referred to as “agile” methods.

  • Agility is a way of thinking and acting.
  • Agile is a state of mind, a set of values and principles.
  • Agile is about short cycles, iterative and incremental delivery, rapid failure, getting feedback, delivering business value to customers early, and about people, collaboration and interaction.

Agile is a way of thinking about transparency, inspection and adaptation. However, agile does not contain any roles, events, or artifacts. This is a state of mind.

For example

Scrum is one of the widely used frameworks under the umbrella of agile methods.

It can help you become more agile, but there are more frameworks in the agile movement, such as Kanban, XP, crystal, etc., as shown in the figure below:

1. Scrum

This is a very popular method that borrows the name football scrum and uses it as a metaphor for:

  • Daily standup meetings,
  • Scrum has short iterations. Each iteration focuses on delivering working software developed by the Scrum team,
  • Sprint and products have a strict priority “backlog”, and
  • A “product owner” role is assigned to set the priority.
  • A “Scrum Master” to maintain the agile best practices

2. Extreme Programming (XP)

XP is a set of engineering practice. Developers must go beyond their capabilities to implement these practices. The team plans a small amount of work and builds in a short period of time called a 1–4 week iteration.

The main difference between XP and other iterative frameworks is that XP focuses on software engineering practices that need to reach extreme levels. For example, XP regards code review as extreme and encourages peer review 100% of the time through pair programming.

3. Rapid Application Development (RAD)

Rap is not only the general name of a series of agile and iterative methods, but also a method described by James Martin (1991). Rad is responsible for the analysis, design, build and test phases, and iteratively develops prototypes and versions of increasing functions.

4. Dynamic Systems Development Method (DSDM)

DSDM is an agile software development method. It is an iterative and incremental method, mainly based on rapid application development (RAD) method.

However, RAD approach is usually unstructured and there is no common process between rad teams. As a result, each organization has established its own methods and framework and divided standards, making it difficult to recruit experienced rad practitioners. In order to solve this problem, DSDM came into being.

The method provides a four stage framework, including:

  • Feasibility and business study
  • Functional model / prototype iteration
  • Design and build iterations
  • implementation

5. Unified Process (UP)

Up is an iterative and incremental framework with several implementations, including RUP, Open-UP, and Agile-UP. A highly tailorable framework with architecture centric and risk centric rad approach. Each stage of UP is called initial stage, elaboration stage, construction stage and transition stage, and each stage has different emphases.

6. Lean Approach

Lean originated in the manufacturing industry in the 1970s. Mary and Tom Popendieck (2003) applied Lean principles to software development in their book lean software development. Lean focuses on delivering value to customers and eliminating waste in processes.

7. Kanban Board

Kanban: an approach that originated in Lean manufacturing and has been further developed by David Anderson (2010). Kanban is based on workflow visualization, typically on a physical board, addressing issues that cause problems, limiting the team’s work in progress and balancing the demands on the team.

Summary

Agile development is one of the hot words in the software development industry. It is a different way to manage software development projects. It is not a specific software development method, but a general term for a set of methods and practices based on the values and principles expressed in the Agile Manifesto. Solutions are developed through collaboration between self-organizing, cross functional teams, using appropriate practices appropriate to their environment.

There are many other agile methods in use today. This includes hybrid methods such as scrumbancrystal, BDD, TDD, FDD and etc., as well as many internal customizations developed by various companies.