BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles Kanban Step-by-Step Guide: from 3-Columns to Flexible Board Design

Kanban Step-by-Step Guide: from 3-Columns to Flexible Board Design

Leia em Português

Bookmarks

Key Takeaways

  • Rushing into a complex Kanban implementation is likely to result in failure in the long run 
  • Detailed workflow mapping is necessary to optimize your process after becoming adept with Kanban 
  • You should include your most important process steps as columns on your Kanban board 
  • You can group similar activities with the help of swimlanes and navigate your workflow according to priority 
  • Creating flexible workflow designs with different columns per swimlane will allow you to optimize your workflow to its full potential 

Kanban’s popularity is growing by the day. Applicable in all kinds of industries, ranging from construction to marketing, millions of people are delivering better results thanks to the method. 

Although implementing Kanban seems rather simple, making the most of the method is possible only for those willing to experiment with their workflow and walking the extra mile of reflecting the test results into the actual steps. 

In the following paragraphs, you’ll pass through the most common stages of Kanban implementation and learn how to advance your workflow visualization and control as you are increasing your proficiency with the method. 

Stick to the end to see how you can optimize every step of every distinct team process on a team board without creating a confusing mess.

Start Where You Are

If your team is just getting started with Kanban, please, by no means, rush into drawing complex board designs and setting WIP limits that are difficult to comply with. Take the necessary time to get your team on board and give them room to practice with the basics of the method.

The simplest variation of a Kanban board consists of three columns:

(Click on the image to enlarge it)

  • Requested
  • In Progress
  • Done

Such a basic board layout is fantastic for teams with no prior experience with Kanban, because it is easy to get everyone enthusiastic about workflow visualization. It is a good starting point for building a habit of moving cards according to the state of the assignments written on them.

Nonetheless, it is great for establishing flow management by introducing your team to pulling work on their own.

This board layout doesn’t require much effort in order to be kept up to date and is a solid foundation for starting with WIP limits (which are one of the foundations of Kanban). This is especially true for teams that use a physical whiteboard for Kanban implementation.

Limitations of the Basic Kanban Board

Usually, the most basic Kanban implementation is enough to deliver visible improvements to the way a team works but soon, you’ll surely reach a plateau. 

As soon as you are past the stage of familiarizing, you will start noticing some limitations of the 3-column Kanban board, especially if you are practicing Kanban in a knowledge-work environment.

For starters, you’ll have a limit on the total amount of work in progress and will see every task that has been started by your team but you’ll have no clue about the state of each assignment. 

You will know that a person is working on a given assignment, but unless you go and ask for a status report, you’ll have no idea whether the person is actively working on the task or waiting on something. 

Therefore, it is fair to say that except for allowing you to limit the amount of work you’ve got in progress, the most basic Kanban implementation can provide you with very limited workflow visibility and guidance for improvement.

How to Start with Precise Workflow Mapping

After your team becomes comfortable with Kanban, you should add a few columns and swimlanes to your Kanban board in order to obtain a more precise view of your workflow. 

By doing so, you’ll be able to see potential opportunities to improve the way your team works and experiment with different steps of your process.

Possible columns

For example, in a software development scenario, you can split In Progress into multiple columns representing the most important steps in your process like:

(Click on the image to enlarge it)

  • Tech Design
  • Coding
  • Ready for Code Review
  • Code Review
  • Ready to Deploy

By breaking up In progress into 5 distinctive steps, you’ll be able to see the progress of each task without making your board too complex for your team to understand. In addition, you will be able to visualize one of the most common places where work piles up in a development process - the review stage.

Possible swimlanes

After you advance your board layout with additional columns, it would be appropriate to add a few swimlanes to make your workflow visualization even more precise.

The typical swimlane breakdown is either by priority or by activity. It is common to see IT Ops teams breaking down their boards into swimlanes by priority. A standard vertical layout in such scenario would be:

(Click on the image to enlarge it)

  • Expedite
  • SLA 24 hours
  • SLA 48 hours

The logic here is simple. Your team starts new work according to priority. For example, if you have an expedite card in Requested, you pause everything else you do (unless it is another expedite card) and start working on it immediately. Following this line of thought, you leave the cards from SLA 48 for last. 

Breaking down a Kanban board by types of work is a common practice for software development teams. For instance, some of the swimlanes of the development team here in Kanbanize are as follows:

(Click on the image to enlarge it)

  • Customer Issues
  • Bugs
  • Technical Debt
  • Customer/Business Features
  • Technical Features

