making kanban work for you
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