HomePage simple models. any drawing tool. shared understanding.

Main / HomePage

What is the simplest thing that could possibly work?
- Kent Beck (Extreme Programming Explained: Embrace Change, 2nd Edition, p 18)

Your goal is to build a shared understanding, it isnít to write detailed documentation
- Scott W. Ambler (agilemodeling.com)

Diagrams are a means of communication and explanation, and they facilitate brainstorming. They serve these ends best if they are minimal.
- Eric Evans (Domain Driven Design, p 36)

A good model serves as a means of communication by illustrating one or more ideas quickly and easily.
- MDA Distilled (Stephen J. Mellor, et al, p 26)

The creators of the UML see the diagrams as secondary; the essence of the UML is the meta-model.
- Martin Fowler (UML Distilled, 3rd Edition, p 6)

Things should be made as simple as possible, but no simpler.
- Albert Einstein

mod∑el (n) - A preliminary work or construction that serves as a plan from which a final product is to be made ... used in testing or perfecting a final product.
- thefreedictionary.com

What is AgileDraw?

Over the years, modeling techniques have become cumbersome due to a focus on notation and tools (the "how") instead of concepts and shared understanding (the "what"). AgileDraw is a lightweight, expressive convention for modeling that promotes effective communication over tools and understanding over processes. The core of AgileDraw includes four components: circles, boxes, lines, and text; these indicate different aspects and relationships of the model. The AgileDraw extensions provide guidelines to make the models visually appealing. AgileDraw is meant to be useful in any drawing context, whether drawing by hand, or using a software application.

The remainder of this page contains general information about AgileDraw; for specifics, visit the semantics page and/or the examples page. Meanwhile, you may click on the following thumbnails to get a quick preview of some sample AgileDraw models:

domain model architecture UI flow conceptual class diagram

When to Use AgileDraw?

Use AgileDraw when you prefer simplicity over complexity, content over format, good enough documentation over precise artifacts, shared understanding over tools, practical matter over blue-sky abstractions, and obvious concepts over obscure notation.

The following figure illustrates how AgileDraw can be used for high-level conceptual modeling before moving down to a more detailed design and/or proving your concepts with code.

The following figure demonstrates how AgileDraw and UMLcomplement each other. For example, AgileDraw can be used for marketing your idea, informal discussions with users and peers, and conceptual modeling. On the other hand, UML can be used for more detailed design (e.g. blueprint, reverse engineered models).

Furthermore, AgileDraw also works very well with the Agile Model Driven Development (AMDD). For example, the User Discussions box shown in the above image can be viewed as AMDD's active stakeholder participation and inclusive modeling, while the Conceptual Design box can be viewed as AMDD's initial modeling session.

Benefits of AgileDraw

  1. Focuses on the content/concepts over format/notation (excellent for conceptual modeling/exploration)
  2. Extremely easy to learn and use (virtually notation-free)
  3. Feels natural and is fun to work with (similar to drawing classes from early childhood)
  4. Can be drawn using any presentation/drawing tool (no need for special tools)
  5. Incorporates psychological aspects (meaning of shapes and colors)
  6. Facilitates creation of sizzling models (e.g. for use in websites, proposals, presentations, publications)
  7. Highly customizable for projects as it only provides the bare minimum guidelines/concepts
  8. Complements UML/MDA and Agile methods but can also be used just by itself (as an alternative to UML when the bare minimum design is sufficient)

Overview of AgileDraw

The Premise

Information Technology (IT) means technology to manage information. Information! This makes information or more specifically, data, the single most valuable asset of an organization.

Data comes in two forms, in-motion or stored. This is all software modeling, database modeling, network modeling, and other IT modeling should be about, that is, either the data is still in one place and models are required to define its structure or the data is in motion and models are required to show the point-to-point communication (e.g. messages sent from one program to another, one class/object to another, or one device to another).

Given this premise, the simplest form of modeling should include a couple of shapes (e.g. circles, boxes) to either depict data in motion (e.g. web browser to server) or "motionless" data (e.g. tables, classes). These shapes can be connected using simple lines to show communication or relationships between them, with minimal text to describe the shapes and lines. In summary, the bare minimum concepts should include shapes, lines and text; in AgileDraw terminology, these are referred to as points, connectors and text.

About AgileDraw

(Many thanks to Ron Jeffries, XProgramming.com, for providing this overview.)

AgileDraw is a set of principles and styles for producing models that communicate effectively. These principles can be used with any drawing technique or tools, from whiteboard to pencil and paper to computerized tools. The essence of AgileDraw is to use simple conventional drawing elements such as circles, boxes, connecting lines and text, in conventional ways that give models a sense of life and a consistent way of communicating.

The AgileDraw principles are not new! AgileDraw is a simple summary of things we all know about drawing useful pictures.

Points, represented by circles and boxes, are "things" in your model. Prefer circles to represent motion, wholeness, comfort, and the like. Prefer boxes to represent fixedness, order, containment, security.

Lines, or connectors, show connection between points. Prefer solid lines to represent concrete, synchronous, tight connections. Prefer dashed lines to represent more abstract or looser connection.

Minimal text, associated with points and lines, is used to describe the drawing elements. Text can be anything, and it is desirable to have enough, but not too much.

You may always include other shapes, such as conventional icons from your profession. Feel free to use domain specific icons like discs or terminals, pictures of your products, pictures of people. You'll want to use enough specialized shapes to give your model life and the ability to communicate, but not so many as to make it busy or distracting.

Think about the use of color in your models. Colors are given different meanings by different cultures, and you'll want to be sensitive to those specifics. In this author's culture, red often signifies trouble or warning, while green is good. Brown suggests stability, while orange suggests energy or action. Consider using color shades and gradients to show relationships among items, and shadowing to emphasize elements.

AgileDraw models may include callouts, simple "speech balloons" pointing to a drawing element and explaining it in more detail.

The essence of the AgileDraw concept is simplicity and freedom. The conventional use of the elements enables people to understand your models more quickly and more consistently. Within that overall objective, the AgileDraw principles offer guidance and suggestions for making your models more effective.

Why AgileDraw?

In the world of software development, effectively modeling and communicating the designs is complex and requires significant investment in terms of resources, tools and time. While over the years, different modeling notations and techniques have been invented and put to use, many developers are overwhelmed by the vastness of the notations and the amount of time and effort required in creating models.

Many developers are often frustrated and overwhelmed by the vastness of the notations and the amount of time and effort required in creating models. Furthermore, models constantly evolve as the development of the system proceeds, so there is a need for accepting and legitimizing the practice of informal modeling using simple drawing tools to be on par with any other conventional modeling approaches. This enables the teams to be agile by reducing the time to model and virtually eliminating the need to use cumbersome, and sometimes expensive, tools.

Main / HomePage
© Visual Patterns, Inc. All rights reserved.