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.
|