Kanban System Design


Any features we have developed but not yet released, can be considered inventory. Therefore, as well as helping to improve cycle time and increase throughput, limiting work in process also helps to increase profit by reducing inventory. In his keynote at Agile2009, Alistair Cockburn also introduced the idea that, for software development, the unit of inventory is the unvalidated decision [9]. By limiting WIP we are focussing on getting feedback on fewer decisions sooner.

Finally, by having fewer work items in process, the team is able to focus more on the larger goals and less on individual tasks, thus encouraging a swarming effect and enhancing teamwork. Limiting WIP like this can seem unusual for teams, and there is often a worry that team members will be idle because they having no work to do but are unable to pull any new work. The following guidelines, in priority order, can be useful to help in this situation.

  1. Work directly on existing work to progress it
  2. Collaborate with team members on existing work to remove a bottleneck
  3. Begin working on new work if capacity is available
  4. Find some other useful work

When team members have to find some other useful work then “bubbles of slack” are formed around the work. This creates opportunities for improvement without needing to schedule them with techniques such as "gold cards." This can be work that won’t create any work downstream but will improve future productivity and can be paused as soon as existing kanban slots become available. Investigative work such as technology spikes, refactoring or tool automation, and personal development or innovation type work, are all activities that might help the team in the future.

Cadence is the mechanism that teams use to establish a reliable and dependable capability. A consistent cadence demonstrates a predictable capacity and gives some confidence in coordinating the upcoming work when it is being triggered rather than scheduled.

Vanilla agile timeboxing is one specialized form of cadence. It is a metronomic cadence with a single tick. All the main process events are based around this single tick, which occurs on the timebox boundaries. In addition, the unit of work, commonly user stories, should be small enough to be scheduled into the timebox and subsequently completed in the same timebox. However, while user stories in process can be limited within a timebox, they don’t always fit into one exactly. Further, while releases can occur at the end of each timebox, user stories are only potentially shippable product increments, but may not be coherent product increments.

The various events can be decoupled, however, such that they happen separately at different rhythms. This creates a polyrhythmic cadence, more like a drum circle, where each drum represents a different event. The rhythm is more complex than the single tick of a metronome and can be more varied. Units of work can be larger minimal marketable features (MMFs), which while needing to be as small as possible, are not constrained be being required to fit into a timebox. Instead, an MMF is able to flow over a number of process events while it delivers a releasable coherent product increment. Prioritizing, planning, reviewing, retrospection, and releasing all still happen regularly, but because they are de-coupled, they can happen independently, at differing rates, which may provide more freedom in creating a natural process.

A cadence is usually "harmonic," in that there is a neat overlap between the different rhythms and generally keeps a regular "time signature" to create consistency. However, it does not have to be, and a look at some definitions of cadence from dictionary.com can show why.

  • In music, the ending of a phrase, perceived as a rhythmic or melodic articulation or a harmonic change or all of these; in a larger sense, a cadence may be a demarcation of a half-phrase, of a section of music, or of an entire movement
  • Music. A progression of chords moving to a harmonic close, point of rest, or sense of resolution.
  • The flow or rhythm of events, esp. the pattern in which something is experienced: the frenetic cadence of modern life.

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.