getKanban3: some items deployed

getKanban: board game to learn and experience Kanban (software development)

getKanban is a board game that enables you to learn and practice Kanban in software development.

Kanban

  • Kanban is Japanese. “Kan” translates visual and “ban” means card
  • Kanban is a process tool
  • Kanban works as a pull mechanism (as opposite to a push mechanism)
  • Kanban visualizes flow
  • Kanban limits work-in-progress
  • By limiting work-in-progress, bottlenecks in the flow will become visible

By visualizing bottlenecks, there’s an opportunity to improve the process flow (to remove the blockages, to remove waste, and as a consequence, to better match capacity with demand in the different stages of the flow)

Kanban applies control by measuring lead and cycle times – by improving the flow, you can enhance those lead and cycle times and optimize the flow to get work at a higher rate through the flow.

Kanban originates from lean manufacturing. A kanban card is a message it signals the depletion of goods (products, parts, inventory) to an upstream part of the process.

Conceptual diagram of a Kanban system Conceptual diagram of a Kanban system; http://files.iquijada.webnode.es/200000139-034270535c/Kanban4.png

When received, the kanban card triggers the production requests of those goods. Therefore, the consumption of goods drives the demand for more needed goods – so kanban enables a demand-driven system (a pull system). A demand-driven system aims to minimize (or even eliminate) inventory, just-in-time production, higher flow throughput, and therefore aims companies to become more efficient. Lean manufacturing specifies the number of forms of waste and origins of waste.

Kanban comprises a set of straightforward rules, but (by years of application in lean manufacturing and almost a decade in software development) it has demonstrated its powerful ability to trigger self-reflection, collaboration, and process improvements. It has its roots in lean. Lean thinking’s pillars are respected for people and Kaizen.

The game

The game setup consists of a board, a stack of cards (backlog items with a specific value and effort to complete for analysis, development and test), several workers (analysts, developers, testers), and the necessary charts (financials and Cumulative Flow Diagram).

When playing the game, you quickly learn about the pull mechanism, the effect of limiting work-in-progress and use of the fast-track (expedite) lane and specific impediments (problems, interruptions …).

The start of the game is on day 9 of a project (the context is a web application development with a customer-subscription based revenue model) – so you enter the game with some items in progress. The game can be played in quick play (till day 15), standard mode (till day 21) and advanced mode (till day 24).

The initial state looks like this:

getKanban1: from left to right: blue indicates the backlog cards, black indicates the ready column, red indicates the analysis column, blue indicates the development column, green indicates the testing column
getKanban1: from left to right: blue indicates the backlog cards, black indicates the ready column, red indicates the analysis column, blue means the development column, green indicates the testing column

As you see, the work-in-progress limits are respected:

  • Maximum 4 cards (items) in the ready column (stage of the flow)
  • Maximum 2 cards in analysis
  • Maximum 4 cards in development
  • Maximum 3 cards in test
  • No maximum in ready to deploy
  • No maximum in deployed (which basically means “finished”)

Now it’s up to the team to evaluate the state of the board; the game is played as follows:

Assign workers to the different phases (analysis, development, test) – dice represent the workers. The number you throw with the dice gives you the number of effort units you can do for a particular phase, and you consume these on the items on that respective column on the board.

getKanban2: Arrows indicate the flow of items (via a pull from the right)
getKanban2: Arrows indicate the flow of items (via a pull from the right)

Items are pulled through the flow starting at the end of the flow (so from the far-right column: deployed). As you spend your effort points (dice points) on items, you will subsequently pull items through the flow, but pay attention to respect the work-in-progress limits.

At the end of the day:

  • Read the event card (the event may be positive or negative)
  • Add the numbers of the Cumulative Flow Diagram (CFD)
  • Tick off end of the day

Cumulative Flow Diagram

Cumulative Flow Diagram example, the colored lines indicate the different stages in the flow
Cumulative Flow Diagram example, the coloured lines indicate the different stages in the flow

A Cumulative Flow Diagram is a tool used in queuing theory. It shows the evolution of the flow in its different stages and the queue of items built up before each step. It shows the size of the queue (vertical line) and the lead time (horizontal line). Lead time indicates the time from request till delivery. Cycle time starts when actual work begins on the request and when the item is ready for delivery.

Billing time

Every 3rth day (day 9, day 12 …) it’s billing time.

getKanban3: some items deployed
getKanban3: some items deployed
  • You deploy read-to-deploy items
  • You cash-in your newly earned user-subscriptions (newly deployed features attract new customers) (new subscriptions gained are written on the back of each card)
  • You replenish the ready column with items from the backlog (respecting the work-in-progress limit) (because only every 3 days the product owner is available)

Expedite lane

The expedite lane is used to fast-track an item to delivery.

getKanban4: the expidite (fast lane) indicated in red, this lane has its own WIP limit
getKanban4: the expedite (fast lane) indicated in red, this lane has its own WIP limit
  • This lane has a work-in-progress limit of its own – an item in this lane does not count for the regular column work-in-progress limits.
  • Only items with a fixed delivery date flow through this lane
  • Delivering such an item too late results in a fine

!!! SPOILER ALERT !!!

You have several manipulations at hand:

  • Assign the workers (dices) – for example you can decide to assign a work outside his speciality (e.g. a developer to analysis or test); as in real life, a person working outside his expertise will be less productive.
  • Decide upon the number of items in the flow (the work-in-progress limit is an upper limit) (take care you cannot as such change the limit itself)
  • Prioritize the items in the backlog
  • Look at the effort required to complete of each item
  • Look at your metrics and use this data
  • And as such limit the work in progress, try to avoid bottlenecks, try to reduce lead times
  • Decide to deliver any fixed-delivery date items or not, if yes, decide the right time to handle these

