Kanban is one of the most popular frameworks which is used to implement Agile software development. We are going to cover the following aspects of Kanban in this article:-
- Kanban Introduction: In this section, we will discuss - What is Kanban?
- Practices of Kanban: This will explain why Kanban was required, Kanban Practices, what was the purpose behind having Kanban and its history.
- Artifacts of Kanban: Here, we will try to understand Kanban Board and its parts like lists, visual cards, Work-in-progress limits, etc.
- Roles and Responsibilities of Kanban: Here, we will try to understand Kanban roles and responsibilities with the help of an example. We will also get to know the principles.
- Process Workflow in Kanban: Here, we will understand the process workflow with the help of the Software Development support team’s example & will also understand Kanban principles.
- Key Difference between Scrum and Kanban: Since people always compare Scrum with anything else, it is important to understand How Scrum is different from Kanban?
Let’s start with a basic introduction to Kanban-
What is Kanban?
Kanban initially emerged from the Japanese word, "Kan" which means “Visual” and “ban” means “card”. So it is a card containing all the information about the work finished at every stage of development. Kanban is one of the most popular methods amongst Lean teams as it is highly visual. Most of the Lean teams use Kanban to visualize and actively manage the creation of products with an emphasis on continual delivery without overburdening the development team.
It was first used and originated at the “Toyota Production System”. The software testing method, especially agile testing, has entirely adopted this framework or approach. Kanban processes are designed to help teams work more efficiently together.
It means, whatever the progress is, can be seen by everyone related to that process by using "Kanban Board".
Kanban Board can be a physical board or an electronic board. Just by looking at the Kanban board, you will be able to figure out what is currently under progress and what finished. It is a simple step that can produce significant insights. It can be effortless as well as very detailed, depending on the complexity of the process or the workflow.
Limiting Work in Progress:
In Kanban board - "Limiting WIP" means, finishing the task in hand first, move it to Done and then pull another work. It improves work quality.
Initially, you may not be able to understand your work limits, and you may have to observe how much work your team is ready to finish at one time. You can observe, collect data and then define WIP limits. We set WIP limits for each process.
"Limiting WIP" removes "incomplete work" or "partially complete work" waste from the process. Secondly, the client will also understand that there is limited capacity to do work, so they will also plan their priorities accordingly.
Kanban emphasize to manage workflow in a way that it:-
- Maximize the delivery of value to the customer
- Makes the entire process smooth
- Minimize time and cost.
To maximize the delivery of value, we need to ensure that we know- `
- What the customer expects
- What the current system can deliver
- What is signed off with the customer to deliver
Making Policies Explicit:
Explicit policies are a way of articulating and defining the process that goes beyond the workflow definition. These policies can be as simple as a checklist of steps that should be followed while doing any work, OR while picking up a new task.
These policies should be defined explicitly and visualized usually on the top of the Kanban board and if it is related to tasks/stage, then on the top of the respective column. It makes the process transparent. It brings everyone on the same page, and they know the standard procedure.
It also helps new people in the process as they know what they need to do.
Feedback loops are the crucial and integral part of any controlled process/System. Giving feedback and improving as per the given input in all areas of the process is very important. In Kanban, feedback is taken and applied not just within the team, but also between groups and team members and their hierarchical manager.
Kanban is an improvement method. Kanban follows the non-disruptive and slow process of change management. It means that the existing process is enhanced and worked upon in small, constant, and easy steps. Rather than a significant change, in Kanban, it is preferred to execute many tiny changes with a pace that everyone in the team can adjust.
The impact of each change is evaluated to assess whether the changes made are helping the process to improve or not. Based on that, we can decide if you want to keep those changes or make some amendments or want to discard them.
It reduces risk, improves efficiency, and overall performance.
One of the significant contributors to Kanban's popularity is “Kanban Board”. In Kanban, we use a visual board to display the progress of the project in three simple and easy stages i.e.
- To Do
A basic Kanban board structure includes-
Lists (columns to track progress):
Lists are the columns that are there on the main board. Each column represents a specific process step. These activities together compose a “Workflow”. Each card follows the flow until it reaches the last stage, which is “Done/Completion”. Any Kanban workflow can be as simple as “To Do”, “In Progress”, “Complete”.
Cards (items to represent a task) :
The most remarkable thing that makes it different about the Kanban board is visual cards/Signals (stickies, tickets, screenshots). One card usually has one work item written by the Kanban team. When the team starts working, and the Project Manager ensures that the board is updated, visual cards make teammates understand, what their team is working on and what stands finished.
Work In Progress (WIP) Limits:
as the name suggests "WIP limits" is used to limit "work in progress" tasks. It’s a maximum number of cards that can be present in one column at any given time. For example, if there is a column that has a WIP limit of five, then that particular column can’t have more than five cards. These WIP limits are critical as they control the workflow and give you an early warning sign that you committed to too much work.
Kanban teams often have a backlog for their board. The backlog is nothing but a column where customers and teammates put their ideas for projects that the team can pick up from and prepare their To Do list. The commitment point is the moment when an idea is picked up by the team, and they start working on that particular task.
The delivery point is the last point of a Kanban team’s workflow. It’s the point when the service, software, or product gets delivered to the customer. The team’s goal is to pick up cards from the commitment point to the delivery point at the earliest.
Basic Kanban Board Workflow
As we familiarized ourselves with artifacts so let’s try to understand the workflow of a basic K-Board
- In the above picture - tasks listed under the "Stories" column act as a Backlog for the team.
- Four columns (Stories, To Do’s, Doing, Done) are called lists.
- The tasks which are picked up by the team from the "Stories" column to work upon moves to the To Do's list. This Process of picking up stories from backlog and moving them to To Do’s is called Commitment Point.
- As and when the team starts working on a task, it moves to the "Doing" column.
- Stickies, pictures, and comments are called Visual Cards.
- There is a limit of tasks that can be there in "Doing", and that limit is known as "WIP limits”.
- And finally, when the task gets finished & it moves to Done from Doing, that moment will be called Delivery Point.
Board Examples - Personal Life Example
If you have to arrange a Birthday Party, then what will be your strategy? First, we will note down what all we need to do. Below are the tasks which are needed:-
- Make Guestlist
- Decide the venue and theme
- Invite guests
- Arrange food
- Arrange decorations
- Arrange a birthday cake and dress
- Arrange return gifts
All activities mentioned above will serve as our “To Do List”, we can “pull” one task from the "to do list" basis it’s criticality and feasibility to "In progress”, and as soon as it finishes, we will move it to “Done.”.
If need be - each task item can have an individual name assigned to it. For example-
- Make GuestList - Mother
- Decide the venue and theme - Father
- Invite guests - Mother
- Arrange food - Father
- Arrange decorations - Mother
- Arrange a birthday cake and dress - Sister-in-law
- Arrange return gifts - Brother-in-law
Similarly, the deadline or timeframe, during which we should be finishing the activity, can also be assigned to each activity. Timelines need to be assigned basis the criticality of an activity. For Example-
- "Invite Guests" - As guests may be required to apply for leaves in their respective offices, book plane/train tickets so we may decide to carry out this activity at least ten days before the birthday.
- "Make a Guestlist" – Only after the preparation of the guest list can the guests be invited. Here, you are planning to invite guests ten days in advance so the guest list must be prepared at least 12 days before the birthday.
Like ways, you may like to assign a timeline for all listed activities.
Board Example for Software Development:
In software development, we can have the following columns-
Note - A task can pass through as many columns as your chosen workflow allows.
For any new software development, there is a to-do list of activities; then the development team might pull items from To-Do to in-progress and move them to Work in progress, this is called the Pull system. In WIP, they will analyze it, design, and develop it, and the test team will complete Testing and move them to Deploy.
Roles and Responsibilities:
In Kanban, the most important part is of Kanban board. Other than that, we have
The Project manager will be responsible for
- Managing Teams
- Motivating them
- To ensure work finishes in time
- To ensure that the Board is updated all the time
- Will ensure that the backlog is maintained
Kanban Team Member:
Other than Project manager everyone else is referred to as “Kanban Team member” and will be responsible for the entire Kanban workflow. A Kanban team is not required to be cross-functional since the Kanban workflow is intended to be used by any and every team involved in that particular project. Therefore, a group of specialists and a separate team of generalists may be working on different aspects of the same Kanban project and using the same Kanban board.
Kanban has no specific roles and responsibilities other than Team and Project manager or set of processes. There are no prescribed roles. Practically, anyone who has experience can serve as a project manager or supervisor, especially for larger more complex Kanban projects, but the roles should theoretically evolve with the needs of the project and the organization.
Kanban Process Workflow:
This works on four basic principles, which are-
- Start with what you have
- Agree to pursue incremental, evolutionary change
- Encourage the act of leadership at every stage
- Respect the current process, roles, responsibility, and title.
Kanban can serve as a technique for organizing software Development support work as well. Let’s try to understand how the software development support team would work from Kanban perspective. For instance, your client notices any error on your app’s interface that you have made, e.g.-
Matrix doesn’t upload, the client can’t access his account, or new feature is not there, etc. Then they go to the Kanban board and create a task there. It will be for the support team, and if they are not able to resolve it, they will assign it to the front-end developer to provide a resolution and fix the problem.
In our Kanban example, we divided the board using the following workflow:
We will start with whatever we have:
The basic rule of Kanban is to start with whatever you have. In our example, when a task generates, the support team member starts working on it with the given information to provide resolution.
- If the support team members provide the resolution, it will directly go to Done bucket from In progress.
- If not, then the support member will assign it to the Front-End Developer. Developer analyzes the situation and tries to resolve the task. Once the job is solved, it moves into the Done column.
Agree to pursue incremental, evolutionary change:
A developer will keep all provided information like screenshots, bug details, etc. in one place for future reference. Documenting the root cause analysis, steps taken, and maintaining all this information is of great importance.
Encourage the act of leadership at every stage:
Kanban emphasis that People at any level can contribute to the continuous improvement of delivery and process by providing their innovative ideas and show their leadership skills while implementing changes.
To encourage the act of leadership, it emphasizes that we must-
- Let them take important decisions
- Give them responsibility basis their strengths
- Help them plan their future in the organization
- Trust them for their work
- Help them grow in the process
Respect the current process, roles, and responsibility:
Kanban follows “start with what you do now” principle. We need to respect existing positions and start from there. Later depending on the feedback, roles can be changed or emerged. This method avoids introducing additional changes. In Kanban, solving the purpose of the role is more important than assigning someone a job-title. It’s like a “hat”, whoever is comfortable carrying it can wear it.
Scrum Vs. Kanban:
Kanban adopts some of the Scrum principles, but there are some fundamental differences between Kanban and Scrum.
|Scrum master, product owner, and team members make a scrum team
|No set roles are defined. Roles are not required to be cross-functional
|The vertical columns in the active scrum of a Scrum task board are used to reflect each stage of the workflow of the project. Each task’s progress is mentioned under the “To do” column.
|Vertical columns of Kanban Board reflect workflow stages like backlog, to do, In Progress and Done. But in Kanban, it has a limit for maximum stories. Limited stories can be present there on board for that particular column.
|At the end of each sprint.
|The team should not bring in and out the tasks during the sprint. Changes in Sprint delivery need to go through proper channels.
|Changes and modifications can happen any time by the team working on it.
|Regular fixed-length sprints (i.e., two weeks)
|At the end of each sprint if approved by the product owner
|Constant delivery or at the team's discretion
Sometimes, the team mixes the artifacts of Kanban & Scrum to produce Scrumban. It is done by picking up time-boxed sprints & scrum roles from Scrum methodology and WIP limit & Cycle time from Kanban methodology.
However, for beginners, it's recommended to use only one of the methodologies & get acclimatized to it.