HOME

TheInfoList



OR:

Agile modeling (AM) is a methodology for
modeling A model is an informative representation of an object, person, or system. The term originally denoted the Plan_(drawing), plans of a building in late 16th-century English, and derived via French language, French and Italian language, Italian ult ...
and
documenting A document is a written, drawn, presented, or memorialized representation of thought, often the manifestation of non-fictional, as well as fictional, content. The word originates from the Latin ', which denotes a "teaching" or "lesson": t ...
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. It is part of the
agile software development Agile software development is an umbrella term for approaches to software development, developing software that reflect the values and principles agreed upon by ''The Agile Alliance'', a group of 17 software practitioners, in 2001. As documented ...
tool kit. Agile modeling is a supplement to other
agile development Agile software development is an umbrella term for approaches to developing software that reflect the values and principles agreed upon by ''The Agile Alliance'', a group of 17 software practitioners, in 2001. As documented in their ''Manifesto ...
methodologies such as
Scrum Scrum may refer to: * Autozam Scrum, a microvan and pickup truck sold in Japan by Mazda * Line of scrimmage, line separating football teams before a play * Media scrum, an impromptu press conference, often held immediately outside an event such a ...
,
extreme programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, ...
(XP), and
Rational Unified Process The rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable proc ...
(RUP). It is explicitly included as part of the
disciplined agile delivery Disciplined agile delivery (DAD) is the software development portion of the Disciplined Agile Toolkit. DAD enables teams to make simplified process decisions around incremental and iterative solution delivery. DAD builds on the many practices es ...
(DAD) framework. As per 2011 stats, agile modeling accounted for 1% of all agile software development. Agile modeling is one form of Agile
model-driven engineering Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual model (computer science), conceptual models of all the topics related to a specific problem. Hence, i ...
(Agile MDE), which has been adopted in several application areas such as
web application A web application (or web app) is application software that is created with web technologies and runs via a web browser. Web applications emerged during the late 1990s and allowed for the server to dynamically build a response to the request, ...
development, finance, and automotive systems


Core practices

There are several core practices:


Documentation

# Document continuously. Documentation is made throughout the life-cycle, in parallel to the creation of the rest of the solution. # Document late. Documentation is made as late as possible, avoiding speculative ideas that are likely to change in favor of stable information. # Executable specifications. Requirements are specified in the form of executable "customer tests", instead of non-executable "static" documentation. # 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.


Modeling

# Active stakeholder participation. Stakeholders of the solution/software being modeled should be actively involved with doing so. This is an extension of the on-site customer practice from
Extreme Programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, ...
. # Architecture envisioning. The team performs light-weight, high-level modeling that is just barely good enough (JBGE) at the beginning of a software project so as to explore the architecture strategy that the team believes will work. # Inclusive tools. Prefer modelling tools, such as whiteboards and paper, that are easy to work with (they're inclusive). # Iteration modeling. When a requirement/work item has not been sufficiently explored in detail via look-ahead modeling the team may choose to do that exploration during their iteration/sprint planning session. The need to do this is generally seen as a symptom that the team is not doing sufficient look-ahead modeling. # Just barely good enough (JBGE). All artifacts, including models and documents, should be just sufficient for the task at hand. JBGE is contextual in nature, in the case of the model it is determined by a combination of the complexity of whatever the model describes and the skills of the audience for that model. # Look-ahead modeling. An agile team will look down their backlog one or more iterations/sprints ahead to ensure that a requirement/work item is ready to be worked on. Also called "backlog grooming" or "backlog refinement" in
Scrum Scrum may refer to: * Autozam Scrum, a microvan and pickup truck sold in Japan by Mazda * Line of scrimmage, line separating football teams before a play * Media scrum, an impromptu press conference, often held immediately outside an event such a ...
. # Model storming. A short, often impromptu, agile modeling session. Model storming sessions are held to explore the details of a requirement or aspect of your design. # Multiple models. Agile modelers should know how to create a range of model types (such as user stories, story maps, data models,
Unified Modeling Language The Unified Modeling Language (UML) is a general-purpose visual modeling language that is intended to provide a standard way to visualize the design of a system. UML provides a standard notation for many types of diagrams which can be roughly ...
(UML) diagrams, and more) so as to apply the best model for the situation at hand. # Prioritized requirements. Requirements should be worked on in priority order. # Requirements envisioning. The team performs light-weight, high-level modeling that is JBGE at the beginning of a software project to explore the stakeholder requirements.


Limitations

There is significant dependence on personal communication and customer collaboration. Agile modeling disciplines can be difficult to apply {{Citation needed, date=October 2016: * 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 Agile software development is an umbrella term for approaches to software development, developing software that reflect the values and principles agreed upon by ''The Agile Alliance'', a group of 17 software practitioners, in 2001. As documented ...
in general difficult) * When modeling skills are weak or lacking.


See also

* Story-driven modelling *
Agile software development Agile software development is an umbrella term for approaches to software development, developing software that reflect the values and principles agreed upon by ''The Agile Alliance'', a group of 17 software practitioners, in 2001. As documented ...
* Robustness diagram


References


External links


The Agile Modeling Home Page


Agile software development