Agile Everywhere! - Henrik Kniberg

78
Author Dad Organizational coach & Change Instigator www.crisp.se Consultant Henrik Kniberg [email protected] @HenrikKniberg Agile Everywhere! Keynote, Agile Tour Montreal Nov 16, 2016

Transcript of Agile Everywhere! - Henrik Kniberg

Page 1: Agile Everywhere! - Henrik Kniberg

Author

Dad

Organizational coach& Change Instigator

www.crisp.se

ConsultantHenrik [email protected]

@HenrikKniberg

Agile Everywhere!Keynote, Agile Tour Montreal

Nov 16, 2016

Page 2: Agile Everywhere! - Henrik Kniberg

Is Agile just a Software thing?www.agilemanifesto.org

We are uncovering better ways of developing software by doing it and helping others do it.

Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Page 3: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Page 4: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg5

Page 5: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg6

Page 6: Agile Everywhere! - Henrik Kniberg

Recruitment team

Henrik Kniberg

Page 7: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Recruitment team

Page 8: Agile Everywhere! - Henrik Kniberg

JAS 39E Saab Gripen

Henrik Kniberg

Agile practices implemented at every level and in every discipline: software, hardware and fuselage design.

Pilots on the same site as development teams. Direct feedback provided every sprint.

Compared to F35 joint strike fighter, Gripen 39E has: •  50x lower development cost! •  10x lower unit cost! 1500 people, all

co-located in Linköping, Sweden.

World’s most cost-effective military aircraft ($4700 Cost per Flight Hour)

Sources: •  http://www.stratpost.com/gripen-operational-cost-lowest-of-all-western-fighters-janes •  Personal visit to SAAB Linköping •  Research paper “Owning the Sky with Agile”

Page 9: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Pair programming

Product Owner role

Physical tools

Process toolsa.k.a. ”organizational patterns”

Thinking toolsa.k.a. ”mindsets” or ”philosophies”

Lean Agile Toolkits a.k.a. ”frameworks”

Scrum XP

Visualize managementTo do Dev Release

H C2

Test35

Done!3

DG

K

A

B

FLOW

Kanban

Systems ThinkingQueuing theory

SAFe

Tool”anything used as a means of accomplishing a task or purpose.” - dictionary.com

Page 10: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Lean Agile

Page 11: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Lean Agile

Page 12: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Page 13: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg15

Agile Manifestowww.agilemanifesto.org

We are uncovering better ways of developing software by doing it and helping others do it.

Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

products

feedback

solutions

Page 14: Agile Everywhere! - Henrik Kniberg

Agile is not new

Henrik Kniberg

Buzzwords will come and go,but the underlying ideas and principles are timeless

Page 15: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

•  2.3 million blocks•  6 million tons•  140 meters high•  Tallest man-made structure

for 3800 years

Page 16: Agile Everywhere! - Henrik Kniberg

Iterations, Continuous Improvement, Pull, Single-piece flow 4500 years ago

Henrik Kniberg

2.5 – 15 tonsVelocity of Khufu’s pyramid construction:1 block every 2.5 minutes... for 30 years!!!

Page 17: Agile Everywhere! - Henrik Kniberg

Beware of Tool Misuse

Henrik Kniberg

Abraham Maslow

If all you have is a hammer, everything looks like a nail

Page 18: Agile Everywhere! - Henrik Kniberg

Misguided Lean

Photo: http://leanactionplan.pl/o-nas/artykuly_lean/Lean-Office;183.html

Henrik Kniberg

Revealing the right problem

Solving the wrong problem

Page 19: Agile Everywhere! - Henrik Kniberg

SAFe

LeSS / SAFe

The Agile ”umbrella”

Scrum XPDSDM FDD

Crystal

Kanban

Henrik Kniberg

Using an agile framework doesn’t automatically make

you agile!

You can be agile without using ANY of

these frameworks

Daily Scrum

Sprint Product Owner

Continuous Integration

WIP Limits

Big Room Planning

Program board

Pairing

Agile Values & Principles

