What Is Kanban & Why Are Companies Using It?
by Tom Helvick
Software development teams, like any project teams, need ways to track, measure, and manage the progress they’re making toward various milestones. In the past, software development relied heavily on “waterfall” project methodology, where all the requirements are defined up-front and then complete software is delivered all at once at the end. However, that methodology is now a thing of the past, and teams are becoming more agile, regularly deploying new features every week, month, or even every hour.
The challenge with agile is that new features and regular updates can be difficult to keep track of. That’s where kanban comes in. Kanban is a popular scheduling system for agile teams. It allows you to see all your ongoing tasks and their progress in one place. Kanban can work well on its own or alongside other agile methodologies like scrum.
Kanban is a Japanese word for billboard or signboard. The translation is your first big hint at how kanban works. A big board is at the heart of using kanban to get things done. On the board, each of your ongoing tasks gets its own card. As the task gets closer to completion, the task’s card on the kanban board will move from left to right through a series of columns that you set up.
Let’s look at an example. Your kanban board might have the following columns:
- To Do (only includes to-dos for this week, or during this sprint, usually)
- In Progress
- Code Review
- QA Testing
- Pending Release
- On Production
It’s easy to see how a given software development task might flow through these steps. A developer begins working on the new feature, so she moves the card on the kanban board to “In Progress.” When she finishes writing code, she moves the card to “Code Review” and requests a review from the relevant people. After making changes from the review, the branch might get deployed to testing and the card gets moved to “QA Testing”, letting the testing team know there’s a new feature to test. Finally, after all the checks, the card moves to the release phase (“Pending Release” and “On Production”).
This simple system allows us to keep track of the status of all features that are in progress. When you have ten developers working on your team, having a single source of truth about status and progress becomes really important.
A big board full of cards that move is the basis for kanban. However, the key methodology of kanban lies in helping engineers choose what to work on next. Kanban sets rules for reducing backlogs and buildups. At its core, kanban is a system for just-in-time production, so that any current bottlenecks become the top priority.
Practically, this means that kanban usually sets limits on how many cards can be in a given column at any one time. For instance: “If we have more than 3 cards in QA Testing, you should help test those features before doing anything else.” Or, “If there are more than 4 cards awaiting Code Review, the priority is to review that code before anything else.”
As a result, kanban builds agile team effort and flat hierarchies because everyone is expected to help anywhere there’s a bottleneck in the process. You might jump in and review code for part of the application you’ve never seen before, simply because that’s the priority column right now. It forces everyone to learn about the entire application in order to help out wherever they’re needed.
It’s interesting to note where kanban methodology comes from. The term originates in the Japanese manufacturing industry. Toyota was the company who pioneered and championed kanban as a scheduling system.
For them, kanban was about preventing the buildup of inventory. For instance, before we can install windshield wipers on the car, we need a windshield, proper electrical connections hooked up, and mounting positions prepared. So, if there’s a bottleneck with one of those prerequisites, that takes priority over the windshield wipers. It wouldn’t make sense to buy more wipers if there’s no way we can install them.
Kanban was incredibly successful for Toyota in reducing inventory overhead and waste. It also allowed them to produce cars faster and with higher quality because the bottleneck in manufacturing always become the priority until it was resolved.
The great thing about Kanban is that it’s simple and quick to implement. While you could build complex systems with various work in progress limits, you can get started with kanban by just creating a board. Many companies use a physical board with sticky notes. Others use online boards like Trello to track progress.
A simple Backlog -> In Progress -> Completed board is an easy place to start tracking your tasks. As you get more sophisticated, it might make sense to add more columns into your process.
Try kanban and start reaping the benefits of agile workflows today!
Founded in 1991, Intertech delivers software development consulting and IT training to Fortune 500, Government and Leading Technology institutions. Learn more about us. Whether you are a developer interested in working for a company that invests in its employees or a company looking to partner with a team of technology leaders who provide solutions, mentor staff and add true business value, we’d like to meet you.
Originally published at https://www.intertech.com on October 14, 2019.