Presentation Transcript
What Is Agile Development&What does it Imply? :What Is Agile Development&What does it Imply? alistair.cockburn@acm.orghttp://Alistair.Cockburn.us Alistair Cockburn
Talk structure What agile is (isn’t), and what it implies :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
‘Agile’ got there by winning the development races in the turbulent 1990s. :‘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 - 1995
RAD DSDM
XP Crystal
Scrum Adaptive
Agile software development is about valuing “maneuverability” and “efficiency” :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 !)
Software development is making ideas concrete in an economic context. :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
A resource-limited cooperative game of invention and communication :A resource-limited cooperative game of invention and communication Primary Goal ? Deliver this software
Secondary Goal ? Set up for the next game
Elements of the Game:
People,
Cooperation,
Invention,
Communication
(p.s.
The game
never
repeats !!)
Key topics in the cooperative game :Key topics in the cooperative game 1. Different tactics for different projects
2. People’s Personalities, Motivation, Goal Alignment
3. Talent & Skill (fewer better people)
4. Communication (developers - developers - users)
5. Energy Management (minimal requirements/design)
6. Reflecting on what works / doesn’t work
7. Quality in work (good, simple designs)
8. Good Tools (configuration management, testing)
9. Tacit knowledge, verbal communication
10. Frequent Delivery (incremental development)
The players in the game are “People,”Highly spontaneous, active devices :The players in the game are “People,”Highly spontaneous, active devices Weak on: Strong on:
Consistency Communicating
Discipline Looking around
Following instructions Copy / modify-ing
Motivated by:
Pride in work
Pride in contributing
Pride in accomplishment
People communicate most effectively interactively, face-to-face. :People communicate most effectively interactively, face-to-face. Richness of communication channel Communication Effectiveness 2 people at
whiteboard 2 people
on phone 2 people
on email Videotape Photo courtesy of Evant corp.
Methodology meets Project details: (a) Methodology = theory of a project :Process Techniques Tools Skills Roles Standards Quality Teams Products Milestones Activities Personality Project manager Documenter Designer Tester Methodology meets Project details: (a) Methodology = theory of a project Methodology Values
“Ecosystem” = the actual project details. (b) People are stuffed full of personality :Ecosystem Methodology Process Techniques Tools Skills Roles Standards Quality Teams Products People Milestones Activities Personality “Ecosystem” = the actual project details. (b) People are stuffed full of personality Project manager Documenter Designer Tester
Methodology and Ecosystem are always in interplay :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
Projects get restructured around ecosystem details :Marketplace Programmers Projects get restructured around ecosystem details Marketing
group Business
analysts
Misconstruing the message:1. Agile is hacking. :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.)
Misconstruing the message2. Agile only works with the best developers. :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.
Getting the message:1. Agile techniques are “cheating”. :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 deck
the heart of agile software development
a good idea
Getting the message:2. Agile won’t work for all projects. :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 Cockburnalistair.cockburn@acm.orghttp://members.aol.com/acockburnwww.CrystalMethodologies.org :Alistair Cockburnalistair.cockburn@acm.orghttp://members.aol.com/acockburnwww.CrystalMethodologies.org