Making kanban work for you

Post on 02-Dec-2014

334 views 0 download

description

These days, we know that agile is the way forward for most development work. We've moved on from the waterfall model and even large organisations are embracing the agile way of life. Or are they? Scrum is a hugely popular methodology, but it can be inflexible. It sometimes falls down in the face of business pressures and, let's be honest, sprint planning can be incredibly dull. Especially if you know it's all going out the window when the CEO changes his or her mind next week. Kanban might just be the answer. Kanban is amazing. It's an agile methodology that stands up to the real world, that never gets in the way, and that makes developers super-efficient. It transforms bored, miserable teams into highly motivated Post-It moving fanatics. It makes it easy to spot bottlenecks in your process and it gives you incredible insight into exactly where your development time is going. If your team are just getting started, or if they've been plugging away for years, Kanban can help. It's really useful for teams that are growing and for organisations that are looking to move from ad-hoc support and occasional new features to a more formalised development process. It can fix teams that are unproductive and turn failing projects around. To achieve great results with Kanban, though, you have to play by the rules and know how to introduce it to your team without causing a revolution. I'll be introducing the key principles of Kanban, explaining how it works and offering advice on getting started, and looking at how Kanban can help refine your development process to absolute perfection. This talk is for you if you're bored of sprint planning, you keep missing sprint goals, if your team is unproductive, if you've tried Kanban but are unconvinced or if you're just curious about agile generally.

transcript

Making Kanban Work For You

Jez Halford

Hi there

I’m Jez, a freelance PHP developer.

@jezhalford

www.jezhalford.com

KanbanJapanese for

“Signal Card”

看板

Created by

Taiichi Ohno Eiji Toyoda (1912-1990) (1913-2013)

Images: http://queaprendemoshoy.com/metodos-de-produccion-en-la-industria-del-automovil-el-metodo-toyota-ii/taiichi-ohno/http://www.produktion.de/personen/eiji-toyoda-im-alter-von-100-jahren-gestorben/

Kanban

● Establishes the stages through which work moves in order to be considered “done”

● Tries to ensure work is delivered at a constant rate

Kanban

Schedule Develop Test Deliver

Kanban

Schedule Develop Test Deliver

Scrum

Kanban

Schedule Develop Test Deliver

Kanban

The core principles

● Visualise workflow

● Limit work-in-progress

● Manage flow

Café Culture

Café Culture

● Showing customers to tables● Taking orders● Delivering orders to tables● Clearing tables● Taking payment

Café Culture

Show customers to tables

Take orders Deliver orders Clear tables Take payment

Show customers to tables

Take orders Deliver orders Clear tables Take payment

Café Culture

Café Culture

Show customers to tables

Take orders Deliver orders Clear tables Take payment

Café Culture

Show customers to tables

Take orders Deliver orders Clear tables Take payment

Café Culture

Show customers to tables

Take orders Deliver orders Clear tables Take payment

Café Culture

Show customers to tables

Take orders Deliver orders Clear tables Take payment

Café Culture

Show customers to tables

Take orders Deliver orders Clear tables Take payment

Café Culture

Show customers to tables

Take orders Deliver orders Clear tables Take payment

I am not running a café

What’s your process?

● Backlog?● Development?● Code Review?● Testing?● Release?

Kanban Board

Image: http://leansoftwareengineering.com/2007/10/27/kanban-bootstrap/

Start with what you do now

Backlog Being Developed

QA Release Done

Limit Work In Progress

Backlog

(5)

Being Developed

(5)

QA

(2)

Release

(2)

Done

(10)

Manage Flow

To Develop

(5)

Being Developed

(5)

Ready For QA

(5)

Being QA’d

(2)

Ready to Release

(2)

Releasing

(2)

Finished

(10)

Manage Flow

To Develop

(5)

Being Developed

(5)

Ready For QA

(5)

Being QA’d

(2)

Ready to Release

(2)

Releasing

(2)

Finished

(10)

Go Team!

To Develop

(5)

Being Developed

(5)

Ready For QA

(5)

Being QA’d

(2)

Ready to Release

(2)

Releasing

(2)

Finished

(10)

#1323

#293

#1289

#6834

#9584

#5756

#5546

#3432 #2332

#678

#1384 #6869Alice

Bob

Ada

Alan

Rasmus

Bryce

Blockers

What if I can’t make progress on my thing?

#6834

#9584

#5756

#3432

#5546

Blockers

To Develop

(5)

Being Developed

(5)

Ready For QA

(5)

Being QA’d

(2)

Blocked Ready to Release

(2)

Releasing

(2)

Finished

(10)

#1323

#293

#1289

#2332

#678

#1384 #6869Alice

Bob

Ada

Alan

Rasmus

Bryce

Blockers

To Develop

