Raising the bar: Super optimizing your Agile implementation using - - PowerPoint PPT Presentation

raising the bar
SMART_READER_LITE
LIVE PREVIEW

Raising the bar: Super optimizing your Agile implementation using - - PowerPoint PPT Presentation

Raising the bar: Super optimizing your Agile implementation using Kanban and Lean Guilherme Silveira, Jesper Boeg, Trifork Software Pilot Tech leader at Caelum jbo@trifork.com November 3, 2010 In general Let us know if: You have


slide-1
SLIDE 1

Raising the bar:

Super optimizing your Agile implementation using Kanban and Lean November 3, 2010

Jesper Boeg, Trifork Software Pilot jbo@trifork.com Guilherme Silveira, Tech leader at Caelum

slide-2
SLIDE 2

In general

Let us know if:

– You have questions (The most important thing is not covering every single slide) – What we are saying does not make any sense at all

This is the first time we do this This is the first time we do this

presentation so any feedback will be much appreciated

slide-3
SLIDE 3

Agenda

Agile anti patterns We can do better! Lean principles can help us understand

how

Implementing lean using Kanban How does that fit with traditional Agile

practices?

Difficulties For mature teams only? (If time permits)

slide-4
SLIDE 4

AGILE ANTI-PATTERNS

slide-5
SLIDE 5
  • 5
slide-6
SLIDE 6
  • support

support booking seats booking seats

slide-7
SLIDE 7
  • show

show seat seat select select seat seat

slide-8
SLIDE 8
  • rejected

accepted (and useless)

show show seat seat select select seat seat

fake sense of half victory good sense of half victory

slide-9
SLIDE 9
  • !

! "# $""

slide-10
SLIDE 10

Sprinting (continued)

Goal is to get everybody working at 100

capacity 90 percent of the time

Disregard for the cost of running a unit at

100 percent utilization 100 percent utilization

– Flexibility – Quality – Flow restriction – Unsustainable pace

slide-11
SLIDE 11
  • 3. Cargo Cult batch sizes

God told us that all Agile projects will fit

2-4 week development cycles without:

– Regard to business – Deployment cost – Deployment cost – Feedback quality – Competition – Minimal marketable features

slide-12
SLIDE 12
  • 4. Sub optimization

Lack of focus on the entire delivery

– Development is by definition seen as the bottleneck – Clear definition of roles restrict flexibility – Clear definition of roles restrict flexibility – PO, Development, Test and Operation become silos – Protecting the sprint without considering the consequences

slide-13
SLIDE 13
  • I do it because a wise man once said:

“This is how things were done before. “This is how things were done before. Don’t ask questions, just do it.”

slide-14
SLIDE 14
  • Adapt as required:

roles technologies technologies tools methodology

slide-15
SLIDE 15
  • Prioritization, delivery, inspection,

reflection and planning are synchronized to maximize periods of undisturbed work

– Delaying feedback – Delaying feedback – Reducing flexibility – Applying the lowest common denominator

slide-16
SLIDE 16
  • 6. Too much work in progress

Enormous backlogs All items on the sprint backlog in

progress

Almost: tested, reviewed, released Almost: tested, reviewed, released

slide-17
SLIDE 17
  • wise

ignorant

guilherme

i can code and solve some simple problems

slide-18
SLIDE 18
  • rich

poor

guilherme

i can eat and attend one conference an year

slide-19
SLIDE 19
  • a top model

ugly

guilherme

i can date almost anyone i want

slide-20
SLIDE 20
  • done

idle

feature

It’s not finished: you can not benefit from it!

slide-21
SLIDE 21

! done idle

slide-22
SLIDE 22
  • 7. Variability reduction

Reducing variability to increase

predictability

– Leveling story -size, -complexity, -risk – Ignoring the nature of product development – Ignoring the nature of product development – Ignoring the cost of wanting 100 percent short term predictability

slide-23
SLIDE 23

WE CAN DO BETTER!

slide-24
SLIDE 24

AND FORTUNATELY A FEW SIMPLE LEAN PRINCIPLES CAN HELP US UNDERSTAND WHY

slide-25
SLIDE 25

First we must remove ourselves from faith based Cargo Cult implementations

Once practices become faith based and

cargo cult we risk loosing sight of the goal

slide-26
SLIDE 26

The goal is not:

Iteration retrospectives Perfect sprint burn downs Frozen iterations Clear separation between PO and SM Clear separation between PO and SM 2-4 week iterations Prioritized backlogs Excellent story point estimates

slide-27
SLIDE 27

if everything is rigid if everything is rigid

slide-28
SLIDE 28
slide-29
SLIDE 29
  • ptions?
  • ptions?
slide-30
SLIDE 30

But could be:

Giving customers the best possible ROI Establishing flow across the entire value chain – to

reduce WIP, increase flexibility and time to market

Fast Feedback loops - to facilitate early and

continuous improvement

Quality built in - to increase trust, reduce rework and Quality built in - to increase trust, reduce rework and

the cost of bug administration

Defer decisions – to reduce queues, wasted effort

and embrace change

Valuing people over processes and tools – to make

the best use of the resources at hand according to the specific context

slide-31
SLIDE 31

8 LEAN PRINCIPLES

slide-32
SLIDE 32

Lean principle 1

Identify value from the customer’s

perspective Breakdown madness occurs when story Breakdown madness occurs when story point throughput becomes more important than customer value

slide-33
SLIDE 33

Lean principle 2

Batch size is a U-curve optimization, not

faith based and context independent.

But Toyota taught us that transaction costs are not fixed

slide-34
SLIDE 34

you may drop it

slide-35
SLIDE 35

you may drop it

slide-36
SLIDE 36

"#

%#&$#'

#(") #

– Stressing the system leads to unsustainable pace, low quality and increased breakdowns in the low quality and increased breakdowns in the production flow – Focusing on detailed plans in high variability environments like product development reduces the chance of pooling variability and leveling throughput – Identify the cost of expediting

slide-37
SLIDE 37

Lean principle 4

Optimize the whole and invest in flexibility

– Development is not always the bottleneck and sub

  • ptimization will often stress the real bottleneck

even more – Flexibility is often a good investment in high – Flexibility is often a good investment in high variability environments like Product Development – Focus on effective silos is batch optimization

Though queues off the critical path are not

free knowing the critical path is very important

slide-38
SLIDE 38

Lean principle 5

Maximum capacity utilization is a failure

mode

slide-39
SLIDE 39

"$

Let the cadence vary according to

context and transaction costs

– Kanbans are used in Lean manufacturing because machines work with different cadences and synchronizing everything in one piece flow is not synchronizing everything in one piece flow is not the optimal solution – Synchronizing everything creates blocks, bottlenecks and queues. – Especially in high variability environments

slide-40
SLIDE 40

Lean principle 7

Reduce WIP to improve flow, feedback

and time to market

– Measuring and controlling queues are far more approaches effective than reducing more approaches effective than reducing variability and improving capacity

slide-41
SLIDE 41

Lean principle 8

We cannot create value without

variability in product development

– Therefore we should always seek the optimal balance between expected payoff and probability

Choise Cost Payoff Probability Value A 20.000 60.000 30% 12.000 B 30.000 60.000 50% 15.000 C 50.000 60.000 90% 9.000

slide-42
SLIDE 42

INTRODUCING KANBAN

slide-43
SLIDE 43

Copy machine

slide-44
SLIDE 44

Paper inventory

slide-45
SLIDE 45

No paper! Order something!

slide-46
SLIDE 46

1 day later

slide-47
SLIDE 47

Tell me you need paper before you need it!

Order 7

slide-48
SLIDE 48

A simple example of a Kanban pull system

New paper is

  • rdered when the

limit prescribed by the Kanban is reached reached

When paper

arrives the Kanban is returned along with the paper

Order 7

slide-49
SLIDE 49

KANBAN PROVIDES US WITH KANBAN PROVIDES US WITH A SIMPLE SET OF PRINCIPLES TO APPLY LEAN TO SOFTWARE DEVELOPMENT

slide-50
SLIDE 50

Limit work in progress

Focus on flow not utilization

– Focus and motivation can be achieved without stressing the system with meaningless deadlines

Deliver often to gain early feedback

slide-51
SLIDE 51

Quality built in

Stop the line mentality

slide-52
SLIDE 52

Continuous improvement

Part of the culture and a state of mind

slide-53
SLIDE 53

Optimizing the whole

Balance demand and throughput

– Sustainable pace – no “cell” should work at more than 80-85 percent capacity – Having free time on your hands – Having free time on your hands – Optimizing the whole

slide-54
SLIDE 54

Prioritize

Focus on business value and minimal

marketable feature sets

slide-55
SLIDE 55

To achieve this

Start by mapping the value stream and

track work on a white board

slide-56
SLIDE 56

Set WIP limits for each stage

Seems Test on DT can’t keep up. Better help out PO is falling

  • behind. Maybe I

can help out when this story is finished

slide-57
SLIDE 57

Use checklists to ensure quality

slide-58
SLIDE 58

Release based on flow

slide-59
SLIDE 59

Pick the low hanging fruits

You will be surprised

how much you can achieve by

– Mapping the value stream – Mapping the value stream – Limiting work in progress. – Optimizing the whole

slide-60
SLIDE 60

HOW DOES THAT FIT WITH CURRENT AGILE BEST PRACTICES?

slide-61
SLIDE 61

You can do it

slide-62
SLIDE 62

You can drop it

slide-63
SLIDE 63

Focusing on value sets instead of practices

Using Kanban focus is no longer on

specific practices

– Choose practices that will help you use resources at hand most effectively in your resources at hand most effectively in your context

slide-64
SLIDE 64

But that is not my practice!!

David Anderson: “I don’t care about your practices”

Keep your eyes on the ball

– We are hopefully using best practices because they deliver value

slide-65
SLIDE 65

Loosing control?

Kanban is NOT a “looser” way of doing

Scrum

– Metrics are just different

slide-66
SLIDE 66

Cumulative Flow Diagrams

slide-67
SLIDE 67

To sum up

Lean can help us understand the nature

  • f Agile Anti-Patterns

Kanban provides an excellent framework

for applying Lean principles to software for applying Lean principles to software development

slide-68
SLIDE 68

BUT THERE ARE NO FREE MEALS

slide-69
SLIDE 69

Difficulties

People react very differently to the new

structure

– Some find it very hard to stay focused while

  • thers take on more responsibility and
  • thers take on more responsibility and

become true craftsmen

slide-70
SLIDE 70

Difficulties

Takes more effort to stay focused on

releases

slide-71
SLIDE 71

Difficulties

Stronger need for overall

plans and long term goals

– Since people are no longer as focused on the short term goal focused on the short term goal

slide-72
SLIDE 72

Difficulties

Controlling continuous integration

– When features are increasingly branched and merged to trunk to allow for fixed release dates without fixed scope

slide-73
SLIDE 73

Difficulties

Wrong perception of Lean

slide-74
SLIDE 74

KANBAN EQUALS FEWER RESTRICTIONS

slide-75
SLIDE 75

DOES THAT MEAN IT CAN DOES THAT MEAN IT CAN ONLY BE USED BY MATURE TEAMS?

slide-76
SLIDE 76

12 years old 12 years old

slide-77
SLIDE 77

had a dog

slide-78
SLIDE 78

hit by a car

slide-79
SLIDE 79

learned learned

slide-80
SLIDE 80

restrictions aregood

slide-81
SLIDE 81

28 years old

slide-82
SLIDE 82
slide-83
SLIDE 83

a daughter

slide-84
SLIDE 84

restrictions

slide-85
SLIDE 85

although sometimes good although sometimes good

slide-86
SLIDE 86

restrictions are also bad

slide-87
SLIDE 87

extra restrictions

whip crack! whip crack! whip crack! whip crack!

slide-88
SLIDE 88

recurring problems?

slide-89
SLIDE 89

add restrictions

kill the vampire kill the vampire and the werewolf and the werewolf kill the vampire kill the vampire and the werewolf and the werewolf

slide-90
SLIDE 90

OR

slide-91
SLIDE 91

Kanban is a good way to start

Since Kanban does not include

