Presentation is loading. Please wait.

Presentation is loading. Please wait.

Agile Software Development The Cooperative Game

Similar presentations


Presentation on theme: "Agile Software Development The Cooperative Game"— Presentation transcript:

1 Agile Software Development The Cooperative Game
Alistair Cockburn Humans and Technology

2 Consider developing software as a “cooperative game of invention and communication”
Playing the cooperative game deliberately produces good strategies. Cooperative issues govern much of the game: Project-specific individuals and situations Distances, Convection currents of information Pride-in-work, Amicability matter “Agile” development is an approach to playing the game effectively.

3 Developing software is making ideas concrete in an economic context.
People inventing and communicating --- Solving a problem they don't yet understand, (which keeps changing out from under them) Creating a solution they don't yet understand, Writing in languages they don’t yet understand, To an interpreter unforgiving of error --- Where every choice has economic consequences, --- and resources are limited.

4 Why don’t Processes solve the problem ?
Wish: The ideal process allows a company to eliminate its dependence on key individuals, producing software reliably, repeatably. do that do this

5 Complex processes using people don’t work as written !
“Work to rule” -doing only what the process calls for- is a standard work-slowdown technique. Why does breaking the process improve it? (It was wrong to start with) Why do workers bother to break rules to improve it? (Pride in accomplishment) Software development is really a Cooperative Game -- of invention and communication

6 Organization Survival
Software Development is a goal-directed cooperative game ( just like business !) Organization Survival Infinite Career Management King-of-the-hill wrestling Finite w/ no fixed end Jazz music Poker Tennis Rock-Climbing Finite & goal-directed Software Development Competitive Cooperative

7 A resource-limited cooperative game
Primary Goal  Deliver this software Secondary Goal  Set up for the next game Two conflicting games in one Net result: Not repeatable ! Game Elements: People, Cooperation, Invention, Communication

8 The players in the game are PEOPLE - and People are stuffed full of personality
Methodology Ecosystem Values Values Activities Milestones Jenny Jim Peter Annika Quality Process Teams Tester Designer Documenter Project manager Products Techniques Roles People Standards Tools Skills Personality

9 Methodologies get rebuilt around ecosystems
Marketing group Business analysts Marketplace Programmers Jenny (Pete) Bill Mary (swimsuits)

10 Methodology and Ecosystem are always in interplay
When each changes, the ecosystem rearranges itself. Ecosystem: Actual project details (“environment”) Flights of stairs people must climb (“cliffs”) Office layout (“terrain”) Staff roles (“species”) Specific strong people (“predators”)

11 People are unpredictable, spontaneous devices
Weak on: Strong on: Consistency Communicating Discipline Looking around Following instructions Copy / modify-Changing work habits Motivated by: Pride in work Pride in contributing Pride in accomplishment

12 “Convection Currents of Information” : a playful COMMUNICATIONs metaphor
Kim Proximity Osmosis Drafts Radiators Pat

13 What can we tell from an office plan?
Courtesy of RoleModel Software

14 Poor office layout costs the project a lot
Programmers cost = $ 2.10 / minute (± 50%) Reference pair 100 questions/week 1 minute delay / question = $210/week (100 work min.) ... for 12 people on a project = $ 2,500 / week ... for 12 month project = $ 100,000 (= 6 work weeks =~ 1.5 work months) + Lost Opportunity Costs for questions not asked!

15 People don’t ask questions if they have to climb stairs.
Kim Pat Think $300,000 / yr penalty. (1/3 work year) Kim Pat Think $100,000 / yr penalty. (1.5 work month)

16 Information drifts in currents -- (not unlike perfume)
Kim Pat Still Effective. Nearby programming Kim Pat Most effective. Programming in pairs “Managing the Flow of Technology,” Thomas J. Allen, M.I.T. Sloan School of Management “Distance Matters,” Olson & Olson

17 “Nearby programming” is effective
“Nearby programming” is effective. “Programming in pairs” is more effective. Photo courtesy of Thoughtworks corp.

18 Beware: Morale flows through convection currents and osmosis, too!
Photo courtesy of Evant corp.

19 NOW can you tell anything from an office plan?
Kitchen Programming work Meeting Private work Library Watch for: drafts convection currents communities Courtesy of Ken Auer, RoleModel Software, Inc.

20 Elements of the “convection current” discussion
 Proximity  Osmosis  Drafts  Radiators

21 Information radiators emit passively
People get information just by walking past ! Photos courtesy of Thoughtworks

22 Information radiators are suited for plans, status, initiatives
Reflection workshop results Iteration Plan Courtesy of Evant corp. Courtesy Joshua Kerievsky

23 COOPERATION: The alignment of people’s goals affects the team efficiency
Normal team Aligned team (Dirty Dozen again)

24 COOPERATION: Amicability between people determines how quickly information moves
Amicability : Willingness to listen with good will The “amicability index” indicates how easily information passes from one part of the organization to another. A low amicability index implies that people block the flow of information, intentionally or through not listening well.

25 A project’s speed largely depends on Cooperative Game issues
Can people easily detect something needs attention? (Good at Looking Around) Will they care enough to mention it or attend to it? (Pride-in-work; Amicability) Can they effectively pass along the information? (Economics of proximity, convection currents)

26 Every game run uses different strategies -- Set up each project’s accordingly or suffer
Number of people coordinated Comfort Essential moneys Life 1 - 6 - 20 - 40 - 100 - 200 - 500 - 1,000 C6 C20 C40 C100 C200 C500 C1000 D6 D20 D40 D100 D200 D500 D1000 E6 E20 E40 E100 E200 E500 E1000 L6 L20 L40 L100 L200 L500 L1000 Discretionary “Criticality”

27 The Cooperative Games is part of the Agile Software Development story
Agile Software Development Manifesto: “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over Processes and Tools Working software over Comprehensive documentation Customer collaboration over Contract negotiation Responding to change over Following a plan That is, while there is value in the items on the right, we value the items on the left more.”

28 Agile development puts delivering software, and people as the active ingredients
Frequent delivery Fewer, better people Motivation & goal alignment Communication, more verbal communication Simplified designs Different tactics for different projects Frequent feedback and reflective examination Agile development plays the cooperative game effectively by delivering software early, regularly, efficiently.

29 Read more at http:// Alistair.Cockburn.us


Download ppt "Agile Software Development The Cooperative Game"

Similar presentations


Ads by Google