Adaptive Software Development
A Collaborative Approach to Building Complex Systems
By James A. Highsmith III
Published by Dorset House, 392 pgs., $44.95 USD, softcover,
2000, ISBN 0-932633-40-4
Overview
This is an excellent book for any software developer, manager, QA analyst, or tester that wants to understand an intelligent way to build software in a rapidly changing environment. Unlike other works on Rapid Application Development (RAD), which have left me asking if there really is enough process in RAD to define what RAD is, this book lays a very strong foundation in the concepts of complex adaptive systems theory. These concepts are used to describe how building software is similar to other complex systems which adapt to achieve a result which emerges, rather than are controlled to achieve a result.
Although people who are proponents of the Capability Maturity Model (CMM) may be initially put off by the ideas of building something that is unknown at the outset, Highsmith does a good job of reinforcing that rigor is needed. The key difference is where the rigor is applied. In ASD, rigor is applied to the workstate rather than the workflow.
Who Will Benefit
I highly recommend this book to:
- Project managers,
- Software developers,
- QA Analysts and testers
What is Adaptive Software Development?
"Adaptive Software Development is driven by a focus on people - to share a common mission, to collaborate, to develop a sense of joint commitment, to learn on the journey together, and to find a balance between people and product and between rigor and flexibility."
What I Like About this Book
First, this book explains why rigid development methodologies are often inadequate to meet the needs of software that must meet the demands of a changing marketplace. There is a spectrum of software development attitudes that spans at one end the "monumental approach" characterized by monumental processes and bureaucracy, and "accidental software development" which rejects all ideas of knowing what is to be built, at the other end of the spectrum. Highsmith does a good job of helping the reader see that both ends of the spectrum are dangerous.
Second, the book goes beyond concepts and shows plenty of ways to apply the ideas. Topics such as creating the project mission, planning adaptive development life cycles, and achieving group collaboration are all addressed in detail.
Third, management topics are addressed in detail and in easy to understand language. All of these concepts and techniques are great, but if management never implements them we just have another good book.
Quote Worth Re-quoting
"The greatest risk we face in software development is that of overestimating our own knowledge."
Scoring
Readability - 5
Breadth of coverage - 5
Depth of discussion - 5
Accuracy - 5
Credibility - 5
Organization - 5
Overall Score - 5
Reviewer: Randy Rice