James O. Coplien and Neil B. Harrison
Prentice Hall, 2005
ISBN 0131467409
Paperback: 419 pages
Organizational Patterns of Agile Software Development is a reference book for software project teams. Yet, it is a reference book that you will want to read and savor. If you have ever been a member of a project team that has struggled to get their act together this is a book you will treasure. If you have a lot of "war stories" about failed projects, this is a book for you.
Coplien and Harrison deliver a book that is more than simple observation and personal opinion. The book presents solid research results that comes from a well-executed research project by the authors and others. Part I, consisting of chapters 1-3, describe patterns in general, how the data was obtained, and how you might use the book.
The meat of the book is in Part II. This section presents the patterns, organized in two major categories -- organization design and organization construction. There are about one hundred patterns in these sections that address most of the situations that organizations of almost any size will encounter as they try to improve their software development process. Some of the patterns are ones that are very familiar, but are now named in the book. This allows us to talk about them at a higher level of abstraction, which delivers more semantic content per word than trying to describe the pattern details individually. This is, in fact, the purpose of patterns.
One example of a familiar pattern is Get On with It. We can paraphrase this pattern as: You know what you need -- at least enough to get started -- so, as soon as you have enough information and some confidence, start developing areas that you have confidence in. Any good project manager or lead developer knows this, but probably never thought of it as an identified pattern.
These patterns do not only have to do with the organization of people. Named Stable Bases and Private World outline how good project teams and organizations apply source code management and version control tools.
Some patterns will make you think of different ways to structure your organization from how you do currently. For example, Developer Controls Process recognizes the centrality of the developer in the development of a feature and urges you to make the developer the focal point of process information. This approach might seem counter-intuitive to many managers. Coplien and Harrison provide rationale for each pattern. You may disagree with their analysis, but you at least have their reasons to ponder.
There are two more parts. Part III discusses organizational principles, with advice on how to prepare your organization for change. These are patterns in a different form, but they are an important cog in the machinery of organizational change. Part IV provides case studies that illustrate the application of the principles of Part III and the patterns of Part II.
Organizational Patterns of Agile Software Development has been around for a couple of years, but the lessons are up-to-date. If you or your organization is considering trying to introduce process change, this book should be a must-read for every member of your organization.

Gary Pollice is a professor of practice at Worcester Polytechnic Institute, in Worcester, MA. He teaches software engineering, design, testing, and other computer science courses, and also directs student projects. Before entering the academic world, he spent more than thirty-five years developing various kinds of software, from business applications to compilers and tools. His last industry job was with IBM Rational software, where he was known as "the RUP Curmudgeon" and was also a member of the original Rational Suite team. He is the primary author of Software Development for Small Teams: A RUP-Centric Approach, published by Addison-Wesley in 2004. He holds a BA in mathematics and an MS in computer science.





