Do you want to really improve your software development organization instead of complying with an arbitrary standard, or trying the latest fad? This book presents the fundamentals of creating sustainable organizations, based on in-depth studies of over 100 real software development organizations.
The authors present nearly 100 organizational patterns to help you create a highly effective organization. Case studies and vignettes illustrate how these patterns work. This practical guide shows you how to reshape critical parts of your organization. Regardless of your role, you will find patterns that you can use to make your organization more effective.
Review By: Jennifer Cannon 06/15/2010There are many frameworks, development methods, techniques, and processes used in the development and creation of software that meets the needs of the user efficiently and effectively. But how do you create an effective and efficient software development organization? How can a healthy software development organization be sustained? Organizational Patterns of Agile Software Development provides some fundamentals of organizational development that were derived from in-depth studies of many real software development organizations from around the world.
The book is divided into four parts. In part one, the authors provide a history and introduction to help in the understanding of the core principles of the book—the patterns themselves. According to the authors, no pattern is new. They have been out there, waiting to be discovered. The reading of this first section is a must if the concepts of patterns and pattern languages in organizational development are new to you. (This section is a little dry and not an easy read.) The terminology the authors discuss helped me understand the patterns in context. The chapter on how to use the book provided some insight on how to read each pattern, how to understand the model behind the pattern, and how to apply the patterns to your organization.
Part two contains the descriptions of the patterns themselves. The authors divide the patterns into four ”pattern languages”: project management, piecemeal growth of the organization (the ways in which an organization grows and develops over time), organizational style (the general approach to the way the organization works), and people and code (the ways in which people affect code). There are almost one hundred organizational patterns described in this book, culled from the authors’ years of studying numerous organizations that performed effectively.
Part three contains foundations and history of organizational structure—helpful in understanding how organizations work and how they can change. Part four contains case studies of two organizations. These studies show the reader how the patterns can be applied in a real-world scenario.
The only negatives in this book are related to the writing style of the authors, which is extremely academic at times. If you're expecting an easy, light read, you won't find it. Also, in the chapters discussing the patterns, there are some forward references to patterns that appear in later pages. To really understand the references and the descriptions at times, I had to jump forward, which was kind of awkward. The authors recommend reading the patterns in order the first time through, though they warn the reader in part one that some patterns point to other patterns, not in the sequence presented.
Do not let the title fool you—this book is really not another discussion of agile development methods. I made that mistake and was very surprised when I started reading it. The book covers much more than just agile development. I found it interesting to read the detailed criteria of how effective software development teams approach their work. It goes way beyond just processes and development techniques. This book is a good read for all levels of software development roles; however the two roles that would benefit the most from this book are development and project management. As one who has only worked in the area of testing and quality assurance, some of the patterns weren't immediately recognizable to me or directly related to what I would experience in day-to-day operations.