Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Articles Book Excerpt: Agile Software Development, 2nd ed.

Book Excerpt: Agile Software Development, 2nd ed.

Agile Software Development: The Cooperative Game (2nd Edition) is Alistair Cockburn's new update to his classic work.  That first edition, based on a decade's work, research, and interviews with software project teams won a Jolt Productivity Award in 2001, and quickly became an important resource for proponents of Agile software development.  This second edition profits from five more years of practice and research, expanding the author's ideas even further, into the domains of business and engineering projects.  But the basics have not changed: In the InfoQ exclusive excerpt from Chapter 1, Cockburn is once again encouraging us to think about software development as a "cooperative game of invention and communication.”
The cooperative game model grew alongside the agile model. Originally constructed to explain software development, it struck a chord with business people, who rightly saw that business is also predominantly a cooperative (and competitive!) game of invention and communication.
The creation of software is somewhat difficult to define, a bit of a conundrum, as Cockburn himself observes in the beginning of this chapter:
...although programming is a solitary, inspiration-based, logical activity, it is also a group engineering activity. It is paradoxical, because it is not the case, and at the same time it is very much the case, that software development is:
  • Mathematical, as C. A. R. Hoare has often said
  • Engineering, as Bertrand Meyer has often said
  • A craft, as many programmers say
  • A mystical act of creation, as some programmers claim
Its creation is sensitive to tools; its quality is independent of tools. Some software qualifies as beautiful, some as junk. It is a meeting of opposites and of multiple sets of opposites.

So, in this introductory chapter, Cockburn comes at it a different way: using analogies to examine what we do, asking “What would the experience of developing software be like if it were not software we were developing?” He uses examples from both his own art form (poetry) and from co-operative games, particularly rock-climbing, to explore other ways of thinking and talking about software development.

He then goes on to examine the idea of software development as a cooperative game of invention and communication more closely. The chapter considers the primary goal of the game (delivering working software) and the secondary goal, or residue of the game (setting up for the next game), where the "next game" is altering or replacing the system, or creating a neighboring system.

He finishes by relating these ideas to everyday life: how the application of this "collaborative game" vocabulary can help teams think about adopting Agile software development.  In this language, the team plays the game toward an agreed-upon goal: collaborating, strategizing and reflectively choosing their moves to maximize benefit for not just the team but also the larger game of the enterprise.

Chapter 1 itself has not changed much in five years, but whether you are new to this work, or simply haven't revisited it for some time, it still makes good reading:  here is Chapter 1: A Cooperative Game of Invention and Communication from Alistair Cockburn's new book.

Agile Software Development: The Cooperative Game, Second Edition,
Addison-Wesley Professional Agile Software Development Series; Series Editors: Alistair Cockburn and Jim Highsmith
ISBN 0-321-482751
Copyright 2007 Pearson Education, Inc.; Published October, 2006

Update: This book is now also available at Safari Books Online.

Rate this Article