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
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
- Visualize work
- Limit WIP
Getting Started
- Visualize flow and establish Value Stream Map.
- Create board with basic columns (Backlog, Ready, Doing, Done).
- Create backlog items and assign to board.
- Add limits to each of the columns (EG. 3-5)
- Begin pulling tasks after getting 'Doing' to WIP limit. Do tasks based on context.
- 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
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
- Add information to the card wall
- Limit WIP
- Manage Queue (leading indicator) instead of cycle time (trailing indicator).
- Measure Flow with cycle time & lead time with a cumulative flow diagram.