“i come to bury agile, not to praise it”

29
©Alistair Cockburn 20 I Come to Bury I Come to Bury Agile, Agile, Not to Praise It” Not to Praise It” Effective Software Development in the 21st Century Alistair Cockburn http://Alistair.Cockburn.us

Upload: vesna

Post on 18-Jan-2016

18 views

Category:

Documents


0 download

DESCRIPTION

“I Come to Bury Agile, Not to Praise It”. Effective Software Development in the 21st Century. Alistair Cockburn http://Alistair.Cockburn.us. I come to bury Agile, not to praise it; The evil methods do lives after them, The good is oft interred with their bones, So let it be with Agile. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

““I Come to Bury I Come to Bury Agile, Agile, Not to Praise It”Not to Praise It”

Effective Software Development in the 21st Century

Alistair Cockburnhttp://Alistair.Cockburn.us

Page 2: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

2

I come to bury Agile, not to praise it;The evil methods do lives after them,

The good is oft interred with their bones, So let it be with Agile.

The noble Waterfall hath told you Agile was ambitious: If it were so, it was a grievous fault,

And grievously hath Agile answered it.

Here, under leave of Waterfall, Lean and the rest - For Lean is an honourable method, So are they all; all honourable methods,Come I to speak in Agile's funeral.

(based on Shakespeare’s Julius Caesar, Act 3. Scene 2)

Page 3: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

3

Agile was my friend, faithful and just to me:But Waterfall says he was ambitious; And Waterfall is an honourable method.

Agile hath brought many projects home to Rome,Whose Payoff did the corporate coffers fill.Did this in Agile seem ambitious?

When the programmers have cried, Agile hath wept. Ambition should be made of sterner stuff.Yet Waterfall says he was ambitious, And Waterfall is an honorable method.

You all did see that in 2003 We twice presented him a kingly crown,Which he did twice refuse. Was this ambition? Yet Waterfall says he was ambitious, And sure he is an honorable method.

(based on Shakespeare’s Julius Caesar, Act 3. Scene 2)

Page 4: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

4

I speak not to disprove what Waterfall spoke,

But here I am to speak what I do know.

You all did love Agile once, not without cause. What cause withholds you then to mourn for it?

(based on Shakespeare’s Julius Caesar, Act 3. Scene 2)

Page 5: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

5

Bear with me.

My heart is in the coffin there with Agile,

And I must pause till it come back to me.

(based on Shakespeare’s Julius Caesar, Act 3. Scene 2)

Page 6: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

6

Developing software

consists of People

making Ideas concrete

in an Economic context

Page 7: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

7

inventing, deciding, communicating, Solving a problem they don't yet understand

which keeps changing

Creating a solution they don't yet understand which keeps changing

Expressing ideas in languages they don’t understand which keep changing

To an interpreter unforgiving of error

Making decisions with limited resources and every choice has economic consequences

People

Page 8: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

8

Software development is aCooperative Game

Page 9: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

9

Infinite Organization SurvivalCareer Management

Competitive Cooperative

Open-ended Jazz music

Finitegoal-directed

King-of-the-hillwrestling

Poker

Tennis

Chess

Product Line Management

Rock-ClimbingTheater

JournalismExplorationSoftware

Development

Swamp game

IT Systems

Games have positions, moves, strategies

Page 10: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

10

Two conflicting subgoals:

Deliver this softwareSet up for the next game

Three moves:InventDecideCommunicate

and the situations (almost) never repeat!

Page 11: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

11

C6 C20 C40 C100

D6 D20 D40 D100

E6 E20 E40 E100

L6 L20 L40 L100

Project Classification Scale:

Number of people coordinated

1 - 6 - 20 - 40 - 100

Comfort

Essentialmoneys

Life

Discretionarymoneys

Criticality

X

X X

XX

Adapt to your situation

Page 12: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

12

Richness of communication channel

Com

mun

icat

