57
©LeanAgileMachine Creative Commons Licence JIT Development with kanban John Stevenson Lean Agile Machine

Just-in-time development with kanban - JAX London 2011

Embed Size (px)

DESCRIPTION

A just in time approach to getting things done using the kanban technique - including experiences from my own team and coaching other teams.

Citation preview

Page 1: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

JIT Development with kanban

John StevensonLean Agile Machine

Page 2: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Who is John Stevenson

@JR0cket

Page 3: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Goals

Basics of kanban

Visualise your challenges

Page 4: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Additional goal

Page 5: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

What is the problem...

Never enought time

Always more to do

Something urgent comes up

Missed opportunities

Work to do, bills to pay, kids to feed...

Window of opportunity for getting stuff done is limited

Page 6: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

How many hours do you work a

week ?

Page 7: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

How many hours are you productive

per week ?

Page 8: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

What is Kanban ?

● A way to manage dependant events● Make your work visible● Limit your work in progress

Avoiding multi-tasking – its inefficient

● Pull system only work on a task once previous task is complete

● Help work to flow continuously and predictably deliver value

Page 9: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Page 10: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Software projects design

Page 11: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Kanban board - Wall of Facts

Page 12: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Value stream mapping

The (often wide) path to getting things done

Activities that get things done effectively

Page 13: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Let the board show issues...

V1.0.1, V1.0.2, V1.0.3, V1.0.4,

Build 1209Build 1221Build 1301

Page 14: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

How did I build my Kanban

● Started simple with: Plan – Do – Done Used scrap of paper for initial design Built a simple board and started using it

● Evolved into Plan – Do – Check – Act Evaluated deficits in board and enhanced

● Used online Kanban So I dont need to cary a large whiteboard around Useful for distributed teams

Page 15: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Page 16: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Page 17: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Software development

Page 18: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Software development

Page 19: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Is something ready to work on?

● Identify completed work between seperate board lanes

● Spilt the study board lane into two First new lane is doing state Second lane is done / ready

Page 20: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Ready queue

Page 21: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Quick decisions

Having a ready lane show you what you could work on next

Prompts discussion as when something is ready to move from one stage / role to another

Start to see if there is a bottleneck if cards queue up in the ready column

Page 22: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Let the board run

Page 23: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Page 24: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

So What is missing ?

● I have a Kanban board● I am breaking my tasks down into relatively

small chunks

● But I still have far too much to do...

Page 25: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Lets apply the WIP !!!

● To sudy effectively I need to focus● To focus I need to work on 1 thing

at once● To work on 1 thing at once I need:

Work In Progress Limits

Page 26: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

How to decide what is right

Experiment !!

Map to resources

Page 27: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

With one tester resource

Page 28: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

1 tester, 6 devs pairing

Page 29: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Fast feedback across the board

Page 30: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Fast feedback

● Ltd WIP on Columns Board Goals

● Ltd WIP in column gives fast feeback between team roles

They know when there is a hold up Can discuss what the problem is Can try out things to see if it alivates the problem

Page 31: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Predictability

● Ltd WIP● Smaller batch sizes● Consistently sized tasks

Breaking down features, epics, stories

● Smallest responsible change

Page 32: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Let kanban help you be effective

● Work on only on one thing at once● Everyone responsible for priority changes

Even your manager

● If forced to switch, record and reset task to begining

Review ”task switching” overload

Page 33: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Pull system

Page 34: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

What else can we do ?

Page 35: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Drop the Backlog

omnipresent sign of overload Useful for pushing back to the

management Bad for team moral

Tasks flow when team is in tune with value, opportunities are not drowned out

Page 36: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Defining the task card

● Set goal of task● Identify measure to check if goal reached

Code should pass all tests

● Identify resources needed to compete● Identify scope of work

refactor task into multiple cards if too big

Page 37: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Use both sided of the card

Page 38: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Classes of service

Page 39: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Experditing

● Visualisation for a high priority task Big red sticker Experditing lane Record other tasks being blocked

● Review why you get high priority task Consider it a constraint / bottleneck

Page 40: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Experditing lane

Page 41: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

DevOps Goal keeper

Goalkeeper fields all issues

Rest of team allowed to

focus on a (bigger) tasks

Use visual indicator to show

who is the Goalie

Swap goalie regularly

Page 42: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Enhancing the board information

Page 43: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Blockers

Page 44: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Avatars / Calls for help

Page 45: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Pairing

Page 46: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Pairing does not have to be two

Different roles help share understanding of getting work done

Page 47: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Review your effectiveness

Page 48: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Effective daily standups

Avoiding status meetings● Details already there on the wall● Talk about something more useful● Opportunity to improve

What have I learnt yesterday ?

What do I hope to learn today ?

Page 49: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Kanban board - Wall of Facts

Page 50: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Understanding of Value

Page 51: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Understanding your company

Table stakes / foundations

Spoilers Differentiators

Accelerators

Page 52: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Benefits

Page 53: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Summary of Kanban

● Visualse work● Manage WIP● Engage with business

Shared ownership

● Encourage realistic priorities

● Helps you stay sane

● Show you are productive

● Deal with micro-management

Page 54: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Be as creative as needed

Page 55: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

The first rule of kanban...

Page 56: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Thank you

Page 57: Just-in-time development with kanban - JAX London 2011

©LeanAgileMachineCreative Commons Licence

Feedback & Refs

@JR0cket

[email protected]

Please note: Very few bulletpoints were hurt during the making of this presentation