Agile and software engineering in the 21st century

25
©Alistair Cockburn 2010 What Makes Agile Work: What Makes Agile Work: The New Software Engineering The New Software Engineering Getting Past “Wimpy” Agile Getting Past “Wimpy” Agile Dr. Alistair Cockburn http://Alistair.Cockburn.us

description

Dr. Alistair Cockburn Agile and Software Engineering in the 21st Century

Transcript of Agile and software engineering in the 21st century

Page 1: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

What Makes Agile Work: What Makes Agile Work:

The New Software EngineeringThe New Software EngineeringGetting Past “Wimpy” AgileGetting Past “Wimpy” Agile

Dr. Alistair Cockburnhttp://Alistair.Cockburn.us

Page 2: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

2

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?

Page 3: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

3

People ...

Solving a problem

Creating a solution

To an interpreter unforgiving of error

Making decisionsevery decision has economic consequences

and resources are limited.

… they don’t understand which keeps changing

Com

municating

Deciding

Inve

ntin

g Expressing ideas

in a language … they don’t understand which keeps changing… they don’t understand which keeps changing

Page 4: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

4

Craft

Cooperative Game

Knowledge Acquisition

Flow Management

Self-Awareness (Personalities)

origami courtesy of Gery Derbier

Page 5: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

5

Self - Awareness

Page 6: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

6

People don’t match formulas

Keep these Try these

Problems

Page 7: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

7

Craft

Page 8: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

8

People learn skills in 3 stages

Shu: Learn a technique

Ha: Collect techniques

Ri: Invent / blend techniques

Page 9: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

9

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 10: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

10

The International Consortium for Agile is establishing a learning roadmap for each specialty.

Page 11: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

11

Cooperative Game

Page 12: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

12

Infinite Organization SurvivalCareer Management

Competitive Cooperative

Open-ended Jazz music

Finitegoal-directed

King-of-the-hillwrestling

Poker

Tennis

Chess

Rock-ClimbingTheater

JournalismExplorationSoftware

Development

Business

Product Line Management

IT Systems

Games have positions, moves, strategies

Page 13: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

13

Three moves:

Two conflicting subgoals:

Deliver this systemSet up for the next game

The situations (almost) never repeat!

Com

municating

Deciding

Inve

ntin

g

Page 14: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

14

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 15: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

15

Richness of communication channel

Com

mun

icat

ion

Eff

ectiv

enes

s

2 people on phone

2 peopleon chat (Q

uestion-and-Answer)

2 people atwhiteboard

(Courtesy of Thoughtworks, inc.)

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

Paper(No Question-Answer)

Videotape

Page 16: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

16

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 17: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

17

Flow Management

Page 18: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

18

I wish they’d decide what style they want!

Users &Sponsors

Testers

BusinessAnalysts

I wish they’d decide what

functions they want!

A decision

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

Design = manufacturing if Inventory = Decisions!

Page 19: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

19

Users &Sponsors

UI Designers

ProgrammersTesters

BusinessAnalysts

Convert jams

Users &Sponsors

UI Designers

ProgrammersTesters

BusinessAnalysts

to continuous flow.

Reduce decisions in motion & balance the flow

Page 20: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

20

Knowledge Acquisition

Page 21: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

21

Delivers nearly no knowledge(or risk reduction)

Big-Bang Design is a late-learning strategy

time

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

cost

Growth of knowledge with big-bang integration

Page 22: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

22

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

Applies to both business ("lean startups") & technical design

Page 23: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

23

Develop for business value once risks are down

time

Knowledge growing(risk reduction)

cost

Business value growing

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

Page 24: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

24

Trim to deliver on-time (or early)

Delay to get moreor better

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

Page 25: Agile and software engineering in the 21st century

©Alistair Cockburn 2010

25

Craft Professions

skills in a medium

Cooperative Game communication teamwork strategies

Knowledge Acquisitionpay-to-learntrim-the-tail

Flow Managementunvalidated decisions

= inventory,lean processes

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

actually used

Designing in Teams

origami courtesy of Gery Derbier