Our Blog Excerpts Savings Contact


Dorset House Publishing
High-Quality Books on Software Engineering and Management.  Since 1984.
dorsethouse.com > features
Features       Excerpts       Interviews


iDH Sign-Up

Get Our e-News
Delivered by FeedBurner

Building Better Software

by James A. Highsmith III

Adapted from Preface and Chapter 1 of Adaptive Software Development. Reprinted by permission. All rights reserved. See below for copyright notice.

Building better software in a world in which high speed, high change, and uncertainty are key characteristics is the challenge we face as the century draws to a close. Organizations get into trouble with the high-speed, high-change projects that are typical of e-business and e-commerce initiatives. Like climbers inadvertently picking a mountain beyond their climbing skills, many organizations don't know how to do these projects, and even worse, they don't know they don't know. They think the solution is simply to do more of what they have been doing. Adaptive Software Development targets extreme software projects in which the margin for error is small. It is intended to increase not just the staff's odds of surviving but also the chance of its emerging with reasonable mental health!

Success on extreme projects is measured in three equally important ways. First, the product gets shipped. Second, the product approaches its mission profile (a prioritized combination of scope, schedule, resource, and defect level). And third, the project team is healthy at the end.

Extreme projects are profoundly different from those less buffeted by speed and uncertainty. They require more than a new tool or technique, more than a revised software life cycle, and more than participative management. For them, success has a unique meaning:

Success is rooted in challenging our most fundamental assumptions about software development, management, and even the foundations of science.

To help organizations achieve success, Adaptive Software Development has five primary goals.

Adaptive Culture

The first goal of the book is to offer an alternative to the belief that optimization is the only solution to increasingly complex problems. Optimizing cultures believe they are in control, that they can impose order on the uncertainty around them. Imposed order is the product of rigorous engineering discipline and deterministic, cause-and-effect-driven processes. The alternative idea is one of an adaptive culture or mindset, of viewing organizations as complex adaptive systems, and of creating emergent order out of a web of interconnected individuals. An adaptive approach raises the acknowledgment of an uncertain and complex world from being a manager's death knell to being part of a recognized and accepted strategy.

Adaptive Frameworks

The second goal of the book is to offer a series of frameworks or models to help an organization employ adaptive principles. The Adaptive Development Life Cycle, for example, is a framework that reinforces the concepts and provides a practical way of moving from the conceptual to the actionable. While there are other types of iterative life cycles, they have not been based on underlying adaptive concepts but rather on short-cycle determinism. There is a certain synergy in linking iteration with adaptive ideas to combat complexity. The frameworks are supplemented by a discussion of various techniques (customer focus groups, for example). However, the focus is on the frameworks, not on a compendium of techniques.

Adaptive Collaboration

The third goal is to establish collaboration—the interaction of people with similar and sometimes dissimilar interests, to jointly create and innovate—as the organizational vehicle for generating emergent solutions to product development problems. To be effective at feature-team, product-team, and enterprise levels, collaboration must be addressed in terms of interpersonal, cultural, and structural relationships.

Adaptive Scale

The fourth goal of Adaptive Software Development is to provide a path for organizations needing to use an adaptive approach on larger projects. Because Rapid Application Development (RAD) approaches had a reputation of eschewing all discipline and rigor, they were relegated by many developers for use only on noncritical toy projects. Real projects require rigor and discipline; RAD was for playing. So, the last chapters of the book show how adaptive development works in real-life situations in which uncertainty and complexity create the need for an approach that is both adaptable and scalable. A major component of meeting this challenge is the ability to move from a workflow, process-oriented development life cycle to one based on workstate and information.

The idea for this book began as one about RAD projects, written to answer such questions as, "Why does RAD work?" and "How does what works scale up?" I asked these questions because my experience and that of colleagues like Sam Bayer in implementing individual RAD projects was highly successful. I consulted with numerous large software companies that used RAD techniques on very large projects. I also worked with several IT groups that could never seem to leverage success on individual projects into larger successes. I tried to look not only at why certain practices worked, but also at the circumstances in which they were applicable.

Adaptive Management

Circumstances are defined by culture. The culture of Command-Control management has become outdated, in part because of wider cultural trends toward flexible management styles, wider participation in decision-making, and empowerment, but also because of a single pragmatic fact: Command-Control management cannot process knowledge and information quickly enough in the new economy. So, the last goal of this book is to offer a new, adaptive management style, which I label Leadership-Collaboration, to replace Command-Control. The ability to adapt and move quickly requires that "leadership" replace "command" and "collaboration" replace "control."

Our business culture and styles of management have been built around an optimizing mindset that values stability and predictability. Our management tools (derived from this belief) work—or seem to work. Consequently, we fail to understand the sharp disparity between orderly and complex systems. Orderly systems can be extremely complicated, but complicated and complex describe different classes of problems. Complicated problems yield to optimizing techniques; complex problems do not. Tools that work in orderly realms are actually antithetical to complex situations. The disparity between orderly and complex problems requires not only new tools, but a very different mindset—a significant transition for many organizations.

Adaptive Rigor

In an optimizing culture, increased rigor (process improvement) and stabilization are the end goal. Optimizing cultures tend to see the world as black or white, with little room for gray. If it is not rigorous, it must be chaotic (or immature, to use the Software Engineering Institute's parlance).

An adaptive culture recognizes gray. Researchers have coined a phrase for this turbulent gray area between order and chaos—the edge of chaos. It is in this variable, messy, exciting polyglot that emergence happens. In the field of evolutionary biology, for example, scientists postulate that major evolutionary advances occur in this complex region at the edge of chaos.

In an adaptive culture, the goal of rigor is to maintain balance on this edge, providing just enough stabilizing force to keep away from chaos—but no more. Adaptive organizations understand the need for just enough rigor. This balance does not come from a compromise of principles, but from an understanding of how the forces of optimization draw down the very energy sources needed to fuel emergence. Too little rigor yields chaos. Too much stifles emergence and innovation.

So, while one goal of this book is to offer emergent order as an alternative to a belief in and a dependence on imposed order, it does not offer emergent order as a complete replacement but as the basis for a new, additional set of tools for managing complexity. I believe the difference in viewing optimization as a balancing force rather than as a goal in itself provides a significant shift in perspective.

For me, this book was a journey—one that goes on. I invite you to join and hope it engages you as it did me.

AddThis Social Bookmark Button




COPYRIGHT NOTICE: This excerpt from Adaptive Software Development: A Collaborative Approach to Managing Complex Systems [ISBN:0-932633-40-4] appears by permission of Dorset House Publishing. Copyright © 2000 by James A. Highsmith III. All rights reserved. See http://www.dorsethouse.com/books/asd.html. The material contained in this file may be shared for noncommercial purposes only, nonexclusively, provided that this Copyright Notice always appears with it. This material may not be combined with advertisements, online or in print, without explicit permission from Dorset House Publishing. For copies of the printed book or for permissions, contact Dorset House Publishing, 1-800-342-6657, 212-620-4053, http://www.dorsethouse.com, info@dorsethouse.com, New: 3143 Broadway, Suite 2B, New York, NY 10027 USA. Additional rights limitations apply, as presented in the Legal Disclaimer posted at http://www.dorsethouse.com/legal.html.



New:3143 Broadway, Suite 2B  New York, New York 10027  USA
1-800-DH-BOOKS or 212-620-4053, fax 212-727-1044
Copyright © 1996-2008 by Dorset House Publishing Co., Inc. All rights reserved.
Home | Blog | Savings | Stores | Features | Titles | Authors | Subjects | Orders | About | Contact | Legal