Day 42 — Agile series 4/7: “Kanban”
Do you ever feel that you’re constantly being chased by the Sprint deadline in a Scrum team? Have you ever wished that you can design/develop a feature from end to end, rather than working on independent user stories that are fractions of different things? If you were frustrated by one of the situations above, Kanban might be the right answer for you.
The last 2 days I wrote about Scrum and Lean, the two most popular Agile frameworks in software development. Today, I’d like to introduce Kanban, a tool and methodology that brings more color, not only to Agile software development, but for any types of project management. In this article, I’ll cover the following topic:
- What is “Kanban”
- Why is it helpful
- How to adopt the method
- Compare to Scrum
What is Kanban
Kanban, Japanese word for “advertising board”, is one of the most popular tools in software product development. Whether you’re using Scrum, Lean, or other method, Kanban board (figure below) is a great tools to help you understand the workflow and monitor the progress.
A two-sentence history
Kanban is also one of the many methods (just like “Lean Manufacturing”) created/included in Toyota’s TPS car manufacturing system. The success stories and case studies were later adopted/transformed into one the most popular software development tools/frameworks.
The Work Flows~~~
To understand and use the Kanban, it’s a visualized workflow the “flows” from left to right on a board (see figure below). In the beginning of the project, every small piece of work is written on a card. and put them all on the first column (the To-Do, or Backlog column). When the team starts working on these small-chunk of work piece by piece (or card by card in this case), team members move the cards they are work onto the corresponding stages/columns.
The main ideas of Kanban
There are 3 main characteristics about Kanban:
- It’s a tool to help any types of project team to organize work and monitor efficiency through visualizing the workflow status.
- The key elements on the Kanban board is the scope of work that’s broken down work into manageable smaller pieces .
- It limits the amount of work allowed in each stages (columns) so that the the team is always in a healthy and sustainable way to deliver.
Why is Kanban Helpful
Through experimenting different types of software development frameworks and tools, we learned that one of the key factors is the process transparency. Kanban helps bring the transparency to the whole team, not just the individual contributors like designers/developers, but also product managers, business team and other stakeholders (e.g. legal, compliance, risk, etc.) The transparency is great for three reasons:
- Everyone can see the progress, therefore eliminate the fear of uncertainty and reduce conflict
- The visualized workflow board also help others (e.g. stakeholders, partners) understand delivery velocity therefore help manage stakeholders’ expectation
- It motivate people to focus on work because they see clearly what card is moving and what card is not
Other benefit
There are other known benefit of adopting Kanban, such as:
- Project team are not mentally tided to a fixed cycle, which tends to affect their performance stability (e.g. being lazy in the first couple days in a Sprint, then rush before the Sprint deadline)
- Great responsiveness when priorities change, especially when it changes frequently
- Ensure quality delivery by limiting the the amount of work being done
- Compared to other framework, it’s a simplified process which means it’s easy to adopt, and easy to maintain
How to Adopt Kanban
Here’s a simplified 6-step process to quickly adopt Kanban tool:
- Breakdown work into smaller size user stories or tasks
- Write them down into cards and put them on the 1st column of the board
- Based on the user stories or tasks, discuss with team what are the required stages/columns are
- Once the team start working on the project tasks, moving those cards to the corresponding columns
- Create a ritual/routines (e.g. daily standup) to discuss the progress, issues, velocity with team members
- Revise the task amount limit in each column based on team velocity
Advanced tips
- If needed, prioritize the total work, and identify the effort of each with T-shirt sizing technique
- If it’s a large size project, create multiple “swimlanes” (see figure below) to better organize the board and prioritize the work
- On the back of each card, write down the background info of the task as a quick reminder of what this task is and how it fits into the broader picture
Resource
Kaban Cheat Sheet: https://www.eylean.com/blog/wp-content/uploads/2017/05/Kanban-Cheat-Sheet.png
Comparing to Scrum
For people who are using Scrum framework, they might identify similarity of the “moving cards on a board” part. However, there are some major differences between Scrum and Kanban as listed below:
- Overhead: Scrum is process driven framework, which is heavy on rituals, routines, and management. Dedicated Scrum Master is the key for Scrum team to be successful. Kanban, however, is a lighter weight framework, which is easy to understand and adopt, and almost any team member can uses it without dedicated professional’s help.
- Cadence: Scrum has a clear cadence (1-N week Sprint), which could be a double edge sword. Kanban is light on scheduling but heavier on self-governance. In other words, the flexibility of Kanban allows people to succeed, but if the team is not motivated enough to focus on speedy delivery, there’s not much of a built-in governance model in Kanban to remediate slow delivery
- Iteration: The clear-cut Sprint cycle in Scrum helps team to deliver in time, but sometimes the clear cut might slice the meaningful delivery into meaningless fractions. Kanban, on the other hand, has the flexibility for team to build end-to-end features/ journey without specific time constraints.
Summary
- Kanban’s visualized board brings transparency and collaboration opportunities to both project team and stakeholders;
- Strict with the capacity intake, but loose about delivery timeline, makes Kanban a good tool to adopt when the project priorities are volatile;
- The simplicity and flexibility makes Kanban easy to adopt and easy to change based on different project needs. However, it doesn’t provide tighter project control, and relies on highly effective self-organized team to make it work.
Do you have any pro tips of using Kanban that you want to share? I’d like to learn from you.
ABC. Always be clappin’.