How development teams implement kanban
The Japanese word for signboard. A framework for agile software development. A pull-based workflow system. These are a few different ways to define kanban — all are correct.
At a basic level, kanban is a method for visualizing work. It is typically associated with agile development teams — but even many product and marketing teams utilize kanban too. Kanban is all about improving the "how" of getting work done. Its tactics are based on agile and lean principles — continuous improvement of processes, elimination of waste, and quick delivery of software.
If your team has adopted kanban, you might be looking to validate whether you have done it right. There is no one right way to implement kanban, but these best practices can help you accelerate success. This guide will explain how to set up and operate a kanban system to improve your development process and deliver value faster.
Set up a kanban board
What is kanban?
Kanban is all about showing and improving the flow of work. Two principles guide kanban for software developers:
Visualize your work. You want to capture each item of work and define how work flows from the backlog through to completion. A high-level view gives everyone on the team insight into what each person is working on and what the status is.
Limit work in progress (WIP). Rather than organizing work into larger batches for release, you focus on completing a single feature and then shipping it. As team capacity opens up, new features or work items are pulled from the backlog.
Tackling a set number of features at a time helps teams move faster and prioritize the most valuable items. Optimizing your process at every step can help you increase productivity and improve the quality of the features you are shipping.
This is an example of a kanban-style board in Aha! Develop. The columns show how work cycles from "In development" to "Ready to deploy." The column on the right shows work that is on hold.
What are the benefits of kanban?
Increased productivity is a primary reason that many agile development teams adopt kanban. Because it encourages you to complete work incrementally, kanban can help you deliver updates and new features to customers more frequently. This makes it an ideal approach for agile development teams that practice continuous delivery.
By design, kanban is flexible and iterative. It allows you to easily shift priorities to adapt to changes in the business, customers, and market. And there are always opportunities to improve your processes and refine your workflow. Kanban can also help teams balance business priorities and manage different types of work — including customer-driven efforts, bug fixes, performance improvements, security, and other technical projects.
Here are some of the other ways that development teams can benefit from switching to a kanban method:
Faster value creation
Clarity and transparency about who is working on what
Visibility into the status of work items
Greater team alignment and morale
Improved communication and collaboration
Responsiveness to changing information and feedback
But it is important to remember that kanban is all about the "how" — focusing on implementation. Improving visibility of the work in progress helps you visualize on what is happening now (and next), and it works best when combined with a strategic framework. So while this guide focuses on how to implement kanban, it is most successful when you start with the "why" and "what" before moving to the "how."
How do development teams implement kanban?
The beauty of kanban is that it is adaptable — different types of organizations and teams can modify it to their needs. Typically the CTO or another engineering lead is responsible for selecting the team's methodologies and practices. But in smaller companies, engineering practitioners influence these decisions as well.
Before implementing kanban, make sure everyone on the team is aligned around why you are adopting this method and what the processes will be. Folks need to understand how work will flow from one column or status to another on the kanban board. And everyone should commit to keeping the board accurate and up to date. In the steps included below, we assume you are using software like Aha! Develop to create a digital kanban board, but most of the same principles apply regardless of the tool you use.
Choose how to visualize work
First capture your existing processes for delivering new functionality. Add cards to your kanban board to represent everything the team is working on and create vertical columns to show each step of your workflow. Your board should display the full cycle of what it takes to deliver value to your users.
Depending on what you are working on and how your organization functions, you may want to add interstitial columns that represent necessary wait stages between active work. Either way, remember that your board is not fixed. You will iterate and evolve it over time as you incorporate feedback from the team.
On this kanban-style board in Aha! Develop, one card represents each work item and columns of cards show the status of each item.
Set work in progress (WIP) limits
How much work is too much? Set a limit for the number of cards that can be in each column at a given time. This helps you create a smooth flow of work so you can optimize productivity. Some development teams set WIP limits by estimating work in story points or individual capacity. For example, you could assign a certain number of story points to each card, then determine a maximum number of points per column. Or you could decide on a WIP limit of two cards per user so no team member gets overcapacity.
If you are just starting out, do your best to set WIP limits based on your past experience and the number of teammates. You will have many opportunities to revise WIP limits as you learn.
Codify policies
Create certainty in the workflow so people can be most productive. No one should have to guess. Explain exactly how you will manage the backlog. Who can add cards? Who can remove cards? Who can prioritize what will be worked on next? To answer these questions, many engineering teams work closely with product management and project teams to clarify what is most important and inform what should go on the kanban board.
Document the definition of done and any associated quality assurance checks. Define how you will handle defects and bug fixes. Then there are the stickier questions. How will you handle new requirements that are added to WIP by key stakeholders? What about scope creep? What about when work is blocked? You might not have perfect answers here but transparency is better than ambiguity.
Measure and manage flow
Once you start using the board to actively manage your workflow, identify where bottlenecks and issues occur. Look deeper into what is causing delays and add extra columns or statuses so your board shows the way you work. Continuously improving also means that you need criteria for evaluating performance. You can use data such as cycle time and throughput to measure flow. Be sure to look for opportunities to reduce the time it takes to complete work.
Optimize
Each member of the team is responsible for giving critical feedback to improve each step of the workflow. During your regular team meetings, carve out time for folks to share their suggestions and observations. And when major work ships, set aside time to review what went smoothly and what could be improved. Continue to iterate on your process. As you make changes, measure the outcomes and gather feedback from the team. Roll back any changes that do not yield positive results.
Build your own kanban board
Frequently asked questions about kanban
What is the goal of a kanban system?
Development teams typically adopt a kanban system to increase productivity and deliver value to customers faster. By limiting the number of work items at any given time, team members can focus on completing tasks more efficiently. This concept is often referred to as "stop starting, start finishing."
When should you use kanban in your organization?
Kanban is well-suited to agile organizations and development teams that take a continuous approach to delivering software. But many different types of teams incorporate kanban concepts into their workflows too.
What is the difference between kanban and scrum?
Scrum is the most well-known and widely used agile software methodology. Kanban and scrum both facilitate an iterative and incremental approach to software development — just in different ways. Kanban is typically more flexible because there are no defined roles and release cadence is continuous. Scrum can be more rigid. Teams adhere to a defined framework, work in intervals called sprints, and delineate roles such as scrum leader and product owner.
Some teams incorporate elements of both scrum and kanban. For example, you can organize your work into iterations and then use a kanban board to optimize your sprint workflow.
What is the first step in any kanban implementation?
The first step to implementing kanban is visualizing all of the development work that you must complete. Capture each step of your current processes on a kanban board. You will want to create a card to represent each work item and columns for each stage of the workflow — such as "Not started," "In progress," "QA," and "Ready to ship."
What issues might teams encounter when adopting a kanban-based approach?
A few common issues might make your experience less successful:
Lack of understanding: The team does not understand what kanban is, how it will help improve productivity, or what the policies are for using the system.
Lack of alignment: Some members of the team are not willing to adopt a new approach or optimize existing processes.
Outdated kanban boards: You forget to add work items to the board or you fail to update columns when processes change or team members depart.
Misjudging capacity: You try to tackle too much work. When there are too many cards on the board at one time, productivity and quality suffer.
Fixed mindset: Instead of continually looking for ways to improve processes, the team is content with the status quo. You ignore blockers and do not look for opportunities to optimize. As a result, work stalls.
The most successful development teams have a consistent and repeatable process in place for approaching work. If you are looking for a development tool that your team can use to work more efficiently and deliver faster, Aha! Develop — a fully extendible agile development tool.
See how you can customize kanban workflows for your team and build your way — try Aha! Develop for free for 30 days.