Agile Modeling (AM) is a methodology for modeling and documenting software-based systems. Agile Modeling is critical to the rapid and continuous delivery of software. It is a collection of values, principles, and practices that guide effective, lightweight software modeling.
Understanding Agile Modeling
Importantly, the efficacy of AM is not the result of the modeling techniques themselves but how they are applied. Effective application of AM requires that organizations adopt all agile principles. This ensures that the various perspectives associated with software development are duly considered and incorporated into the product.
Agile Modeling complements existing agile methodologies such as Extreme Programming (XP), Dynamic Systems Development Method (DSDM), and Rational Unified Process (RUP).
The five critical values of Agile Modeling
There is often a disconnect between the short-term actions of developers and the long-term commercial viability of a business.
To that end, five values of Agile Modeling work together to create harmony between developers and businesses:
- Communication. AM promotes communication and collaboration between members of a development team and key project stakeholders. Tight deadlines, complex design, and technical jargon all contribute to miscommunication. This results in delays and low morale, where team members may leave the project midstream. Agile thinking advocates pair programming, task estimation, and communication-centric unit testing to fix problems rapidly and strengthen team buy-in.
- Simplicity. To avoid becoming overwhelmed by large or complex tasks, development teams must begin with the simplest task possible. Rather than writing hundreds of lines of code, it is much easier to improve on a simple idea as understanding increases.
- Feedback. Author Kent Beck noted in his book Extreme Programming Explained that “optimism is an occupational hazard of programming, feedback is the treatment.” Accurate, constructive, and timely feedback is an important facet of AM. Such feedback allows developers to make beneficial adjustments early in the system, thereby negating the need for costly fixes to a more advanced product.
- Courage. This means that a team must not be afraid to change direction if the situation warrants it. Invariably this will involve discarding or refining work. In either case, the development team must follow its instincts. Courage also manifests as trust. Do individual members of the team trust each other? Does the business trust customer perspectives, even if it contradicts the work already completed?
- Humility. Organizations can embody each of the four previous values through an attitude of humility. AM principles dictate that the experiences of the end user are never ignored – particularly if they are having difficulties. Individuals should also approach software development without the negative aspects of the ego. Indeed, the best analysts understand that they are never correct 100% of the time. This means that they value the input of each member of the team equally.
- Agile Modeling is a practice-based methodology for effective modeling and documentation of software development.
- Agile Modeling complements existing agile methodologies such as Extreme Programming. For maximum effectiveness, a business must adopt all agile principles to ensure that all perspectives are considered.
- Agile Modeling is based on four core values: communication, simplicity, feedback, and courage. The fifth value, humility, guides how a business might embody each of the core values during product development.
Main Free Guides: