This chapter will briefly introduce three popular agile frameworks: Scrum, Kanban, and Extreme Programming (XP), so you can compare and analyze them side by side.
How does Scrum work? Here's a quick summary:
A team works in short timeboxes (called Sprints), typically 2-4 weeks long but do not exceed a calendar month.
An ordered list of work needed for the product called the Product Backlog is created.
Before each Sprint, the Scrum Team co-creates a Sprint Goals for that Sprint, and they select necessary Product Backlog Items to deliver that goal.
Each day, the team meets for no more than 15 minutes in a Daily Scrum meeting to discuss progress towards the Sprint Goal and make any necessary plan changes.
At the end of the Sprint, the completed work should be in a state that meets the definition of done (DoD) and is ready for release.
The Scrum Team then holds a Sprint Review where they review what was accomplished, gather feedback, and discuss what they will do next.
The Scrum Team then inspects the Sprint during a Sprint Retrospective and reflects on what they have learned and what they can improve upon for the next Sprint.
Here's a visualization of this process:
While you may hear the term “stand-up” used in the industry, this term is not a part of the Scrum Guide and is not one of the five Scrum events. However, we will define it because the term is used often.
Generally speaking, a stand-up is where all participants stand for the duration of the meeting. The belief is that this motivates people to keep the meeting short.
A Scrum Team is not required to stand, and the Scrum Guide and experienced Scrum practitioners will understand the simple but powerful difference between a stand-up and a Daily Scrum.
Kanban is another agile framework highlighted in the Agile Manifesto. This is different from Scrum as it encourages flow and seeks to keep work items from being stuck, blocked, or delayed.
The idea is that the team works on fewer items, focusing on reducing the time spent on each development stage. This way, there is not a lot of time between when tasks or features start and finish.
There are fundamental guidelines for implementing Kanban:
Work in progress. The key to Kanban is to limit the number of items in development (tasks or features), not so you do less, but so you define and visualize the workflow. Collectively decide and place all work items on a wall and use columns to show their status. This allows the team and the whole office to see the progress.
Actively manage the flow. By analyzing where items get stuck, blocked, or slowed down, you can identify (and then remove) situations where there are too many tasks in a short time frame (bottlenecks). The Kanban system team should always work to unblock items as quickly as possible.
Improve the workflow. 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. In this process, 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 in building the features for the current iteration.
Code is frequently checked against the master code base to instantly detect errors (this is called continuous integration of code with the code base).
Scrum, Kanban, and Extreme Programming (XP) are all agile frameworks commonly used for product development.
They are all consistent with the principles in the Agile Manifesto.
While there are some notable differences between them all, they share some common elements: short coding cycles, improved communication, just-in-time planning and prioritization, facilitation of learning and improvement, and adaptation to respond to change in the business environment (i.e., requirements).
With those three frameworks now discovered, let's dig in the Kanban framework in the next chapter!