Columns
Jack be agile, Jack be quick
- By Dan Romanchik
- December 1, 2002
In his foreword to Jim Highsmith's Agile Software Development
Ecosystems, Tom DeMarco calls the 1990s the decade of process for IT. It
was the decade of the Capability Maturity Model (CMM) and ISO requirements. But
by the time these rigorous software methodologies (RSMs) finally became standard
practice, they no longer worked.
Why did this happen? The business environment changed. RSMs emphasized
up-front planning and design, leaving little room for flexibility and -- dare I
say -- innovation. RSMs might produce software that meets specifications, but by
the time the software is in place, it may no longer be what the customer
needs.
To meet the needs of today's business environment, software's leading lights
developed several new development processes. The goal of these methodologies --
all part of the Agile Software Development movement -- is to not only develop
good code, but to be more flexible in meeting customer needs. Because these
techniques rely on the interaction of developers, customers, processes and
tools, author Highsmith chooses to call them agile software development
ecologies (ASDEs) instead of simply processes or methodologies.
I didn't like this terminology at first and was tempted to write it off as
yet another buzzword. But I changed my mind as I read the book. Ecosystem is the
right word for agile software development methodologies. Engineers design
processes to produce repeatable results, which is true whether you are building
personal computers or making batches of concrete.
Software development is much more complex than making batches of concrete,
however. It is heavily dependent on the business climate, as well as the
cultures of the customer and the development team. To get good results, managers
must manipulate the environment as much as the inputs. When you look at it this
way, you can see why the term ''ecosystem'' is more appropriate than ''process'' or
''methodology.''
Highsmith covers all of the major ASDEs, including Scrum, Dynamic Systems
Development Method, Crystal Methods, Feature-Driven Development, Lean
Development, Extreme Programming and Adaptive Software Development. In each
case, he interviews one of the movers and shakers of the movement and gives a
case study of a company using the ASDE.
Instead of dryly defining the various ASDEs, Highsmith interviews people and
tells their stories. This is consistent with the philosophy of agile software
development. The people involved are more than just nameless agents performing
tasks -- they bring unique experiences and outlooks to the development effort.
And it is by recognizing and working with these experiences and outlooks that
managers will get the best results from their development teams.
Highsmith also includes a section devoted to helping readers develop their
own ASDEs. Realizing that agile software development is not a ''one size fits
all'' kind of thing, he gives some practical advice for adapting the features of
the different ASDEs to your situation.
Agile Software Development Ecosystems , by Jim Highsmith; Addison-Wesley
Professional; Boston, 2002.
About the Author
Dan Romanchik is an engineering manager turned writer and Web developer. His current passion is amateur radio. You can read his amateur radio blog at www.blurty.com/~kb6nu.