Skip to content
Paperback Adaptive Software Development: An Evolutionary Approach to Managing Complex Systems Book

ISBN: 0932633404

ISBN13: 9780932633408

Adaptive Software Development: An Evolutionary Approach to Managing Complex Systems

Select Format

Select Condition ThriftBooks Help Icon

Recommended

Format: Paperback

Condition: Very Good

$6.59
Save $38.36!
List Price $44.95
Almost Gone, Only 2 Left!

Book Overview

Offers an alternative to the belief that optimization is the only solution to increasingly complex problems, a series of frameworks to help an organization employ adaptive principles, establish... This description may be from another edition of this product.

Customer Reviews

5 ratings

Leadership and collaboration

"Adaptive Software Development" is a light, human-powered methodology for development of complex software systems. Unlike Extreme Programming, Adaptive Software Development is less disciplined and does not mandate individual techniques like On-Site Customer, Pair Programming or Automated Tests. It rather encourages adaptation, which depends on leadership and collaboration.One of the vital components of Adaptive Software Development is clearly articulated Project Mission, Shared Vision and Clear Focus, and it is the responsibility of the whole team to create the mission and use it on a day-to-day basis as an alignment tool to keep the common direction.I would also highly recommend "Agile Software Development" by Alistair Cockburn in addition to this book.

MustRead

Compelling case for Adaptive Software Development (ASD), an approach enabling successful completion of complex software development projects. Draws on the theory of complex adaptive systems (CAS). Explains using judicious analogies with mountain climbing. Assembles ideas from the author's own extensive experience and readings. Describes in some detail the ideas of other authors that have influenced ASD. Excellent annotated bibliography allows the reader to pursue further study in any of a number of different directions.It's hard to express just how good this book is. I can't recommend it highly enough. If you're interested in the currents of thought on software development variously labeled "extreme" or "agile," then I believe you will find Adaptive Software Development to be very near to their sources.The author distinguishes a "complex" project from one that is merely "complicated." As one might well imagine, he would classify a project to develop the avionics software for the NASA space shuttle as complicated--but not complex: its goal is well defined and attainable by applying the stable laws of Newtonian physics. Development of an internet-based product for the consumer marketplace on the other hand is complex because one might expect almost anything to change during the course of such a project: target technology, competitive offerings, financing, marketing strategy, etc.Complexity arises from moving fast in a continually changing environment.Adaptive Software Development comprises(1) Adaptive Conceptual Model--the theoretical foundation,(2) Adaptive Development Model--a software development lifecycle for complex projects, and(3) Adaptive Management Model--principles for managing complex projects.(1) The Adaptive Conceptual Model proposes that a software development organization is a complex adaptive system like a marketplace or a flock of birds. According to the theory, CASs composed of independent agents acting for themselves without centralized control can under proper circumstances develop "emergent" capabilities exceeding the mere sum of the capabilities of the individual agents.It is further proposed that only emergent capabilities are powerful enough to tame complexity. Software development organizations aspiring to do so must create the proper circumstances for the emergence of superior capabilities. The Development Model and the Management Model show the way.(2) The Adaptive Development Model has three phases: Speculate, Collaborate, Learn. A typical project is expected to cycle through the phases several times. The output of each successive cycle converges on the final product of the project.The beginning of each cycle is called "speculation" in preference to "planning" to reject the command-and-control philosophy that stifles emergence. ASD establishes a general direction, hypothesizes a product with a set of components, then puts the developers to work. Tasks are not specified in the ASD project plan--only the

Solid theory behind the Agile movement

Highsmith postulates: "If the core of our belief system about managing organizations is rooted in the old science of deterministic Newtonian physics and survival-of-the-fittest Darwinian biology, then only a new science such as complex adaptive systems with an equally powerful philosophy and scientific foundation provides the credibility necessary for a major management cultural evolution."He then persuasively uses the science and language of complex adaptive system theory to provide new conceptual models to guide complex software development projects. His presentation is refreshingly well thought out, synthesizing much of the best ideas in science and business management in the past decade to software development.Highsmith succeeds is providing a theoretical basis for the Agile methodologies that are sprouting up everywhere (XP being the best known). If you are looking for specific best practices of software development, look elsewhere. But if you want to understand the true nature of software development as well as principles in harnessing change as a competitive advantage, you will not find a better book. I couldn't recommend it any more strongly.

Mountain climbing as an analogy for software development

There are many areas of human endeavor that can be used as an analogy for software development. In this book, the author uses mountain climbing to illustrate his points about teamwork, planning and adaptation to rapidly changing conditions. The points are well-taken, although he does stretch it a bit. If the team doesn't function well or a judgment error is committed while climbing, there is the real and immediate threat of injury or death. Similar problems in software development lead to much gentler consequences that are sometimes years in the future. One does not easily change teams in the middle of a climb and developers often have several golden ropes to clutch if it is necessary to leave. Nevertheless, the comparison is largely a good one. The most significant point is about how software development must be a process of aggressive, rapid adaptation to changing conditions. Among all the things that we do, software construction changes faster than anything else. The solution is to perform the delicate act of balancing on the head of a pin. On one side, there is the necessity of setting down standards of rigor that will keep the process within acceptable boundaries. However, the addition of too much rigor and the mortis sets in, making it too difficult to change the product when the inevitable modifications are needed. Many such strategies for how to maintain this minuscule middle are set forward. There are many points of sound advice in this book, several of which lead to the following simple adage. "Rules can be barriers to hide behind or guidelines for the wise to consider and break when the circumstances justify it." Effectively executing the latter is the not so secret plan for success in the current IT world of dynamic competition. I respectfully disagree with the author on one point. He argues that the day of the lone "coding cowboy", where one programmer builds a killer app, is over. While the lone programmer may be a thing of the past, the small team is not, and some small teams of two or three can work wonders. The second point of my disagreement are due to the increasing use of components and rapid development tools. Given the library of tools that can be used, it is now possible for one person to put several distinct items together in a unique way and build a complete system. Furthermore, it may be possible for a lone programmer to build the next little "big thing" component that could revolutionize how we do some things. Despite my occasional disagreements with the points made, reading this book made me think a little harder about some aspects of the software development process. The authors' metaphors of biological adaptation and mountain climbing have many equivalencies in software development that should be seriously considered.

Sensible software process

I have worked at a Fortune 100 company for > 15 years as a software engineer, software manager, and consultant on improving software projects. During that time, I've read many texts on software engineering and software management. This book, more than any other I've read, best captures my philosophy of software management, except for the rants against software process and the SEI which I think are a little much at times. Really, what the author advocates (at least in my reading of this book) is a sensible balance -- not too much process nor too little. This book, along with Rapid Development, are my two favorite "handbooks" for software managers. If you're looking for a quick recipe that doesn't require thought and is guaranteed to be successful, you won't find it here. However, I'd argue that you won't find it anywhere. What you will find is a guide to developing your own "common sense" on software management.
Copyright © 2023 Thriftbooks.com Terms of Use | Privacy Policy | Do Not Sell/Share My Personal Information | Cookie Policy | Cookie Preferences | Accessibility Statement
ThriftBooks® and the ThriftBooks® logo are registered trademarks of Thrift Books Global, LLC
GoDaddy Verified and Secured