Kanban Fundamentals

TLDR:

Basic Concepts

Kanban
  • provides visualization method
  • has real world usages
  • should maximize flow, not utilization capacity
Principles
  • Visualize Workflow
  • Limit WIP
(no term)
Value Stream Map can identify waste and process efficiency

Personal Kanban

  • Todo lists lack context and effective prioritization
  • Personal Kanban provides visualization and organization to make better decisions and be more effective
    • Visualize Workflow
    • Limit WIP
  • Try to focus on the most valuable tasks first and prioritize as late as possible
  • Be creative and make it work with you

Team Kanban

  • Kanban is from Manufacturing
  • Kanban facilitates number of process improvements
    • Software can get many improvement with a pull-based system
  • The Kanban Method provides a proven mechanical for incrementally introducing Kanban to an existing software process
  • Implementing Kanban can improve lead times, trust and quality
  • Implementing Kanban at the team level can be done with minimal effort
  • Electronic solutions are available

Resources

Books

Kanban Andersen
Personal Kanban
The Principles of Product Development Flow

Basic Concepts

What is Kanban

Kanban (kan - visual, ban - card) originated in Toyota.

Kanban
Refers to the process
kanban
Refers to an card/item/toekn used within the process.

Real world examples of kanban tokens include; airport ticket, star buck coffee cup.

The total number of items in the system can be changes/exchanges which means they act like currency.

The Toyota Production System

  • Developed by Taiichi Ohno between 1948 and 1975
  • Originally called 'just-in-time production'
  • Each stage sets out the output of the next process to choose from
  • Components are 'pulled' by demand instead of pushed by production rate;

Capacity Utilization vs. Flow

  • Comparing to a highway, 100% capacity utilization is gridlock (EG, car storage)
  • Response time and throughput are measurements of flow

Kanban is about maximizing flow in real world systems by controlling queues and capacity utilization

Basic Principles/Rules

Visualize Work
  • Enables communication of state
  • Reduce memory load
    • Current workload
    • Commitment / upcoming work
    • Blockers
    • Work time frames
Limit Work In Progress (WIP)
  • Reduce Waste
  • Improves Quality
  • Improve flow
  • Little's Law

    Proof flow is improved by limiting WIP is by Little's Law

    l = a * w
    a = l / w
    
    - l :: length of queues
    - a :: arrival rate/throughput
    - w :: average wait time
    

Lead Time & Cycle Time

Lead Time
  • Starts when requests is made and ends at delivery
  • What the customer sees
Cycle Time
  • Starts when work begins and ends when ready for delivery
  • Mechanical measure of process capacity
c = WIP / a

- c :: cycle time
- WIP :: work on progress count
- a :: arrival rate/throughput
cycle time

Improving System Responsiveness

We are reducing the time line by reducing the non-value adding wastes – Taiichi Ohno

2 methods to reduce Cycle Time
  • Increase Throughput
  • Reduce WIP

Value Stream Mapping

Value Stream Map
  • time line of a typical/average kanban as it passes through the system
  • shows both the time spent working and spent waiting for work
Process Efficiency
e = v / t

- e :: Process Efficiency
- v :: total value time (time working)
- t :: total time in system (lead time)

**

Personal Kanban

Personal Kanban is the kanban principles and alternate approaches to better organize life flow.

Todo lists

  • do not scale
  • hard to prioritize
  • doesn't include context

Principles

  1. Visualize work
  2. Limit WIP

Getting Started

  1. Visualize flow and establish Value Stream Map.
  2. Create board with basic columns (Backlog, Ready, Doing, Done).
  3. Create backlog items and assign to board.
  4. Add limits to each of the columns (EG. 3-5)
  5. Begin pulling tasks after getting 'Doing' to WIP limit. Do tasks based on context.
  6. Reflect.

Handling Blockers

  • Create a new state 'Blocked'
  • Only put currently non-actionable items
  • Priorities blocked items over non-blocked
  • Include deadlines and time boxes when possible

Priorities

  • The priorities of columns increase across the board left-to-right.

Today Column

This is the beginning of a new day. You have need given this day to use as you will. You can waste it or use it for good. What you do today is important because you are exchanging a day of your life for it. When tomorrow comes, this day will be gone forever; in its place something that you have left behind… let it be something good.

– Author Unknown

  • Include a 'Today' state before 'Doing' allows tracking of daily effectiveness.
  • Opportunity to reflect of each day.

Productive, Efficient and Effective

Productive
  • Get More Stuff Done
  • By limiting WIP and ensuring tasks get to done.
Efficient
  • Work Smarter not Harder
  • By focusing on our value-add stream
Effective
  • Get right work down at the right time
  • By providing context and allowing for just-in-time prioritization

Planning

  • Deferred to as late as possible but no later.
  • Usually when information becomes available

Prioritization

Cover Stephen Covey's Time Management Matrix
Urgent, Important (UI)
  • Mission Critical,
  • Emergencies
  • Are the Preventable?
  • Goal to avoid instead of react to.
Not Urgent, Important (!UI)
  • Quadrant of Quality,
  • Kaizen
  • Sharpening the Saw
  • Task that improve quality and efficiency over time
Urgent, Not Important (U!I)
  • Quadrant of Deception
  • Social Investment
  • Interruptions & meetings
  • Try to maximize value
