wiki:SoftwareEngineering/KanbanInAction

Version 3 (modified by Vijay Varadan, 6 years ago) (diff)

Notes till Ch06 added

Kanban in Action

Authors: Marcus Hammarberg, Joakim Sunden
Apr 30 2018

kanban-in-action.jpg

Review

Verdict: green-up-arrow.png Recommended

The Good

  • Fable style introduction to Kanban in chapter 1 - I was able to recall most of the chapter from when I read it back in June / July of 2017, a good 9 months later.

The Bad

  • TBD

The Ugly

  • TBD

Notes

Disclaimer: These are primarily written for my own future reference, but they may be useful to you, either to decide if you want to read / buy the book or as something to revisit. The information is not comprehensive, not in the least - so, please don't use it as a substitute for actually reading the book. As with all my content, some is verbatim from the original source, opinion may be interspersed & of course, YMMV.

Kanban Principles

Kanban aims to make the work flow fast through the whole value chain, from idea or concept to software in production, delighting your customers.

  • Visualize your work and policies.
  • Limit the amount of work in progress.
  • Control flow of work.

Visualizing Your Work

  • Visualizing your work is ultimately about creating the transparency and information-sharing needed to understand how the work works and to collaborate effectively together.
  • The process of visualizing work means making information visible that previously wasn’t, making implicit knowledge and policies explicit, and, in doing so, resolving inconsistencies and conflicts that surface.
  • The kanban board is a great way to visualize your workflow and share information about priorities, who’s working on what, the progress of individual work items, and so on.
  • By using a big, visible board, the information radiates to everyone interested instead of being hidden in people’s brains or inaccessible tools.
  • Creating a kanban board is easy: you map the workflow of your work items - that is, the steps they typically go through in order to be completed—to columns you create on a whiteboard or a wall.

Work Items

A work item should contain all the information the team needs to be able to know how to work with it. Of the following, pick and choose what fits your current needs and add features as needed:

  • A description—So you know what the work is about
  • An avatar or other marker—So you know who is working on the item
  • Deadlines and other important dates—So you know when you need to have the item done
  • Tracking IDs or other references to an external system—So you know where to find more information
  • Blockers—So you can pick out items that are blocked and therefore hindered from further progress
  • Type of work—So you know the type of work for each item, which is important so you can prioritize the work items against each other if needed
  • Progress indicators—So you know how much of the work you have done so far
  • Size—So you can see the differences in size and effort
  • Flow data, emotions, and other data accumulated during the flow through the board - So you know how the work behaved and how the team felt about it

Work in Process (WIP)

  • The more WIP, the longer the cycle time for each work item will be. You should limit the WIP to get faster flow and shorter lead times.
  • WIP can take many forms, and we looked at some common ones in software development:
    • Specifications that haven’t been implemented yet
    • Non-integrated code that “works on my computer”
    • Untested code, which may or may not live up to your standards
    • Code not in production, which sits and wait for the next release
  • Problems and bad things can follow from having a lot of WIP:
    • More context switching
    • Prolonged feedback loop, which in turn causes extra work for you
  • And we mentioned some ways that WIP can manifest itself:
    • Increased risk
    • More overhead
    • Lower quality
    • Less motivation

Limiting WIP

  • There’s no one right WIP limit for you and your team.
  • Limiting WIP isn’t the goal; improving flow is. WIP limits are merely a tool that helps find problems that hinder a better flow.
  • A lower WIP limit will move your work faster and also bring problems to your attention more quickly. You want a low WIP limit, but not too low.
  • When setting out to find a WIP limit, start simple—maybe as simple as the slogan “Stop starting, start finishing.”
  • You can limit the WIP for the whole team/workflow:
    • This approach can help you improve collaboration.
    • It helps you keep focus on finishing work items before taking on new ones.
  • You can limit WIP based on column:
    • This puts focus on flowing items through the workflow.
    • It can help to manage bottlenecks.
    • Maybe you already have a hunch about what you need to improve and can start limiting WIP for that column.
    • Work can also be limited by estimated size (story points, for example).
  • You can limit WIP based on people:
    • Limiting the number of avatars that can be in play is one way to easily accomplish this.
    • Using swim lanes is another.
    • This can help you prevent too much multitasking and people being involved in every item on the board.
  • Most teams have a WIP limit on the work-item level, not the task level.

Managing Flow