Heart of Agile meets “Risk Reduction 2.0 … The Heart...Heart of Agile Collaborate Deliver...

Post on 29-May-2020

2 views 0 download

Transcript of Heart of Agile meets “Risk Reduction 2.0 … The Heart...Heart of Agile Collaborate Deliver...

© Alistair Cockburn 2015

“Heart of Agile” meets “Risk Reduction 2.0 (Disciplined Learning)”

Dr. Alistair Cockburn http://Alistair.Cockburn.us

© Alistair Cockburn 2015

2

People ...

To an interpreter unforgiving of error

Making decisions every decision has economic consequences and resources are limited.

… they don’t understand which keeps changing

Deciding

… they don’t understand which keeps changing … they don’t understand which keeps changing

© Alistair Cockburn 2015

3

The Agile Manifesto invites wimpy-ness

"… Individuals and interactions over processes & tools…" (Yayy!! I don't have to follow those stupid processes any more!)

"… Working software over comprehensive documentation…"

(W00t!! Dump the documentation! I LOVE this agile stuff!) "… Customer collaboration over contract negotiations…"

(I'm done when I'm done and I never have to say when!) "… Responding to change over following a plan…"

(No plans! No project managers! No architects! )

Where do I sign up?

© Alistair Cockburn 2015

4 People develop skills in 4 stages

© Alistair Cockburn 2015

5

The Heart of Agile simplifies again

Collaborate

Deliver

Reflect

Improve

© Alistair Cockburn 2015

6

The Heart expands into Details

Learning Income

Collaboration

Trust

Experiment Change

Examine

Introspect

Collaborate

Deliver

Reflect

Improve

Business Social Technical

Cost Queues Early Revenue

Goals

Results

Include Emotions

Focus Forwards

Emotional Safety

Concretely (Solutions Focus)

Limit Changes

Aggressively

Allow failure

Let someone else do it

Step forward

Listen

© Alistair Cockburn 2015

7

Craft Professions

skills in a medium

Cooperative Game communication teamwork strategies

Knowledge Acquisition pay-to-learn trim-the-tail

Flow Management unvalidated decisions

= inventory, lean processes

Self-Awareness (Personalities) the people, strategies, techniques

actually used

Advanced Agile Development

origami courtesy of Gery Derbier

© Alistair Cockburn 2015

8

Use Lean Processes

for Flow Management

© Alistair Cockburn 2015

9

(Think about how many lines

of code testers get

handed at one moment!)

In software development, people wait on other people to make decisions

I wish they’d decide what style they want!

Users & Sponsors

Testers Business Analysts

I wish they’d decide what

functions they want!

A decision made by the user/sponsor to be used by the

UI designer I wish they’d decide

on the UI design already!

I wish they’d think a bit more carefully

before coding!

Programmers

Every line of code is a decision!

UI Designers

© Alistair Cockburn 2015

10

Users & Sponsors

Testers

Business Analysts

Programmers

UI Designers

Software = manufacturing if Inventory = Decisions!

© Alistair Cockburn 2015

11

A team’s optimal process and best strategies depend on its decision dependency network.

Users & Sponsors

absent

UI Designers

Business Analysts

some Programmers

Database designers

Tester

Enough Users & Sponsors

Many Business Analysts

Not enough Programmers Some

Testers

Enough Users & Sponsors

UI Designer

A few Business Analysts

Lots of Programmers

Single, solitary Database designer

© Alistair Cockburn 2015

12

Large-batch transfers (of decisions, in our case ) makes a system’s behavior harder to predict.

time

people

Vertical lines = queue length at any time

Horizontal lines = wait time in the queue

time

People arriving

People being served

people

© Alistair Cockburn 2015

13

Queuing theory shows that feed systems like these run more smoothly with small transfers

time

Vertical lines = queue length at any time

Horizontal lines = wait time in the queue

People arriving

People being served

time

people people

© Alistair Cockburn 2015

14

This applies when you choose to hand testers 1,000 lines of code to test, or 100 lines of code.

Hint: Prefer 100

time

Testers 100 lines of code show up for testing

Total # of design decisions being validated

Decisions being validated (or broken)

time

Testers 1,000 lines of code show up for testing

How long this line of code / screen / use case /

decision sits in the testing queue

How long this line of code / screen / use case /

decision sits in the testing queue

Decisions arriving

© Alistair Cockburn 2015

15

Users & Sponsors

UI Designers

Programmers Testers

Business Analysts

Convert jams

Users & Sponsors

UI Designers

Programmers Testers

Business Analysts

to continuous flow.

Reduce decisions in motion & balance the flow

© Alistair Cockburn 2015

16

Design is

Knowledge Acquisition

© Alistair Cockburn 2015

17

Delivers nearly no knowledge (or risk reduction)

Big-Bang Design is a late-learning strategy

time

Knowledge comes at the “moment of truth”: final integration.

cost

Growth of knowledge with big-bang integration

© Alistair Cockburn 2015

18

Development sequence indifferent (with respect to knowledge)

Delivers knowledge (risk reduction)

We can pay to learn early in the project

time

cost

Growth of knowledge with early, continuous integration

© Alistair Cockburn 2015

19

Develop for business value once risks are down

time

Knowledge growing (risk reduction)

cost

Business value growing

Reduce risks: - Business - Social - Technical - Cost / Schedule

© Alistair Cockburn 2015

20

Value

Knowledge / risk reduction

Three project stages: Risk, Value, Tail

time

Tail

risk value tail Item1 .. … ... item 2 . … .. item 3 .. … . item 4 .. .. . :

© Alistair Cockburn 2015

21

Trim to deliver on-time (or early)

Delay to get more or better

Payoff = Trim-the-Tail: Deliver by value or date

© Alistair Cockburn 2015

22

Craft Professions

skills in a medium

Cooperative Game communication teamwork strategies

Knowledge Acquisition pay-to-learn trim-the-tail

Flow Management unvalidated decisions

= inventory, lean processes

Self-Awareness (Personalities) the people, strategies, techniques

actually used

Designing in Teams

origami courtesy of Gery Derbier

© Alistair Cockburn 2015

23

Postscript: time to deliver a project

time = log( D (b..p) ) * N (u..p) * log( N (p) ) time to deliver a project =

distance between business owner & programmer (log)

* number of people between user & programmer

* number of programmers (log)

© Alistair Cockburn 2015

24

Heart of Agile

Collaborate

Deliver

Reflect

Improve