Columns

Jack be agile, Jack be quick

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.