Page 20: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Page 21: Agile Everywhere! - Henrik Kniberg

Pixar

Henrik Kniberg

Page 22: Agile Everywhere! - Henrik Kniberg

Example: Pixar

Henrik Kniberg

That's a blunt assessment, I know, but I choose that phrasing because saying it in a softer way fails to convey how bad the first versions really are.

Our job is to make them go from Suck to Not-Suck.

Ed CatmullPresident of Pixar & Disney Animation Studios

Early on, all of our movies suck.

Page 23: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

In the early stage of making a movie, we draw storyboards (a comic-book version of the story) and then edit them together with dialogue and temporary music. The first versions are very rough, but they give a sense

of what the problems are, which in the beginning of all productions are many.

We then iterate, and each version typically gets better and better.

Page 24: Agile Everywhere! - Henrik Kniberg

The further you are from software development, the less likely that any of the popular frameworks will fit 100%

Henrik Kniberg

Agile Values & Principles

SAFe

LeSS / SAFe

Scrum XP

Kanban

Page 25: Agile Everywhere! - Henrik Kniberg

ContinuousIntegration

XP

Henrik Kniberg

User stories

Definition ofDone

Scrum Master

Sprint

TDD

Velocity

Pairprogramming

Cadence

Daily standup

Retrospective

Value streammapping

Understand the Why of each toolStory points

Cross-functionalteam

WIP limits

Page 26: Agile Everywhere! - Henrik Kniberg

Example: Why Sprints?

Henrik Kniberg

Too much “stability”

Too much “flexibility”

Sprint = stability + flexibility

Compromise between stability & flexibility.

Page 27: Agile Everywhere! - Henrik Kniberg

When is Agile most needed?

Henrik Kniberg

What to deliver

Unclear/unstable

Clear & stable

How to deliver it

Clear & stable Unclear/unstable

Any process works here

Agile is optimized for this

Predictive process doesn’t work here.Need an adaptive process.(feedback loops rather than detailed plans)

Page 28: Agile Everywhere! - Henrik Kniberg

Why is Agile spreading so fast?

Henrik Kniberg

What to deliver

Unclear/unstable

Clear & stable

How to deliver it

Clear & stable Unclear/unstable

Any process works here

Agile is optimized for this

Predictive process doesn’t work here.Need an adaptive process.(feedback loops rather than detailed plans)

Page 29: Agile Everywhere! - Henrik Kniberg

The role of copy-paste

Henrik Kniberg

Scrum and XP from the Trenches Spotify Engineering Culture

AdaptCopy Paste

Copy Paste

Page 30: Agile Everywhere! - Henrik Kniberg

Strategies for applying agile in other contexts

Henrik Kniberg

Implement method X “by the book”,

then customize it

Cherry-pick specific practices

Apply agile ideas directly, without using any specific

framework

Implement method X “by the book”, and

follow the rules religously

Page 31: Agile Everywhere! - Henrik Kniberg

Strategies for applying agile in other contexts

Henrik Kniberg

Implement method X “by the book”,

then customize it

Cherry-pick specific practices

Implement method X “by the book”, and

follow the rules religously

Apply agile ideas directly, without using any specific

framework

Page 32: Agile Everywhere! - Henrik Kniberg

Example: Big Family Trip

Henrik Kniberg

Page 33: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg35

Vision

Motive

Must Do

Departure Date: Oct 1

Should Do

Could Do

Preparations

Page 34: Agile Everywhere! - Henrik Kniberg

Travel “spike”

Henrik Kniberg

Small Family Trip London, 4 days

Big Family TripRound the world, 6 months

Page 35: Agile Everywhere! - Henrik Kniberg

Peru

Japan

New Zealand

West Indies

Page 36: Agile Everywhere! - Henrik Kniberg

On-the-road schooling

Henrik Kniberg

using velocity, cadence, and burnup chart

Page 37: Agile Everywhere! - Henrik Kniberg

“School” is every day after breakfast, regardless of location

Henrik Kniberg