Blocker

getKanban5: blocker indicated in red
getKanban5: blocker indicated in red

A blocker might occur (via an event card). This will influence the flow. For example, it might break the work-in-progress limit (because a team has decided to do so). It might black a specific item (in the form of a block that must be resolved first).

More reading (more spoilers): Playing getKanban with an experienced team

Game over 🙂

getKanban6: end score
getKanban6: end score

Our gratitude to @AgileConsortium for hosting this event and @PatrickSteyaert for guiding the game.

Game on!

Kanban for skeptics

Book review and summary: Kanban for skeptics

Kanban for skeptics” is a book describing the purpose of Kanban and withdrawing any arguments against or any misconceptions. In general, folks regularly have misunderstandings regarding concepts, frameworks, and methodologies… in that perspective I like the intention of the book.

Some might say the book is not a traditional explanation to a subject, which is the case – on the other hand that was not the intention of the book. If you’re new to Kanban, I do think you learn quite a lot by reading this book. I also think the arguments and explanations given are quite useful and make sense (at least to me). It does show the power of Kanban as a process improvement and change management tool.

In summary and my key take-away: Kanban is in essence a change management approach and vehicle (I don’t like saying a “tool”).

Kanban leads to establishing a continuous flow based on a pull system, by limiting the number of items in progress and subsequently forcing an organization to implement sustainable process improvements. Limiting the work-in-progress surfaces the obstacles in a current progress (cf. the powerful lean metaphor of rocks in the lake).

The goal of Kanban is to maximize end-to-end flow efficiency by removing bottlenecks, redesigning the process flow when necessary and focusing on delivering work fully completed. The aim is to make the flow well-balanced, so that the stages in the flow are close to the defined throughput limits. Control is exercised by an approach of monitoring and measuring throughput times (lead and cycle times) (and not estimations). Delivering steady business value occurs when a continuous flow is in place that consistently delivers work items finished on a regular basis at a speed that matches the needs of the organization.

I’ve noticed clear similarities between Kanban with other agile frameworks (i.e. Scrum):

  • The goal is to deliver business value, based upon customer demand (in Scrum: value is managed by the product owner)
  • The team pulls work from a single source: a list of work items (i.e. a backlog or queue).
  • One defines a set of rules to define when an item is considered ready to be pulled into the flow (definition of ready): in Kanban: you can set the rules per stage of the workflow
  • Transparent way of tracking progress
  • Lean rocks-and-lake principle: impediments and obstacles in processes will become painfully visible – this triggers the need for change and facilitates organizational change
  • It leads to better processes, by incorporating feedback and by building upon a momentum to improve a process (as in a Scrum’s retrospective)
  • It leads to better collaboration in an organization (if you want to improve, you’ll need to break out of your organizational unit/silo) (Scrum: resolving organizational impediments + cross-functional team work)
  • Kanban limits work-in-progress by process step, by lane. Scrum limits work-in-progress by sprint.

I’ve noticed differences Kanban with other agile frameworks (i.e. Scrum):

  • Kanban works with measurements – no estimates (note: in agile there is a stream of thinking to work without estimations: on the contrary, the Scrum guide does specify that a product backlog item must have an estimate)
  • A flow in Kanban is measured by lead / cycle times; in Scrum you measure by done work compared to planned work (velocity of a team)
  • Kanban is less prescriptive compared to Scrum (not that Scrum is very prescriptive, in my humble opinion; at least compared with traditionally project/process management methodologies…)
  • Kanban focuses on fully done work (due to the work-in-progress limits); in Scrum the teams defines itself their meaning of work done (note in Scrum the goal is to deliver actual working software at the end of the sprint)
  • Kanban starts from the existing process; Scrum does pre-scribe a specific process with specific roles and responsibilities. Kanban does not require you to change your organizational way of working to get started.

I’ve noticed that you can incorporate many agile techniques into Kanban – although Kanban does not prescribe it – this is optional and depending what fits the needs and the context:

  • Prioritizing the input queue (Scrum: product backlog) – this is a good practice as it enforces the stakeholders on focusing on the value of items in the queue
  • Planning with relative estimates (estimate by comparing items)
  • Planning by having relatively well-sized features (INVEST)
  • Introduce iterations > regular cadence (iteration as a heartbeat)
  • Daily scrum > team coordination
  • Cross-functional team (instead of silo-teams) – by defacto in Scrum
  • Build a minimal viable product (to start learning as fast as possible and to improve your product based upon real user feedback) – this is a lean concept; but anyhow considered a recommended practice for product development

Any choice of adding a particular practice is situation and context dependent and must be done with consideration.

All this confirms for me that Agile and Lean are blending philosophies.

The questions and reflections I had after reading this book:

  1. To enforce work-in-progress limits in Scrum (when necessary)
  2. Some general recommendations how to reach a steady continuous flow?
  3. When precisely to adjust the work-in-progress limits?

More reading

Scrum and Kanban: Making the Most of Both
Simple, short and to the point comparison of Scrum and Kanban

Small notes: since the writing of this book, some minor, but important modifications have been done to Scrum:
– a team forecasts the amount of work it can do in the next sprint (it does not commit  anymore)
– a burndown (or burnup) chart has become optional

Scrumban book
Book elaborating how to use Kanban on top of Scrum