Upload
triston-burrus
View
214
Download
0
Embed Size (px)
Citation preview
© Alistair Cockburn, 2002 Slide 1
What Is Agile Development&
What does it Imply?
[email protected]://Alistair.Cockburn.us
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
© 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
© 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 !)
© 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
© 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
© 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)
© 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
© 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.
© 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
© 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
© 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
© Alistair Cockburn, 2002 Slide 13
Jenny(Pete)
Marketplace Programmers
BillMary
Projects get restructured around ecosystem details
Marketinggroup
Businessanalysts
© 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.)
© 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.
© 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
© 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).
© Alistair Cockburn, 2002 Slide 18
Alistair [email protected]
http://members.aol.com/acockburnwww.CrystalMethodologies.org