Effective Practices for Extreme Programming and the Unified Process
John Wiley & Sons ISBN#: 0471202827
Agile Modeling (AM) is a chaordic, practice-based methodology for effective modeling of software-based systems. The AM methodology is a collection of practices – guided by principles and values – that are meant to be applied by software professionals on a day-to-day basis. AM is not a prescriptive process, in other words it does not define detailed procedures for how to create a given type of model, instead it provides advice for how to be effective as a modeler. AM is “touchy-feely” in that it is not hard and fast – think of AM as an art, not a science.
An important concept to understand about AM is that it is not a complete software process. AM’s focus is on effective modeling and documentation. That’s it. It doesn’t include programming activities, although it will tell you to prove your models with code. It doesn’t include testing activities, although it will tell you to consider testability as you model. It doesn’t cover project management, system deployment, system operations, system support, or a myriad of other issues. Because AM’s focus in on a portion of the overall software process you need to use it with another, full-fledged process such as eXtreme Programming (XP), DSDM, SCRUM, the Agile Unified Process (AUP), or the Rational Unified Process (RUP). You start with a base process, such as XP or RUP or perhaps even your own existing process, and then tailor it with AM (hopefully adopting all of AM) as well as other techniques as appropriate to form your own process that reflects your unique needs. Alternatively, you may decide to pick the best features from a collection of existing software processes to form your own process. For XP projects, AM explicitly describes how to improve productivity through addition of modeling activities whereas with for RUP projects it describes how to streamline modeling and documentation efforts to improve productivity.
This book is organized into five parts:
Part 1: Introduction to
Agile Modeling. The
foundation for the book is set in this part through a detailed discussion of
the values, principles, and practices of AM.
Part 2: Agile Modeling
in Practice. This part
explores critical issues such as effective communication and documentation
practices, using simple tools to model, and the organizational and cultural
aspects that support AM. Advice
for organizing modeling work areas, modeling teams, and modeling sessions is
provided and an examination of the
Unified Modeling Language (UML) in light
of agile development is presented.
Part 3: Agile Modeling
and eXtreme Programing (XP). This
part presents a detailed examination of how to enhance XP with the
principles and practices of AM. It
begins by setting the record straight regarding modeling and documentation
within XP and then focuses on modeling portions of the SWA Online case study
taking an XP/AM approach.
Part 4: Agile Modeling
and the Unified Process (UP). This part presents a detailed examination of how to simplify
modeling within the UP by following the principles and practices of AM, once
again modeling portions of the SWA Online case study.
Part 5: Conclusion.
This part describes important organizational and management issues
pertaining to Agile Modeling (AM).
A portion of the material from this book has been posted at www.agilemodeling.com. I have provided links to relevant material below, although it is important to understand that the material posted on the site is not as robust as the material in the book. In other words, many of the essays are only partial representations of the relevant chapters in the book.
Chapter 1: Introduction
Chapter 2: Values
Chapter 3: Core Principles
Chapter 4: Supplementary Principles
Chapter 5: Core Practices
Chapter 6: Supplementary Practices
Chapter 7: How the AM Practices Fit Together
You! Anyone who is interested in improving their productivity as a developer, or who wishes to bring effective modeling practices into their team or organization.
We actively work with clients around the world to improve their information technology (IT) practices, typically in the role of mentor/coach, team lead, or trainer. A full description of what we do, and how to contact us, can be found at Scott W. Ambler + Associates.