Agile modeling

From Wikipedia, the free encyclopedia
  (Redirected from Agile Modeling)
Jump to navigation Jump to search

Agile modeling (AM) is a methodology for modeling and documenting software systems based on best practices. It is a collection of values and principles, that can be applied on an (agile) software development project. This methodology is more flexible than traditional modeling methods, making it a better fit in a fast changing environment.[1] It is part of the agile software development tool kit.

Agile modeling is a supplement to other agile development methodologies such as Scrum, extreme programming (XP), and Rational Unified Process (RUP). It is explicitly included as part of the disciplined agile delivery (DAD) framework. As per 2011 stats, agile modeling accounted for 1% of all agile software development.[2]

Best practices[edit]

There are several best practices:


  1. Document continuously. Documentation is made throughout the life-cycle, in parallel to the creation of the rest of the solution.
  2. Document late. Documentation is made as late as possible, avoiding speculative ideas that are likely to change in favor of stable information.
  3. Executable specifications. Requirements are specified in the form of executable "customer tests", instead of non-executable "static" documentation.
  4. Single-source information. Information (models, documentation, software), is stored in one place and one place only, to prevent questions about what the "correct" version / information is.


The development of agile modeling was led by Scott Ambler starting in the autumn of 2000. It initially was called extreme modeling (XM) but at the suggestion of Robert Cecil Martin was renamed to AM in the spring of 2001. The book Agile Modeling [3] was published in 2002 by John Wiley Press. He also has a promotional web site.[4]


There is significant dependence on personal communication and customer collaboration. Agile modeling disciplines can be difficult to apply[citation needed]:

  • On large teams (say 30 or more) without adequate tooling support
  • Where team members are unable to share and collaborate on models (which would make agile software development in general difficult)
  • When modeling skills are weak or lacking.

See also[edit]


External links[edit]