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), Scrum, or SAFe. You start with a base process, such as XP or Scrum 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 SAFe teams 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).
Over the years I have applied the original techniques presented in the book in a wide variety of situations, learning as I went. I shared these learnings in updated descriptions of the techniques at AgileModeling.com, which was the site I developed when originally writing the book.