Not Urgent, Not Important (!U!I)
  • Waste
  • Organic Quadrant
  • Time wasters and hobbies.
  • Some will have real value (relax, recharge restore, setup for other tasks)
How to prioritize
Avoid High, Medium, Low
Leads to Low, medium-low, medium, medium-high, high, critical, emergency, on-fire
Use Queue
  • simple without ambiguity
  • order the ready and backlog
  • reassess the backlog periodically
Priority Filters
  • Add extra columns 'Priority 1', 'Priority 2', before 'Ready'. 'Ready' acts as Priority 0.
  • Items with same priorities are grouped.
  • Limit increased as priority.
  • When an item is pulled from ready, items are pulled from previous priorities. EG. P1 -> ready, P2 -> P1, Backlog -> P2

Personalized Kanban

  • Portable Kanban
    • Electronic
    • Manila Folder
  • With Kids

Team Kanban

Rules on Kanban in Manufacturing

  • No items are produced without kanban items
    • Downstream (customers) consumption is specified by kanban items
    • Upstream (supplier) production is specified by kanban items
  • Defects and incorrect amounts are never sent downstream
  • The number of kanban items are them minimized to reduce lead time.

Properties of Kanban

Manufacturing Software
Physical Status Signals
Limit WIP Self Direction
Continuous Flow Kaizen
Pull Pull
Self Direction Limit WIP
Visual Continuous Flow
Status Signal ?Physical?
Support Kaizen ?Attached?
Attached ?Visual?

Virtual / Inferred Work Requests

Required work items can be inferred by a lack of kanban items on display. EG. empty column/task

The Kanban Method

Method to instill positive change in an organization and it's processes.

Not a stand alone SDLC methodology

  • Visualize the workflow
  • Limit WIP
  • Measure and Manager Flow
  • Make Process Policies Explicit
  • Use Models to recognize improvement opportunities
    • theory of constraints
    • Little's law
    • queuing theory

Recipe of Success

Focus on quality
  • software quality varies widely
  • team acceptance of a quality focus is high
  • Will understood problem with solutions, TDD, code review, testing

If you have a process that produces defects, then you have a defective process.

– Jeffery Palermo

Reduce WIP
  • Defect and lead time
Motorola Case Study 2004

         |          .
         |          .
Defects  |         .
         |       ..
         |    ...
         |....
         +------------
            Lead time
Deliver Often
  • "Deliver working software frequently" –Agile Manifesto
  • Reduced WIP shortens lead time.
  • Short lead time allows for more frequent releases
  • Frequent releases build trust
Balance demand again throughput
  • Throttle incoming demand
    • Match incoming demand to delivery of work
    • This effectively sets the WIP limit to a given size
  • Bottlenecks should become visible
  • Slack is necessary
    • Enables kaizen and continuously delivery
    • Optimizing for flow instead of 100% utilization
Prioritize
  • Affecting prioritizing and planning
    • Prioritization is often outside the teams control
    • Team can influence it but that requires trust
    • Prioritizing by business value
      • Requires organizational maturity
      • Requires mature and smooth-running development team
Attack Sources of Variability to Improve Predictability
  • Variability results in in larger WIP and lead times.
  • Many well known sources of variability
    • Story Size, effort required, variation in priority, randomization of inputs
  • Some policies result in unnecessary variability
    • EG. how queues are organized
    • Making policies explicit can reveal these effects
    • Changing a policy can reduce variability
    • Processes are just a group of policies
    • Not all variabilities is a waste

We cannot add value without adding variability, but we can add variability without adding value.

– Donald Reinertson

Results of Success Results
  • Improved quality
    • working on more value-add features
    • improved trust from customers
  • WIP is limited; lead times are shorter
    • Customers see value sooner
    • Developers get feedback faster
  • Delivery is more frequently improves trust

Implementing Kanban

Define processes and Endpoints
  • Limit process changes to where you have control and can make changes.
  • Negotiate with collaborators to interact in a way that supports the process.
Identify Types of Work
  • Items like like requirements, features, user stories, use cases, change requests, defect bugs, refactoring suggestings…
  • If inputs come from multiple sources, indicate the source.
  • Use size for different magnitudes
Sketch or Model Workflow
  • Value Stream Map / Sketch out general states.
Create a Card Wall
Establish & Visualize Queues & Buffers
  • Establish buffers. IE. add 'Ready' column before each state column.
  • Buffers trade cycle time for resource utilization
  • Add swim lanes as needed to represent:
    • a policy (IE only 1 critical)
    • assign a different capacity to different work types
    • individual team members or work stations
  • Add work item cards
    information on card is
    • convey status information at a glance
    • so team can make informed 'pool' decisions
    (no term)
    May vary with work type
    (no term)
    EG. created, started, deadlines, description, customer, Dev

Electronic Systems

  • Agile Zen
  • Trello
  • LeanKit Kanban
  • Target Process
  • Jira

Next Steps

  • Make Policies Explicit
    • Add information to the card wall
      • EG. Definition of Done, Prioritization Decision Process, etc
  • Limit WIP
  • Manage Queue (leading indicator) instead of cycle time (trailing indicator).
  • Measure Flow with cycle time & lead time with a cumulative flow diagram.