Agile Development with the ICONIX Process: People, Process, and Pragmatism
This book describes using the ICONIX Process (an object modeling process) in an Agile software project. To do this, the book defines a core Agile subset, so those of you who want to "get Agile" need not spend years learning to do it. Instead, you can simply read this book and apply the core subset of techniques. The book follows a real-life .NET/C# project from inception and UML modeling, to working code--through several iterations. You can then go on-line to compare the finished product with the initial set of use cases.
About the Authors:
Doug Rosenberg of ICONIX Software Engineering, Inc. has been providing system development tools and training for nearly two decades, with particular emphasis on object-oriented methods. He developed a Unified Booch/Rumbaugh/Jacobson design method in 1993 that preceded Rational''s UML by several years. He has produced more than a dozen multimedia tutorials on object technology, including COMPREHENSIVE COM and COMPLETE CORBA, and is the author of "Use Case Driven Object Modeling with UML" and "Applying Use Case Driven Object Modeling with UML." Rosenberg is the author of Use Case Driven Object Modeling with UML (0201432897), Extreme Programming Refactored: The Case Against XP (1590-590961), Understanding Distributed Components (0201703750), and Applying Use Case Driven Object Modeling with UML: An Annotated e-Commerce Example (0201730391).
Matt Stephens is a Java architect and project leader based in Central London. He co-authored Extreme Programming Refactored: The Case Against XP (1590-590961). He’s written articles for Dr Dobbs Journal, Software Development Magazine and Application Development Advisor, among others, and is also an occasional speaker at various software conferences (the most recent being ICSE 2004 in Edinburgh). He can be found on the web at: http://www.softwarereality.com.
Mark Collins-Cope is Technical Director of Ratio Group Ltd., a UK based company undertaking development, training, consultancy and recruitment in the object and component technology arena (see www.ratio.co.uk). Collins-Cope has undertaken many roles in his sixteen years in the software development industry, including analysis, design, architecture definition/technical lead, project management, lecturer and writer. His key interests include use-case analysis, software architecture and component-based development and software process. Collins-Cope is editor of ObjectiveView, a free object and component technology journal.
Review By: Jon Hagar
03/11/2006
The authors of this book--Rosenberg, Stephens, and Collins-Cope--present a hybrid agile approach that connects the worlds of the traditional object-oriented software process--typified by ICONIX--with agile. They explain many of the agile ideals and practices within the ICONIX framework, starting with interesting survey and summary information on common agile practices and concepts.
The authors include attributes that constitute an agile project and what they term the "levels of agility," and they then outline the characteristics of good software processes and improvement efforts. Their focus is finding the "sweet spot" between traditional and agile ideals. The book''s informative sections on concepts such as refactoring, agile planning, test driven development (TDD), and other key agile components—are all set within the ICONIX method.
"Agile Development with ICONIX Process" presents the basic ideas and processes behind ICONIX in a "nutshell" approach, covering use cases and persona analysis. A series of agile/ICONIX examples—including requirements, design, modeling, and code information—are shown throughout the book, as well as how these work in this new hybrid world. The lists, tips, diagrams, and sidebars make this book great for later reference. In many cases, sample projects present both the good and bad scenarios within an evolutionary pattern. These are presented as stories depicting how an actual project might unfold, and the authors give their "fact or fiction" verdicts about agile and ICONIX ideals.
While it may seem to readers as if a force fit is being done to get ICONIX into an agile paradigm, the authors contend that there should be a middle ground as the pendulum swings between traditional and agile. This book will be an aid for those who wish to repackage heavy weight traditional ideals toward more agile ones. The authors do a good job of finding truism in the agile world and then incorporating it into the ICONIX process.
Practitioners of other object-oriented approaches can also benefit from these generally applicable principles. Early agile myths, such as the lack of a need for test teams, are successfully dispelled in this book. Agile project engineers who want to add some documentation and formality to their context will find this book useful, although pure agile project engineers may find some of the hybrid ideas "restrictive." There are many worthwhile gems for all readers in "Agile Development with ICONIX Process."