Guest article: Kanban anti-patterns

Agile Project Management with KanbanHello! Eric Brechner here. Kanban is a workflow management technique that has moved from the manufacturing line to the software team room and kitchen corkboard. It’s associated with notecards traveling across a board as the work they represent is completed. Naïve or misinformed people might think that’s all there is to Kanban, which is understandable, because Kanban is so simple. But if you’re just moving notecards on a board, you’re employing only a tiny fraction of Kanban’s power.

You can grasp the basics of Kanban quickly by reading my book, Agile Project Management with Kanban. However, if you think you know Kanban already and aren’t seeing the benefits of continuous value delivery, simple planning and estimation, tight customer connection, inherent quality guarantees, focused scope, and reduced meeting times, then you’re probably falling into one of the seven Kanban anti-patterns I describe below. Fortunately, these anti-patterns are easy to correct. Read on, and get the most out of Kanban for yourself and your team.

Anti-pattern #1: Done is deferred

Many people use boards and notecards to track work and say it’s “Kanban.” Those boards typically have an initial column for notecards that represent pending work items (your backlog), one or more columns for the steps that active items move through, and a final column for completed items. They sometimes even have a done definition that work items must satisfy prior to moving to the last column.

However, these are not Kanban boards unless there are done columns and done rules for every step, not just the last step. (Every step has two columns: active and done.) In Kanban, done is not deferred to the end, and work items don’t flow indiscriminately across the board. Instead, when a step is ready to receive another item, the item gets pulled from those items that have been properly completed during the previous step. In order to determine that readiness, every step needs a done rule and a done column.

Why is Kanban such a stickler for designating done at every step? Two reasons: ensuring quality every step of the way (no buildup of technical debt) and smoothing workflow. While quality at every step is easy to appreciate, the impact of done columns on smooth workflow could use an example. (I discuss this in more detail in the “Kanban quick-start guide” and “Rude Q&A” sections of Agile Project Management with Kanban.)

Say you have an implementation step and a validation step in your team workflow, and the current work in the validation step is taking a long time to complete. Even though your team can typically validate three items at once, team members are rallying to validate a single difficult item (the other two are done). For smooth workflow and continuous value delivery, the whole team should notice immediately when work is stuck and unblock it before more work starts piling up.

However, if the implementation step didn’t have a done column, two new implemented items would move to validation (the two free slots), and two more items would start being implemented—augmenting the tsunami of pent-up work. But Kanban boards have done columns for every step, and items are pulled, not pushed. So, implemented items don’t move, no new implementation starts, and the problem with validation is immediately apparent. Problems don’t get worse with Kanban—they get attention and get fixed.

If your board has multiple steps but only one done column, grab some markers or tape and divide each step into active and done columns. Then put the done rules for each step right on the board. (My teams puts them at the bottom.) Now you’ll get the quality and smooth workflow Kanban delivers.

Anti-pattern #2: Workflow is wild

Other critical elements of Kanban boards that people neglect, ignore, or misuse are the work-in-progress (WIP) limits. They are not a Kanban boards unless every step has a WIP limit that constrains the number of work items (notecards) that can be in that step. A step’s WIP limit applies to both its active and done columns, unless it’s the last step. (The last step’s WIP limit only constrains the step’s active items, since its done column is unlimited.)

Why are WIP limits so important to Kanban, and why do they apply to items even when they are done with intermediate steps? Three reasons: they focus work (less multitasking), increase agility (fewer items to complete or cut when priorities shift), and smooth workflow. Focus and agility are easy to appreciate, but to understand the impact of WIP limits on smooth workflow we need an example.

Say you have specification, implementation, and validation steps in your team workflow. Ideally, you’d want every step to complete the same number of items per day; that is, every step should have the same throughput. When throughput matches, flow is very smooth, without work piling up or people being idle.

But in reality, some steps are faster to complete than others. To get workflow to be as smooth as possible, we need to set work-in-progress limits on the faster steps in order to make those steps’ throughput match the throughput of the slowest step. The WIP limit for the slowest step is set to the typical number of active items for that step (ensuring it stays busy). Naturally, each work item is unique and takes different amounts of time in each step. To account for each step’s variation, you bump up its WIP limit a little. (I’ve included a spreadsheet for this calculation in Agile Project Management with Kanban.)

Teams get into trouble when they inflate WIP limits to keep people busy in spite of real problems (or when they ignore WIP limits altogether). You know you’ve got the right WIP limits when work ordinarily flows smoothly, but gets blocked as soon as an item has a significant problem. (I cover many different cases in the “Troubleshooting guide” of my book.)

If the WIP limits on your board’s steps are absent, ignored, or far higher than the number of folks working on those steps, starting trimming them down and fix the workflow problems that surface, instead of letting those problems fester. Your team will soon be working faster, with less effort and greater agility, while delivering more value to customers each day.

Anti-pattern #3: Status is confused

Teams can add unnecessary complexity to their Kanban boards. Their notecards might contain excessive detail. They might have many different colored notecards or tags to signify work status. They might use many separate swim lanes for different work types or have an excessive number of done rules. All of these practices can be helpful in moderation, but if teams overdue it, they can get confused.

