18
© Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? [email protected] http://Alistair.Cockburn.us Alistair Cockburn

© Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? [email protected] Alistair Cockburn

Embed Size (px)

Citation preview

Page 1: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 1

What Is Agile Development&

What does it Imply?

[email protected]://Alistair.Cockburn.us

Alistair Cockburn

Page 2: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 2

Talk structure

What agile is (isn’t), and what it implies

What is ‘agile’, how did it get there?

Methodology theory meets project details

Getting / Misconstruing the message

Page 3: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 3

‘Agile’ got there by winning the development races in the turbulent 1990s.

Agile techniques were in use since the beginning.

Agile (mobility-based) techniques did not show competitive advantage in the 1970s / 1980s,but did during the 1990s and do now.

Trial runs of current agile methodologies, 1993 - 1995RAD DSDM XP Crystal Scrum Adaptive

Page 4: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 4

Agile software development is about valuing “maneuverability” and “efficiency”

• Differing tactics fit differing focuses of attention:? predictability? repeatability ? cost? agility

• Agile methods make greater use of:+ Individuals and interactions+ Working software+ Customer collaboration+ Responding to change

• Within ‘agility,’ different tactics fit different situations

(“Agile” is not just a retitling of Extreme Programming !)

Page 5: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 5

Software development is making ideas concrete in an economic context.

People inventing / communicating,Solving a problemCreating a solutionUsing limited languages

Where every choice has economic consequences,and resources are limited

Which they don’t fully understand& keeps changing under them

Page 6: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 6

A resource-limited cooperative game of invention and communication

Primary Goal Deliver this softwareSecondary Goal Set up for the next game

Elements of the Game: People, Cooperation, Invention, Communication

(p.s. The game never repeats !!)

InfiniteOrganization Survival

Career Management

Competitive Cooperative

Finite w/no fixed end

Jazz musicKing-of-the-hill

wrestling

Finite & goal-directed

Tennis

Poker

Rock-Climbing

Games

SoftwareDevelopment

Page 7: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 7

Key topics in the cooperative game

1. Different tactics for different projects2. People’s Personalities, Motivation, Goal Alignment3. Talent & Skill (fewer better people)

4. Communication (developers - developers - users)

5. Energy Management (minimal requirements/design)

6. Reflecting on what works / doesn’t work7. Quality in work (good, simple designs)

8. Good Tools (configuration management, testing)

9. Tacit knowledge, verbal communication10. Frequent Delivery (incremental development)

Page 8: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 8

The players in the game are “People,”Highly spontaneous, active devices

Weak on: Strong on:Consistency CommunicatingDiscipline Looking aroundFollowing instructions Copy / modify-ing

Motivated by:Pride in workPride in contributingPride in accomplishment

Page 9: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 9

People communicate most effectively interactively, face-to-face.

Richness of communication channel

Co

mm

un

icat

ion

Eff

ecti

ven

ess

2 people atwhiteboard

2 people on phone

2 peopleon email

Videotape

Paper

Photo courtesy of Evant corp.

Page 10: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 10

Process

Techniques

Tools Skills

Roles

Standards

Quality Teams

Products

MilestonesActivities

Regression testsObject modelProject planUse cases

Microsoft Project3month incrementsUML / OMTC++

Microsoft ProjectSTPEnvy/Developer

ModelingJava programmingJAD facilitation

Personality

Project managerDocumenterDesignerTester

MBWAUse casesCRC cards

Methodology meets Project details:(a) Methodology = theory of a project

Methodology

Values

Page 11: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 11

EcosystemMethodology

Process

Techniques

Tools Skills

Roles

Standards

Quality Teams

Products People

MilestonesActivities

Personality

Jenny

JimPeter

Annika

“Ecosystem” = the actual project details. (b) People are stuffed full of personality

Project managerDocumenterDesignerTester

Values

Values

Page 12: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 12

Methodology and Ecosystem are always in interplay

When each changes, the ecosystem rearranges itself.

Ecosystem:Project details (“environment”)Staff expertise (“species”)Specific dominant / mild people (“predators”)

Flights of stairs people must climb (“cliffs”)Office layout (“terrain”)

Amicability between the individuals

Page 13: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 13

Jenny(Pete)

Marketplace Programmers

BillMary

Projects get restructured around ecosystem details

Marketinggroup

Businessanalysts

Page 14: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 14

Misconstruing the message:1. Agile is hacking.

Hackers

“Avoid planning”

“Spend all their time coding”

“Talk to each other when they are stuck [only]”

“Management caves in out of fear”

Agilists

Plan regularly

Test according to project priorities, recheck results with users often.

Talk to each other and customers as a matter of practice

Expect management to provide priorities, to participate jointly in making project adjustments.

(Hacker interpretations are available & inevitable.)

Page 15: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 15

Misconstruing the message2. Agile only works with the best developers.

Every project needs at least one experienced and competent lead person. (==Critical Success Factor)

Each experienced and competent person on the team permits the presence of 4-5 “average” or learning people.

With that skill mix, agile techniques have been shown to work many times.

Page 16: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 16

Getting the message:1. Agile techniques are “cheating”.

· Hire good people;· Seat them close together to help each other out;· ... close to the customers and users;· Arrange for rapid feedback on decisions;· Let them find fast ways to document their work;· Cut out the bureaucracy.

This is: cheating stacking the deckthe heart of agile software development

a good idea

Page 17: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 17

Getting the message:2. Agile won’t work for all projects.

Right. Not every project team

- values agility - can set up the needed trust and communication

(p.s. Business isn’t fair).

Page 18: © Alistair Cockburn, 2002 Slide 1 What Is Agile Development & What does it Imply? alistair.cockburn@acm.org  Alistair Cockburn

© Alistair Cockburn, 2002 Slide 18

Alistair [email protected]

http://members.aol.com/acockburnwww.CrystalMethodologies.org