Page 1
©Alistair Cockburn 2010
Effective Software Effective Software Development in the 21st Development in the 21st Century: Century:
The New Face of Software The New Face of Software Engineeri:ngEngineeri:ng
Dr. Alistair Cockburnhttp://Alistair.Cockburn.us
Page 2
©Alistair Cockburn 2010
2
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 3
©Alistair Cockburn 2010
3
Craft
Cooperative Game
Knowledge Acquisition
Flow Management
Self-Awareness (Personalities)
origami courtesy of Gery Derbier
Page 4
©Alistair Cockburn 2010
4
Craft
Page 5
©Alistair Cockburn 2010
5
People learn skills in 3 stages
Shu: Learn a technique
Ha: Collect techniques
Ri: Invent / blend techniques
Page 6
©Alistair Cockburn 2010
6
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 7
©Alistair Cockburn 2010
7
The International Consortium for Agile is establishing a learning roadmap for each specialty.
Page 8
©Alistair Cockburn 2010
8
Cooperative Game
Page 9
©Alistair Cockburn 2010
9
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 10
©Alistair Cockburn 2010
10
Three moves:InventCommunicateDecide
Two conflicting subgoals:
Deliver this systemSet up for the next game
The situations (almost) never repeat!
Page 11
©Alistair Cockburn 2010
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
©Alistair Cockburn 2010
12
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 13
©Alistair Cockburn 2010
13
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 14
©Alistair Cockburn 2010
14
Flow Management
Page 15
©Alistair Cockburn 2010
15
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 16
©Alistair Cockburn 2010
16
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 17
©Alistair Cockburn 2010
17
Learn from your queues and backups
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 Databasedesigner
Page 18
©Alistair Cockburn 2010
18
Knowledge Acquisition
Page 19
©Alistair Cockburn 2010
19
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 20
©Alistair Cockburn 2010
20
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 21
©Alistair Cockburn 2010
21
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 22
©Alistair Cockburn 2010
22
Trim to deliver on-time (or early)
Delay to get moreor better
Payoff = Trim-the-Tail: Deliver by value or date
Page 23
©Alistair Cockburn 2010
23
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