Page 38: Agile Everywhere! - Henrik Kniberg

On-the-road schooling

Henrik Kniberg

Travel days

School points “done”

using velocity, cadence, and burnup chart

“On track” = bottom bar is ahead of top bar

Page 39: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Back home from the trip...Why is the kitchen

always such a mess suddenly?

We didn’t have that problem when

travelling. Why?

Page 40: Agile Everywhere! - Henrik Kniberg

8 8 8

8 8 8

8 8 8

8 8 8

8 8 8

8 8 8

16

160+

Page 41: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

1 Mon 7:00

2 Mon 11:00

3

Mon 22:00 4 Tue 22:00

1-2 days!

Root cause: Dishwasher!

Page 42: Agile Everywhere! - Henrik Kniberg

8

8

8

8

8

8

16

Page 43: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Page 44: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Page 45: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

1 Mon 7:00

2 Mon 7:30

< 1 hour!

Page 46: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Page 47: Agile Everywhere! - Henrik Kniberg

Worked like a charm!

Henrik Kniberg

but did we keep doing it?

Page 48: Agile Everywhere! - Henrik Kniberg

Sometimes agile practices don’t stick. That’s Fine.

Explanations:•  The practice was only needed for a specific situation•  The practice didn’t work too well•  The practice was a stepping stone until a better practice

was found•  The practice was only needed to learn & internalize a new

behaviour

Henrik Kniberg

Page 49: Agile Everywhere! - Henrik Kniberg

Pattern: Go all-in first, then go pragmatic

Henrik Kniberg

1 23

“Good enough” test coverage. Tests & code in same commitTDD when needed

3No personal sets needed“Wash my own dishes” attitude internalizedDishwasher used sometimes

1Dishwasher

2No batchingNo dishwasherWIP limitPersonal sets

Batching LeanKitchen

No tests Full TDDTest automation

Page 50: Agile Everywhere! - Henrik Kniberg

Example: Using a practice only when needed

Henrik Kniberg

Spotify Engineering Culture video – part 1•  Expected production time: A few days•  Actual production time: Several weeks!

Whoa! That took MUCH longer than I expected!

Agile Product Ownership in a Nutshell•  Production time: 2 days

Takes a couple of days to make a cool animated

video

How can I avoid the same problem for Part 2?

Page 51: Agile Everywhere! - Henrik Kniberg

Video storyboard (rough sketches)

Henrik Kniberg

Page 52: Agile Everywhere! - Henrik Kniberg

“Pointifying” the work

Henrik Kniberg

Page 53: Agile Everywhere! - Henrik Kniberg

Pomodoro Technique Personal Scrum with 30 minute sprints

Henrik Kniberg

Decide what to

focus on100% Focus!

No interruptions!

Measure:• How much can I get done in one Pomodoro?• How many Pomodoros can I execute per day / week?

Pomodoro 1

25 minutes5

minu

te br

eak

Pomodoro 2

25 minutes

Decide what to

focus on100% Focus!

No interruptions!

Page 54: Agile Everywhere! - Henrik Kniberg

Used Yesterday’s Weather and burndown chart to reliably forecast when the video would be done

Henrik Kniberg

Page 55: Agile Everywhere! - Henrik Kniberg

Strategies for applying agile in other contexts

Henrik Kniberg

Implement method X “by the book”,

then customize it

Cherry-pick specific practices

Apply agile ideas directly, without using any specific

framework

Implement method X “by the book”, and

follow the rules religously

Page 56: Agile Everywhere! - Henrik Kniberg

Robit

Henrik Kniberg

Page 57: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Page 58: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

2 kids & rookies with very little robot experience...

... vs ten teams of adult geeks and programmers

Page 59: Agile Everywhere! - Henrik Kniberg

Step 1: Set a clear goal (define “success”)

Henrik Kniberg

Let’s build a robot that at least can put

a fight....

No! We’re going to WIN!

Page 60: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Agile

Page 61: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Step 2: Build a Minimum Viable Robot (Earliest Testable Robot)

