Three Types of Agile Methodology
In this chapter, we'll look at three varieties of Agile methodologies, namely SCRUM, Kanban, and Extreme Programming (XP). The goal of this chapter is to give a very brief introduction to each so that you can compare and analyze them side by side.
How does SCRUM work? Here's a quick summary:
A team works in short cycles (called sprints) that are typically 2-4 weeks long.
A prioritized list of requirements called the product backlog is created.
Before each sprint, a number of features are chosen from the product backlog to be part of the cycle. The team will choose a list of features they believe they can complete during that sprint.
Each day, the team meets briefly in a stand-up meeting to discuss progress.
At the end of the sprint, the completed work should be in a state that is ready for release. The team then reviews the sprint and reflects on what they have learned and what they can improve upon for the next cycle.
Here's a visualization of this process :
Kanban is an Agile methodology that encourages flow and seeks to keep work items from being stuck, blocked, or delayed.
The idea is that the team works on fewer items at a time focusing on reducing the time spent on each stage of development. This way there is not a lot of time between when tasks or features start and finish.
There are key guidelines for implementing Kanban:
Limit "works in progress." The key to Kanban is to limit the number of items in development (tasks or features), not so that you do less but rather that you start and complete more items.
Visualize workflow. Put all work items on a wall and use columns to denote their status. This allows the team and the whole office to see the progress.
Manage flow. By analyzing the point at which items get stuck, blocked, or slowed down you can identify (and then remove) bottlenecks.
Improve collaboratively. Continuous improvement and teamwork are vital concepts in Kanban.
Extreme Programming (XP)
Extreme Programming or XP is an Agile framework that focuses a lot on the quality of practice and the habits of the software practitioner (i.e., the developers on the team). Its main guidelines are as follows:
Developers will adhere to coding standards, all writing code the same way.
Use test-driven development. This is a process where developers write the code for a test that a feature should pass (or validate) before proceeding. It is a key part of XP.
Developers write code in pairs. Usually, one developer writes the test code and the other writes feature code.
Work is done in short iterations (usually two weeks) and planning happens before each iteration.
Just enough design and architecture are involved to build the features for the current iteration.
Code is frequently checked against the master code base so errors can be instantly detected (this is called continuous integration of code with the code base).
SCRUM, Kanban, and Extreme Programming (XP) are all varieties of Agile frameworks for product development.
They are all consistent with the principles in the Agile Manifesto.
While there are some notable differences between them all, they do share some common elements: short coding cycles, improved communication, just-in-time planning and prioritization, facilitation of learning and improvement, and adaptation in order respond to change in the business environment (i.e., requirements).