|
Alistair Cockburn,
Humans and Technology, Salt Lake City, USA
Abstract. "Software engineering"
was introduced as a model for the field of software
development in 1968. This paper, reconsidering that
model in the light of four decades of experience,
finds it lacking in its ability to explain project
success and failures, predict important issues in
running projects, and help practitioners formulate
effective strategies on the fly. An alternative underlying
model for software development is presented: Software
development as a series of resource-limited, goal-directed
cooperative games of invention and communication.
The primary goal of each game is the production and
deployment of a software system; the residue of the
game is a set of markers to assist the players of
the next game. People use markers and props to remind,
inspire and inform each other in getting to the next
move in the game. The next game is an alteration of
the system or the creation of a neighboring system.
Each game therefore has as a secondary goal to create
an advantageous position for the next game. Since
each game is resource-limited, the primary and secondary
goals compete for resources.
The cooperative-game model provides the benefits that
the software engineering model misses: It raises to
the proper priority level issues crucial to successful
software projects; it explains how teams with messy-looking
processes sometimes outperform others with tidier
processes; and it helps busy practitioners decide
how to respond to unexpected situations. Finally,
it is seen that much of engineering in the general
belongs in the category of resource-limited, cooperative
games.
Volume 01 , Issue 01 (February
2004) table of
contents
Year of Publication: 2004
ISSN:1820-0214
Publisher ComSIS Consortium |
| Full
text available: |
Pdf |
|