specific practices you can start with your current process and improve it one step at a time improve it one step at a time

slide-92
SLIDE 92

Step 1

Visualize your current value chain

slide-93
SLIDE 93

Step 2

Implement/improve one practice at a time and

gradually improve your process by focusing on flow, bottlenecks and limiting WIP

slide-94
SLIDE 94

Why?

Because many Agile projects fail

because they want to do everything at

  • nce and faster than they or the
  • rganization is able to handle
  • rganization is able to handle
slide-95
SLIDE 95

QUESTIONS?

slide-96
SLIDE 96

Contact information

Jesper Boeg

– Mail: jbo@trifork.com – Mobile: +45 51 54 28 20 – Twitter: J_Boeg – Twitter: J_Boeg

Guilherme Silveira

– Mail: guilherme.silveira@caelum.com.br – Mobile: +55 11 83358084 – Twitter: @guilhermecaelum

slide-97
SLIDE 97

EXTRA

slide-98
SLIDE 98

NOTES ON PLAN DRIVEN ITERATIONS

slide-99
SLIDE 99

Plan driven iterations

We are responsible for teaching our

customers and ourselves

– We will deliver exactly what we planned – The world is “Frozen” during the iteration – The world is “Frozen” during the iteration – Business value should always fit a “2 week iteration”

slide-100
SLIDE 100

Plan driven iterations

From a Lean perspective iteration

planning, test, deployment, equals - Batch production

slide-101
SLIDE 101

Plan driven iterations

Batch optimization is built on the faulty

belief that processing big batches we can make the individual machine/fase go faster faster

– Restricting flow – Increasing inventory – Reducing quality

slide-102
SLIDE 102

Plan driven iterations

“We can’t do 2 week iterations because

  • f iteration review/planning overhead”

– Shows you are still living in the old world of “Batch production” optimization “Batch production” optimization – Instead focus on reducing transaction costs

slide-103
SLIDE 103

Kanban is “Leaner” than traditional Agile Methods

But remember to distinguish between

Lean manufacturing and Lean Product Development

– You cannot eliminate variability without – You cannot eliminate variability without eliminating value added in LPD – Cost of delay in manufacturing is often the same

slide-104
SLIDE 104

%&'

* +

slide-105
SLIDE 105

Look at the entire value stream

Start by acknowledging that development is not

always the bottleneck

In cases where this is true you would rather want

developers doing nothing than stressing the real bottleneck further

– Ideally developers are of cause helping relieving the real – Ideally developers are of cause helping relieving the real bottleneck

In traditional Agile methods, development is almost

by definition regarded as the bottleneck

– Keeps you from exposing the real bottleneck – Keeps you from taking the right actions do improve your process – It took a switch from Scrum to Kanban for us to realize this

slide-106
SLIDE 106

Kanban is just a process

Sometimes one process will work better

than another and sometimes they will be equally good.

– Understand your problem before trying to solve it. solve it. – Expand your toolkit. – My tool is better than yours attitude won’t get you anywhere – Compare processes to understand them not for judgment.

slide-107
SLIDE 107

Kanban is just a process

You NEED good practices

– Agile product management principles do not work well without good practices to support them – Quality built in is not just well tested. It is also good architecture and good coding practices

slide-108
SLIDE 108

Practices

If you haven‘t got the technical

practices in place it doesn’t matter what process you are using,

– It won’t get you anywhere in the long run. – But a good process will help you focus focus on having good technical practices – and I will argue that Kanban does that exceptionally well.

slide-109
SLIDE 109

Ask yourself

Are you environment driven or

environment driving?

– Methods – Organization – Organization – People – Technology

That could very well be your biggest

impediment since it stops continuous improvement

slide-110
SLIDE 110

Look at your process from a true Lean perspective

Don’t try to make a process seem Lean just because

it’s a popular word

A team pulling items from a backlog does not make

it a pull system

– It only means that you have a pull mechanism within your system your system – It doesn’t keep you from delivering more functionality than the customer needs or is able to adopt.

A true pull system is based on the entire value

stream and making sure it is closely aligned with the needs and capabilities of the customer

– A software Kanban system should represent such value stream