(5)

Being Developed

(5)

Ready For QA

(5)

Being QA’d

(2)

Ready to Release

(2)

Releasing

(2)

Finished

(10)

#1323

#293

#1289

#2332

#678

#1384 #6869Alice

Bob

Ada

Alan

Rasmus

Bryce

Need batteries for mouse!

#6834

#9584

#5756

#3432

#5546

Blockers

To Develop

(5)

Being Developed

(5)

Ready For QA

(5)

Being QA’d

(2)

Ready to Release

(2)

Releasing

(2)

Finished

(10)

#1323

#293

#1289

#2332

#678

#1384 #6869Rasmus Bryce

Need batteries for mouse!

Jenny#6834

#9584

#5756

#3432

#5546

KANBANNED!

Blockers

To Develop

(5)

Being Developed

(5)

Ready For QA

(5)

Being QA’d

(2)

Ready to Release

(2)

Releasing

(2)

Finished

(10)

#1323

#293

#1289 #678

#1384 #6869Bryce

Need batteries for mouse!

Jenny

#2332

#6834

#9584

#3432

#5756

#5546 Rasmus

Zen and the art of software maintenance

● Prevent developers becoming swamped and having to switch tasks.

● Allow managers to control what’s being worked on.

● Informs the wider company of what’s coming up.

Kanban is not so good for

● Starting new projects.

● Very scope-limited or short term projects.

Type Triage

● Are some issues more important than others?

● Identify issue types1. Bug2. Feature3. Refactoring

#1323 #1833#1256

Bug Feature Refactoring

● Blockers should always be highest priority

Cadence

● The rate at which work is delivered

● Regularly calculate your average “Cycle Time”

● Use it to inform how much work is fed in

● Build your schedule around it

Backlog

● Backlog management is an art

● Try to leave some space to add urgent issues

● Keep a mix of easy and difficult tasks

● The limit is still important

Stand Ups

● Do you still need them?

● Have one person lead the stand up and ask for comment on ongoing tasks.

Epic Clustering

● Epics are features too large to estimate.

● Large issues can’t traverse the board in a timely manner

Epic Clustering

● We still need to have planning meetings when one of these comes up.

● Aim is to break down the feature into chunks small enough to traverse the board in average cycle time.

Epic Clustering

● Issues may need to pass some phases as a whole.

● Clustering!

To Develop

(5)

Being Developed

(5)

Ready For QA

(5)

Being QA’d

(2)

Ready to Release

(2)

Releasing

(2)

Finished

(10)

Epic Clustering

#2332

~1

#233

2

~2

#233

2

~3

#233

2

~4

#233

2

Epic Clustering

To Develop

(5)

Being Developed

(5)

Ready For QA

(5)

Being QA’d

(2)

Ready to Release

(2)

Releasing

(2)

Finished

(10)

#2332 ~1

#233

2

~2

#233

2

~3

#233

2

~4

#233

2

Alice

#2332

~2

#233

2

Epic Clustering

To Develop

(5)

Being Developed

(5)

Ready For QA

(5)

Being QA’d

(2)

Ready to Release

(2)

Releasing

(2)

Finished

(10)

#2332 ~1

#233

2

~2

#233

2

~3

#233

2

~4

#233

2

Alice

#2332

~3

#233

2

~4

#233

2

~4#2

332~2

#233

2

Epic Clustering

To Develop

(5)

Being Developed

(5)

Ready For QA

(5)

Being QA’d

(2)

Ready to Release

(2)

Releasing

(2)

Finished

(10)

~1#2

332

#2332

~3#2

332

#2332

To Develop

(5)

Being Developed

(5)

Ready For QA

(5)

Being QA’d

(2)

Ready to Release

(2)

Releasing

(2)

Finished

(10)

Swim Lanes

Sticky

● Post-its are not generallysticky enough

● Super StickyPost-its are theanswer!

● Keep the board clean

Getting Going

● Start by modelling exactly what you do now - not what you’d like to be doing.

● Give it time to work, there will probably be an initial drop in productivity.

● Don’t cheat - don’t move issues backwards and don’t remove them prematurely.

● Don’t model too much.

Kaizen

改善 “Good Change”● If your board needs to change, change it.

● Always be sure to share changes with the whole team.

Kanban

● Kanban is all about what happens after you’ve decided to develop a feature.

● How or when you decide to develop it is up to you.

Kanban

● Model your process as it stands, don’t change everything before you start.

● Then add buffers and limits to refine your workflow.

Kanban

● Act on blockers immediately.

● Aim to fix issues permanently.

Kanban

● The rules are deliberately flexible.

● It’s your Kanban board - change it if you need to.

● Make sure everyone is kept informed.

Thanks for listening

joind.in/11789

@jezhalford www.jezhalford.com