|[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
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.
Garold (Gary) L. Johnson