The most popular agile project management methodologies include Scrum, Lean, Kanban, Feature Driven Development (FDD) or Extreme Programming (XP). These methodologies share much of the same philosophy, characteristics and practices. However, each has its own recipe of practices, terminology, and tactics.
Scrum is a lightweight agile project-management framework. Scrum is broadly popular due to its simplicity and proven productivity.
The name Scrum is an adaptation of the word “scrummage”, taken from the game rugby. In rugby, a scrummage (“scrum” for short), is the method used after a foul to restart play in a match. The term Scrum was introduced by Takeuchi and Nonaka in a study published in Harvard Business Review in 1986. They explained that projects using small, cross-functional teams historically produce the best results. They relate high-performance teams to “scrums” in rugby.
With Scrum methodology, the “Product Owner” works closely with the team to identify and prioritize the functionality that needs to be delivered. The “shopping list” is kept in a Product Backlog that consists of features, bug fixes, and whatever needs to be done to deliver the product.
The backlog is regularly prioritized, then continuously delivered in short, two-to-four- week cycles called iterations. At every iteration, the team looks at the backlog and decides what they can accomplish in the next cycle. The team develops and tests their solution until it’s ready to use. At the end of the cycle, the team demonstrates their accomplishments to the product owner and stakeholders.
Finally, the team reflects on how things went during the iteration. The goal is to become better by analysing what can be done to improve the working practices. That’s it. The short time frame and the focus on a completed product empowers the team to deliver fast.
LEAN SOFTWARE DEVELOPMENT
Lean Software Development owes much of its principles and practices to the Lean Enterprise movement and the practices of companies like Toyota. The framework determines the principles for achieving quality, speed & customer alignment.
The seven key principles of Lean Software development are:
- Eliminate waste
- Build quality in
- Create knowledge
- Defer commitment
- Deliver fast
- Respect people
- Optimize the whole
In a nutshell, Lean eliminates anything that doesn’t add value. Lean empowers the team to work only on what’s absolutely necessary. It means eliminating useless meetings, tasks and documentation.
Kanban revolves around a visual process-management system that enables a better understanding of work and workflow. A Kanban board is a tool that allows teams to visualize and optimize the steps in their work. Mapping your team’s workflow makes the progress transparent and helps the team understand where the product stands. Here’s one example of a Kanban board:
Sometimes a physical wall is used as a Kanban board. It gets the team around the board and helps making the progress tangible and transparent.
Kanban’s main principles are:
- Visualize your work
- Limit the work in progress
- Be transparent
- Enhance flow
- Focus on continuous improvement.
EXTREME PROGRAMMING (XP)
XP is one of the most popular and controversial agile methodologies. XP is a disciplined approach that focuses on delivering high-quality software quickly and continuously. It has been exactly that strict discipline which has become so controversial. The framework is sometimes difficult to adopt due to the rigidity of some of its practices. At the same time, XP is more tolerant of changes than other agile frameworks. In fact, lowering the cost of change is in the DNA of XP.
The original XP core principles are:
XP is still an evolving framework. It continues to be adjusted to assimilate lessons from experiences in the field, and incorporating learnings from other agile practices.
DYNAMIC SYSTEM DEVELOPMENT METHOD(DSDM)
DSDM is an evolution of the rapid application development (RAD) method. The RAD method was very popular in the ’90s. As an alternative to heavy design specifications, RAD recommends the use of prototypes throughout the development cycle to iterate and arrive at the final product.
Requirements are sketched at a high level at the beginning of the project and prioritized together with the customer, following the MoSCoW Rules:
M – Must have requirements
S – Should have, if at all possible
C – Could have, but not critical
W – Won ‘t have this time, but potentially later.
All requirements marked as critical must be completed in a DSDM project.
The DSDM project framework is sometimes used in combination with other agile methodologies.