[Date Prev] [Date Next] [Thread Prev] [Thread Next] | Indexes: Main | Date | Thread | Author |
I have nearly
finished reading “Agile Software Development” by Alistair Cockburn. ISBN:
0-201-69969-9. I got it at Border’s
just because it looked good. I think this is
likely the best book I have ever read on development and analysis of
methodologies, the nature of software development, and the nature of
programming for the individual. The more
theoretical section are particularly valuable. He uses game theory to classify
software development as a
game. He makes a solid
argument that the software development game has primary and secondary goals of
He argues that
there is no faster or less expensive way to build software than to put a small
number of people (2-10) in a single room with “caves and common” (private and
shared) space, printing whiteboards or the equivalent, business domain experts
working with the developers, and let the people build the software. He argues that no
communication can ever be total and complete and that trying to make it so is
futile. Thus attempting to make documentation total and complete is neither
possible nor necessary. Building on the
people strength of being able to “look around”, documentation needs to be just
good enough so that the people who need it can use it to get where they need to
go. He also argues that the documentation needs to address the theory of the
various parts of the design rather than details that are available from the
code. He deliberately
makes heavy use of tacit knowledge as a primary tool rather than as a last
resort. The section on the
impact of the nature of communication channels during collaboration is
extremely interesting in the context of an OHS. He sees face to face
communication wit a way to capture some information as being the “sweet spot”,
and everything as getting poorer from there. This might have definite impact on
the construction of an OHS/DKR. He has an essay
from Peter Naur’s (of the Backus-Naur Form) “Programming as Theory Building”
that argues that software development is about the theory that the developers
evolve to relate the portion of the real world being addressed to the software
that they are developing. This fits with my experience over the years. These ideas have
some disturbing implications for the current model of how software is developed
and for the creation of collaboration tools in general. He makes the issues of
tacit knowledge even more important in that he sees tacit knowledge as not only
impossible to avoid but as a major tool in the effective collaboration required
to develop software. Thanks, Garold (Gary) L.
Johnson |