Similarly to the priority swimlane board layout, here the tasks on the board are being pulled by our developers from the swimlane with highest position. The logic is pretty much the same. The top swimlane contains the most important type of cards that our developers work on.

Here comes an important question. But if you are pulling cards according to priority in both cases, what is the point of grouping cards by the type of work?

The answer hides in the word planning. Although Kanban doesn’t specify a planning mechanism, in software development, it is necessary to some extent.

For example, it is important to have very few bugs in the product and little to no technical debt, but you can’t stop developing new features completely if you want to survive in such a dynamic market.

To put it shortly, grouping cards in swimlanes according to the type of assignments allows you to optimize the capacity of your team accordingly and keep work flowing in the most beneficial way for the customer and your employer alike.

Unleashing the Power of the Kanban Workflow

By implementing the knowledge obtained by reaching this point of the article, you should be able to build solid Kanban workflow that can be considered advanced in many ways. Still, it is far from the best that the method can give you.

Experiment with horizontal mapping

Visualizing the most important steps in your process is enough to optimize your workflow but not to advance it. As soon as you and your team reach a point where you are comfortable with Kanban, you should do a detailed horizontal mapping of all important steps of your work process. 

Only by doing so, you will be able to spot bottlenecks with precision and organize the throughput of specific steps by placing stage/column WIP limits to ensure that a bottleneck doesn’t get clogged (if it’s impossible to remove it or not worth the effort).

Once again, your focus should be on the In Progress section of your board. 

For example, it would be wise to break down every major step of the development process into several smaller steps.

You can break the tech design step into 4 distinct columns:

(Click on the image to enlarge it)

  • Tech Design
  • Ready for Design Review
  • Tech Design Review
  • Ready for Coding

The next step, which is the actual development can be broken down into another 4 columns:

(Click on the image to enlarge it)

  • Coding
  • Testing
  • Ready for Code Review
  • Code Review

You may even break down the last step of software development - deployment into multiple steps like:

  • To Be Tested on Production
  • Testing on Production

As you can clearly see, such a board layout can give you a lot more information about the state of your team’s assignments in a single glance. Having in mind that you are looking for a stable workflow and growth to the number of tasks your team finishes, you may experiment as much as you need with the columns of your board.

Optimize your swimlanes

The primary function of Kanban swimlanes is to group together cards that are very much alike. Therefore, it would be only possible to make the most of your Kanban board if you customize it to an extent that allows work to be flowing in the most stable and quick way toward final delivery.

So at this stage, you shouldn’t be afraid to break the typical board limitations and fully advance your Kanban workflow by placing specific columns to each swimlane.

Let’s put that into practice. If we get back to our software development board, it is easy to see that the columns presented a few paragraphs above are perfect for mapping a new feature development swimlane.

However, on this board, there are activities such as dealing with customer issues and fixing bugs. They require more agility and going through each of the 10 steps, in most cases, would be unnecessary. 

When you’ve got an issue concerning an already deployed feature, you would normally start the card directly from coding. After the issue is resolved, one quick review would be quite enough to determine whether the content of the card can prove to be a working solution then go directly to deployment.

(Click on the image to enlarge it)

So in this case, you can just merge Tech design, Coding, and Testing. As a result, you’ll make these swimlanes, dedicated to fixing issues, a lot more nimble. 

You may even consider merging columns vertically across swimlanes. This is a perfect option for teams that rely on the same people for the reviews of cards on all swimlanes. If you merge vertically the code review columns across swimlanes, all cards that are submitted for review will go to the top of the board.

(Click on the image to enlarge it)

This will allow you to keep all cards that await review at the same place and make it easier for the responsible stakeholder to process them at the right time. You can even place an individual WIP limit on Ready for review and approach reviews in batches as soon as the limit is reached.

Merging columns is the best way to achieve a flexible board structure without making your board too complicated even for advanced Kanban practitioners. You should have this in mind when considering the workflow steps for each swimlane.

Yes, you can map all of your teams workflows on a single monstrosity of a Kanban board with completely different steps per swimlane, but you’re far more likely to cause mass confusion than do any good to anyone.

In conclusion, it is fair to say that Kanban is simple only at first glance. Mastering the method and making the most of what Kanban can give you requires plenty of practice and experimentation. The road from a 3-column board to a flexible workflow design might require months if not years to walk.

Don’t get discouraged by this. Embrace continuous improvement and advance your Kanban workflow one step at a time.

About the Author

Alex Novkov is the content lead of Kanbanize, a company developing Kanban software. Seasoned Kanban practitioner, Alex has dedicated his time to educating the world how to be more efficient.

 

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT