Java Tech & Tools | Using a Pull System for Just-In-Time Development | John Stevenson

Preview:

DESCRIPTION

2011-11-01 | 05:20 PM - 06:10 PMShowing the concepts and techniques of using a pull based system (eg. kanban) to manage development effectively and working towards a just in time development approach. This session covers kanban as a way to visualise your workflow and ensure you are working on the most valuable task at hand. Experiences will be shared from applying kanban at a diverse range of companies.

Citation preview

©LeanAgileMachineCreative Commons Licence

JIT Development with kanban

John StevensonLean Agile Machine

©LeanAgileMachineCreative Commons Licence

Who is John Stevenson

@JR0cket

©LeanAgileMachineCreative Commons Licence

Goals

Basics of kanban

Visualise your challenges

©LeanAgileMachineCreative Commons Licence

Additional goal

©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

©LeanAgileMachineCreative Commons Licence

How many hours do you work a

week ?

©LeanAgileMachineCreative Commons Licence

How many hours are you productive

per week ?

©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

©LeanAgileMachineCreative Commons Licence

©LeanAgileMachineCreative Commons Licence

Software projects design

©LeanAgileMachineCreative Commons Licence

Kanban board - Wall of Facts

©LeanAgileMachineCreative Commons Licence

Value stream mapping

The (often wide) path to getting things done

Activities that get things done effectively

©LeanAgileMachineCreative Commons Licence

Let the board show issues...

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

Build 1209Build 1221Build 1301

©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

©LeanAgileMachineCreative Commons Licence

©LeanAgileMachineCreative Commons Licence

©LeanAgileMachineCreative Commons Licence

Software development

©LeanAgileMachineCreative Commons Licence

Software development

©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

©LeanAgileMachineCreative Commons Licence

Ready queue

©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

©LeanAgileMachineCreative Commons Licence

Let the board run

©LeanAgileMachineCreative Commons Licence

©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...

©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

©LeanAgileMachineCreative Commons Licence

How to decide what is right

Experiment !!

Map to resources

©LeanAgileMachineCreative Commons Licence

With one tester resource

©LeanAgileMachineCreative Commons Licence

1 tester, 6 devs pairing

©LeanAgileMachineCreative Commons Licence

Fast feedback across the board

©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

©LeanAgileMachineCreative Commons Licence

Predictability

● Ltd WIP● Smaller batch sizes● Consistently sized tasks

Breaking down features, epics, stories

● Smallest responsible change

©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

©LeanAgileMachineCreative Commons Licence

Pull system

©LeanAgileMachineCreative Commons Licence

What else can we do ?

©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

©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

©LeanAgileMachineCreative Commons Licence

Use both sided of the card

©LeanAgileMachineCreative Commons Licence

Classes of service

©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

©LeanAgileMachineCreative Commons Licence

Experditing lane

©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

©LeanAgileMachineCreative Commons Licence

Enhancing the board information

©LeanAgileMachineCreative Commons Licence

Blockers

©LeanAgileMachineCreative Commons Licence

Avatars / Calls for help

©LeanAgileMachineCreative Commons Licence

Pairing

©LeanAgileMachineCreative Commons Licence

Pairing does not have to be two

Different roles help share understanding of getting work done

©LeanAgileMachineCreative Commons Licence

Review your effectiveness

©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 ?

©LeanAgileMachineCreative Commons Licence

Kanban board - Wall of Facts

©LeanAgileMachineCreative Commons Licence

Understanding of Value

©LeanAgileMachineCreative Commons Licence

Understanding your company

Table stakes / foundations

Spoilers Differentiators

Accelerators

©LeanAgileMachineCreative Commons Licence

Benefits

©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

©LeanAgileMachineCreative Commons Licence

Be as creative as needed

©LeanAgileMachineCreative Commons Licence

The first rule of kanban...

©LeanAgileMachineCreative Commons Licence

Thank you

©LeanAgileMachineCreative Commons Licence

Feedback & Refs

@JR0cket

JStevenson@atlassian.com

John@jr0cket.com

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

©LeanAgileMachineCreative Commons Licence

Lessons from Service Desk

● Variation of personal kanban Sticky notes at the side of the keyboard One priority at once Need business reason to change priorities

Record reason and number of times you had to revisit the task

©LeanAgileMachineCreative Commons Licence

Kanban design for study

Recommended