One of Kanban’s strengths is that it’s simple and visual. When you or your teammates can’t comprehend your Kanban board at a glance, or update it within seconds, then you’ve added too much complexity. It’s time to pull back and only retain the concepts you need. Keep Kanban simple and it will serve everyone better.

Anti-pattern #4: Control is centralized

Teams can spend excessive time at standup meetings or restrict who can manipulate their Kanban board, centralizing control. Like other agile methods, Kanban has a daily standup team meeting. However, the Kanban standup is only necessary for discussing blocking issues and can take less than five minutes. That’s because work status is always clearly displayed on the Kanban board. Team members can add, remove, reorder, and reposition notecards on the board at any time during the day.

If your standup meetings are taking too long, encourage team members to update the Kanban board throughout the day. You can also schedule time after standup for design discussions or other matters that involve a subset of the team. If you use a cumbersome online Kanban board that not everyone likes, consider using a physical board instead, and manually sync it to your online system as needed. Kanban should be quick and easy for everyone—not a burden, but a joy.

Anti-pattern #5: Plan is nebulous

Teams can see their Kanban board only as an execution engine and give little thought to planning. If all your team does is servicing, not much planning is needed—you simply queue requests (perhaps in prioritized buckets) and execute. However, if you’re working on a project with choices and coordinated strategy, you need to plan your work.

Planning, particularly for large projects with hundreds or even thousands of individuals, can get quite involved. I cover “Hitting deadlines” and “Using Kanban within large organizations” in Agile Project Management with Kanban. These chapters discuss populating, ordering, and estimating your backlog of work items, whether you’ve got a do-it-yourself project, a small team of 10 people, or an 8,000-person enterprise.

In any substantial plan, the work items appear at varying levels of abstraction: from high-level scenarios to individual features. For smooth workflow, you must break down large work items into smaller tasks. Your Kanban board can include a special “Breakdown” step early in the sequence, or you can have a done rule for your design step that requires work to be broken down. Either way, you avoid nebulous items that can clog your workflow. (I provide more details in the “Kanban quick-start guide” and “Hitting deadlines” chapters of my book.)

While plans often change, good planning is essential to the success of any significant project. It helps you think through what’s important and how different pieces fit together. Although Kanban enables you to react quickly to change, you can choose to be proactive instead of reactive by defining a strategic plan for your work.

Anti-pattern #6: Quality is deferred

Teams can defer fixing design and implementation issues until a customer demonstration or release—falling back on bad habits for near-term gratification, but long-term pain. It’s understandable, but irresponsible and unprofessional. Your team’s done rules should ensure quality is intrinsic to every step, not deferred to the end of some milestone.

Other teams you depend upon may defer quality, making it difficult for your team to uphold quality. In these situations, you can track problems until your partner fixes them, use fakes or shims until your partner’s code is working, take over your partner’s work (often undesirable on many levels), compromise your team’s quality (fitting in, but at a cost), or insist that your partners operate at your high level of quality. (I detail these strategies in “Using Kanban within large organizations” from Agile Project Management with Kanban.)

Driving quality through every step is essential for continuous delivery of value to customers. Not only is it more efficient, predictable, and sustainable, but your customers will love receiving new, high-quality value all the time. We all do, and with Kanban, you can provide it.

Anti-pattern #7: Customer is disconnected

Teams can fall into self-imposed rhythms that damage customer relationships and feedback, such as demoing progress on the fourth Friday of the month, regardless of whether or not the customer can attend. Having a regular cadence for feedback and other team needs is helpful. People like predictable schedules, and schedules assist in remembering infrequent tasks. However, customer feedback is far more valuable than maintaining a routine.

Kanban delivers value to your customers continuously. There are no contrived dates or cadence. Any customer or partner schedule can be accommodated—there’s no excuse for missing feedback or misaligning dates. You can still choose to have a regular schedule, and many teams do. But your schedule isn’t king, your customers are. (I describe “Deploying components, apps, and services” in detail in Agile Project Management with Kanban.)

Use Kanban to deliver value to your customers continuously, and gain their feedback whenever it is convenient for all of you. Your products and services will be better, and your customers will be happier. Kanban gives you the flexibility to meet your customers on their schedules.

Checklist

Here’s a checklist of actions to take that correct Kanban anti-patterns:

  • Ensure every step on your Kanban board has a done column and done rules.
  • Specify work-in-progress (WIP) limits for every step, and use them to restrict the total number of notecards in their respective steps (both active and done). (The WIP limit for the last step only applies to active items.)
  • Update your Kanban board throughout the day, and encourage your teammates to do the same.
  • Schedule time after your daily standup for design discussions or other matters that involve a subset of the team.
  • Use a physical Kanban board if team members find your online board cumbersome.
  • Plan your work backlog thoughtfully, to align with your strategy and any partners you may have.
  • Include a “Breakdown” step, or have a done rule for your design step, to ensure large work items are broken down into smaller tasks.
  • Compose done rules that ensure quality is intrinsic to every step.
  • Decide how you will deal with dependencies that defer quality.
  • Schedule customer feedback and demonstrations around their schedule.

Enjoy getting the most of your time and effort with Kanban. For more, be sure to check out Agile Project Management with Kanban.