A fruitful way to think about software development is to consider it as a cooperative game of invention and communication. The first section asks the question, "What would the experience of developing software be like if it were not software we were developing?" The purpose of the section is to get some distance from the subject in order to explore other ways of talking about it. The second section reviews the broad spectrum of activities called games and finds the place of software development within that spectrum. If you are already familiar with zero-sum, positional, cooperative, finite, and infinite games, you might skim rapidly through the first part of this section. The section continues with a comparison of software development with another team-cooperative gamerock climbingand two common comparison partners, engineering and model building. The third section examines the idea of software development as a cooperative game of invention and communication more closely. It considers the primary goal of the gamedelivering working softwareand the secondary goalor residue of the gamesetting up for the next game. The next game is altering or replacing the system, or creating a neighboring system. The final section in the chapter relates the ideas to everyday life. A Cooperative Game of Invention and Communication
|