A hugely significant change in Software development, is the transition from the aIternative Waterfall Model to the Agile Model of software development.
Agile modeling is a group of software methodologies that entails the modeling and documenting of software systems flexibly, and according to the best practices. Agile modeling is an essential component of the agile software development tool kit. When compared to the traditional models of software development, Agile modeling can adapt quickly to a fast-changing environment.
Agile: when and where
The autumn of 2000 saw the development of agile modeling, led by Scott Ambler. Initially, it was called extreme modeling (XM) but was later renamed as Agile modeling at the behest of Robert Cecil Martin in 2001.
The year 2001 also saw the publication of the Agile manifesto. This manifesto contained a set of software methodologies that are now collectively known as Agile methodologies. Some of the popular Agile methods such as Rational Unified Process, Scrum, Crystal Clear, Extreme Programming, etc. are included in agile methods.
Agile modeling involves several core practices such as Documentation and Modeling.
The documentation involved in Agile modeling is conducted throughout the life-cycle of software development. But this documentation is done only when stable information is received, and speculations are avoided. The requirements of the stakeholders are recorded as executable ‘customer tests’ instead of non-executable documentation. In order to eliminate any confusion regarding the correct version of the software, all the information is stored in a single location. Therefore, a software developer has to be well versed with documentation.
Agile modeling involves the active participation of the stakeholders, which is followed by the light-weight envisioning of the architecture strategy and planning about inclusive modeling tools. The modeling is then reiterated to ensure that all the requirements have been considered and a just barely good enough (JBGE) model is prepared. The next step in Agile modeling is look-ahead modeling which is known as “backlog grooming’ or “backlog refinement” in Scrum. Next comes an impromptu, agile modeling session known as model storming, followed by the creation of a range of model types. Finally, the requirements are worked upon in a prioritized manner. The needs of the stakeholders are explored once again. A software developer has to be well versed with modeling.
Pros and Cons of Agile Modeling:
Agile modeling is a pragmatic, flexible, and adaptive approach that promotes teamwork and cross-training. This modeling is easy to manage and requires minimal resources. Moreover, such models provide partially working solutions, early on.
Due to minimum documentation, Agile modeling has a high individual dependency and is quite challenging when the transfer of technology is concerned. Moreover, this approach is not suited for complex dependencies and has a high risk of sustainability.