Page 62: Agile Everywhere! - Henrik Kniberg

Aim for the clouds, but deliver and test in small steps

Henrik Kniberg

Can stay in the ring

Can find opponent

Page 63: Agile Everywhere! - Henrik Kniberg

Step 3: Build an opponent to practice against

Henrik Kniberg

Page 64: Agile Everywhere! - Henrik Kniberg

Field test, Field test, Field test

Henrik Kniberg

Can stay in the ring

Can find opponent

Can get to opponent

Can budge opponent

Can win match against a static

opponent

Page 65: Agile Everywhere! - Henrik Kniberg

Aim for the clouds, but deliver and test in small steps

Henrik Kniberg

Can stay in the ring

Can find opponent

Can get to opponent

Can budge opponent

Can win match against a static

opponent

Page 66: Agile Everywhere! - Henrik Kniberg

Lifter? Or no lifter?

Henrik Kniberg

Hypothesis:- Mechanical Lifter can help us win

Experiment:- Build a simple lifter and try

Learning:- Works as designed...- But too weak to lift opponent- ... so it doesn’t help us win!

Options:- Keep it cuz it’s cool (who needs to win anyway)- Improve it- Remove it, try a different approach

Page 67: Agile Everywhere! - Henrik Kniberg

Simpler was better

Henrik Kniberg

Page 68: Agile Everywhere! - Henrik Kniberg

Field testing = Success by 100 failures

Henrik Kniberg

Page 69: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Page 70: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Page 71: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Page 72: Agile Everywhere! - Henrik Kniberg

Henrik Kniberg

Page 73: Agile Everywhere! - Henrik Kniberg

How could they win?

Building skill? No.Programming skills? No.Luck? Partly, but not entirely.

Henrik Kniberg

1) Clear goal2) Low self-confidence3) Emergent design4) LOTS of field testing!

Page 74: Agile Everywhere! - Henrik Kniberg

01:39

Some tips when applying agile in <insert domain here>

Henrik Kniberg

Page 75: Agile Everywhere! - Henrik Kniberg

Don’t inflict help on people. Pull works better than Push

Henrik Kniberg

Sure, I’ll show you how we

work, and why.

Sure. Tell me more about your domain, and we’ll figure it out together.

Hey, your way of working looks interesting. Think something similar might

work for us?Hey we’re using Scrum here, you

should too!...

Push

Invites resistance and “not invented here” syndrome

Invites collaboration

I like it! Can you help us get started?

Pull

Page 76: Agile Everywhere! - Henrik Kniberg

WARNING

2 slides full of bullet points coming up

sorry...

Page 77: Agile Everywhere! - Henrik Kniberg

Agile in Domain X requires a collaboration between people who understand Domain X, and people who understand Agile.

Step 1: Understand the context•  What do you do?•  Who are your stakeholders?•  What is a unit of work?•  What does Done mean?•  What does Success look like?•  Who is need to get things to Done?•  What do you want to improve, and why?•  How will you know if you’ve improved?

Henrik Kniberg

Step 2: Understand the tools•  What is Agile? Scrum? Kanban? XYZ? •  Which principles and practices are most

applicable in your context?

Step 3: Get Buy-in•  Who needs to be involved to make the

change happen?•  What’s in it for them?

Step 4: Start experimenting•  When in doubt, start by making work

visible•  Find some early wins to build trust

Page 78: Agile Everywhere! - Henrik Kniberg

Take-aways•  Agile is not new, and not going away

•  The word may go out of fashion, but the ideas are timeless•  Agile can be useful in just about any context, not just software

•  But Agile or <insert framework here> is only a means, never a goal•  Distinguish between Principles and Practices

•  Practices are more domain-specific and need to be adapted or replaced•  Copy & Paste & Evolve

•  No need to reinvent the wheel•  Use the appropriate language for the domain

•  Don’t unnecessarily alienate people with strange words•  Don’t inflict help on people

•  If they are happy with their current way of working, then don’t bother trying to change it.

Henrik Kniberg