ion

Eff

ectiv

enes

s

2 people on phone

2 peopleon chat

(Questio

n-and-Answer)

2 people atwhiteboard

(Courtesy of Thoughtworks, inc.)

Face-to-face is the most effective - Try Video

Paper(No Question-Answer)

Videotape

Page 13: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

13

Kim Pat12 people:= $100,000 / yr penalty

12 people = $300,000 / yr penaltyKim

Pat

Distance is expensive

Kim Pat Programming in pairs

“Managing the Flow of Technology” “Distance Matters”

Page 14: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

14

People issues determine a project’s speed

Can they easily detect something needs attention?

(Good at Looking Around)

Will they care enough to do something about it?

(Pride-in-work; Amicability)

Can they effectively pass along the information?

(Proximity; face-to-face)

Page 15: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

15

Software development is a Craft

Page 16: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

16

Craft teaches us to pay attention to our skills and to the medium

Major crafts:

1 Deciding what to build

2 Managing (people and projects)

3 Modeling

4 Designing the external view

5 Large-scale design (architecting)

6 Fine-scale design (programming)

7 Validating the work

Page 17: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

17

People learn skills in 3 stages

Shu: Learn a technique

Ha: Collect techniques

Ri: Invent / blend techniques

Page 18: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

18

Use Lean Processes

Page 19: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

19

I wish they’d decide what style they want!

Users &Sponsors

Testers

BusinessAnalysts

I wish they’d decide what

functions they want!

A decisionI wish they’d decide

on the UI designalready!

I wish they’d think a bit more carefully

before coding!

Programmers

Every line of

code is a decision

UI Designers

Software development looks like manufacturing if the unit of inventory is the

unvalidated decision!

Page 20: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

20

Software development has correction loops

Detaileddecisions about

externalappearance

Decisions about function

and style

Detailed decisionsabout function

and data

Decisions about program

structure

Decisions about systemcorrectness

Users &Sponsors

UI Designers

ProgrammersTesters

BusinessAnalysts

Page 21: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

21

From Lean Manufacturing: aim for continuous flow

time

Testers100 lines of codeshow up for testing

# of design decisions

Decisions being validated or broken

How long this line of code / screen / use case / decisionsits in the testing queue

Decisions arriving

Page 22: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

22

From Lean Manufacturing: watch your queues

Enough Users & Sponsors

Many Business Analysts

Not enough Programmers Some

Testers

Users & Sponsors

absent

UI Designers

Business Analysts

some Programmers

Database designers

Tester

Enough Users & Sponsors

UI Designer

A few Business Analysts

Lots of Programmers

Single, solitary Databasedesigner

Page 23: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

23

Design is Knowledge Acquisition

Page 24: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

24

Delivers nearly no knowledge(or risk reduction)

Knowledge comes atthe “moment of truth”: final integration.

Waterfall is a late-learning strategy

time

cost

Growth of knowledge with big-bang integration

Page 25: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

25

Development sequence indifferent (with respectto knowledge)

Delivers knowledge

(risk reduction)

We can pay to learn early in the project

time

cost

Growth of knowledge with early, continuous integration

Page 26: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

26

Develop for business value once risks are down

time

Knowledge growing(risk reduction)

cost

Growth of business value

Business value growing

Page 27: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

27

Trim to deliver on-time (or early)

Delay to get moreor better

Trim the Tail: Choose to deliver by value or date

Page 28: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

28

In the 21st century, software engineering will use craft, cooperative game & lean principles

Craft developing skills in a mediumshu - ha - ri

Cooperative game of invention and communication teamwork, communication, strategies

Lean processes (“unvalidated decisions = inventory”) small queues, cross-trained people, varyied processes

Design as knowledge acquisition early integrationpay to learn trim the tail

Page 29: “I Come to Bury Agile,  Not to Praise It”

©Alistair Cockburn 2009

29

http://Alistair.Cockburn.us