The environment in which you work
has a significant impact on how effective you are as an
agile modeler. Remember
the parable of that a horseshoe was lost for want of a
nail, a horse was lost for want of a shoe, a knight was
lost for want of a horse, an army was lost for lack of a
knight, and a kingdom was lost for lack of an army? Does it make sense that your organization be lost
for lack of a whiteboard marker?I hope not, yet I have literally been in organizations where
people had to carry their own markers with them because
if they left them behind in a meeting room they would
soon be gone - for some reason this organization
purposely maintained a chronic shortage of whiteboard
markers, one of the most effective tools that people can
use to enhance communication
between them. Aaarrrggghhh! For agile modelers to be effective they need
access to the right type of resources, and this implies
that they need a working area that enables AM's
I'm often asked by clients how to reduce the amount of time spent in
initial requirements envisioning and
initial architecture envisioning sessions
during the Inception (also called Sprint 0) phase of an agile team.
My answer is always the same. They need to get:
The strategy is for the team to create different types of models in
different parts of the room. As they discuss the requirements, or the potential solution
for that matter, they do so around one of their models. They talk and they model, evolving
the sketches or paper-based models as they go. When the focus of the discussion changes, they
iterate to another artifact by moving to the portion of the wall, or to the table,
as appropriate. Doing this in a large room enables them to work on
multiple models in parallel.
- A large room. The team needs space to work.
- The key decision makers in the room. We need to have people with the knowledge, and the ability to make decisions as to what is needed, in the room working together. We need them all at once so that they can hear each other, discuss trade-offs with one another, and learn from one another.
- Lots of whiteboard space. The team needs to be able to create several different diagrams in the room and be able to iterate between them as they discuss the problem (and solution) space together.
- Space for paper-based modeling. Many agile models are created using sticky notes and index cards, so the team will likely need sufficient wall or table space to work with these inclusive technologies.
- Someone with agile modeling facilitation skills. The team needs to be led by someone with solid agile modeling skills.
An Example Room
The following sketch shows the layout of an agile modeling room that was set up for
a one week modeling and planning session as part of the initiation of an agile team.
As you can see this room had three whiteboard walls and a wall of windows.
On the left wall we captured a
high-level conceptual model
business process model,
both of which were hand-drawn sketches. On the long wall we captured
user interface (UI) models, including a
UI flow diagram
On the right-hand wall we captured
free-form diagrams, in particular a
free-form architecture diagram.
We used the windows for sticky note models, which in this case was a
user story model and a schedule.
The user stories were captured on rectangular stickies. The "schedule" was a several
square stickies on which we captured major dependencies and milestones (with likely
dates indicated on them). For the most part the table was used by people to store their stuff while
For this team we needed to "build" the room the week before. We scheduled the largest meeting room
we could find for the week. We came in on the previous Friday afternoon and moved some of the
furniture (a credenza, a small book case, and some paintings) into an unused cubicle down the
hall. We then put some whiteboard plastic sheeting on the walls which we had ordered online a few days
earlier. This took about an hour.
There are several trade-offs with this strategy.
- Reduces modeling time.
- Promotes active stakeholder participation.
- Promotes a common vision.
- Large rooms are hard to find.
- Scheduling people takes lead time.
my experience the following factors are critical for creating an effective
agile modeling room:
You need dedicated space. The most effective teams have their own working areas. Yes, space is at a premium in many
organizations but if senior management wants your
team to succeed they have to provide you with the
resources that you need. You don't want to have to wait to find a
meeting room that's available in order to get some
modeling done. You don't want to have to worry about
somebody erasing your whiteboards, or throwing your
index cards in the garbage. I've worked in several companies where
there was a severe shortage of space, where we would
have to wait for days to find meeting rooms. Progress ground to a halt.
Significant whiteboard space. As far as I'm concerned you can never have
too much whiteboard space, and luckily whiteboards
are incredibly inexpensive (as is whiteboard wall paint and whiteboard wallpaper).
Talk to your facilities
people, the folks responsible for the physical
premises within your organization, and tell them
that it's a priority for your team. Frankly your organization should have several
agile modeling rooms available on a permanent basis.
Digital camera. Digital cameras, or at least a phone with a camera, can be used to take snapshots
of your modeling artifacts. Common uses of digital cameras are to take
pictures of critical diagrams and paper-based models so it may be
Modeling supplies. You
need whiteboard markers, sticky
notes (have different colors and different sizes),
index cards (you may also want different colors and
sizes as well), writing paper, flip-charts, tape,
stick pins, string, and whatever other modeling
supplies that your team requires.
Large table. If you're going to use index cards to model with you will likely want a large table
to work on. Other times you need a table to place your notebooks on,
or more importantly somewhere to put food when you
get lunch delivered.
Wall space to attach paper. It's good to have some non-whiteboard wall space, that way
you somewhere where you can attach paper artifacts. If possible have cork board installed, or worst case simply
have a few sections of plain wall space.
Nice to Haves
The following features of an agile modeling room are desirable but not required:
cannot overstress the importance of having adequate
resources - note the use of the word adequate
instead of extravagant.
Remember to apply the principle
A bookshelf or storage
cabinet. You need somewhere to store your
modeling supplies and reference books.
Chairs. Although stand-up working sessions are
incredibly productive - people focus on getting
the work done and appear to be more willing to
contribute - the reality is that people want to be
able to sit down occasionally. I believe in having a few chairs in a working
area, it's interesting to note that it's called
a working area and not a sitting area, so that if
some people want to sit down then they can. This is particularly important at the
beginning of a project because your modeling
sessions are likely to be longer, see Rethinking
Modeling Sessions, and therefore there will be a
greater desire to sit. During the construction phase of your project
modeling sessions have a tendency to be much
shorter, often between ten and twenty minutes in
length, therefore a stand-up session is much more
palatable to the people involved.
Projector. If you are going to have a computer in your
working area you should also consider having a
project to attach it to so you can display images on
the wall. This
promotes communication because everyone can see the
a common mistake that teams make is to try to
capture information in a CASE tool during a modeling
session, the basic idea is that a “CASE jockey”
will work the tool as everyone models, often
projecting onto a whiteboard where others will draw
over the image. The problem with this approach is that it
typically proves to be incredibly unproductive
because everyone on the team ends up waiting for the
CASE jockey to capture the information. A better approach would be to use the more
flexible tools, the whiteboards, to work together
and then use the less flexible tool, the CASE tool,
to capture the results later on. To support the whiteboard modeling effort you
may choose to have the CASE jockey display existing
models, the difference would be that you don't try
to update the models as you move forward.
Reference books. When you are modeling you often find that you
access to common reference information, such as the
UML notation for a specific concept or the
definition of a design pattern.
Food. Having food available in your working area is
often appreciated by all and will help to build
selection is a good idea, not everyone has the same
tastes or eating habits. I personally gravitate towards hard candies,
they're small and store well, and fresh fruit.
Toys. Having something to play with in your hands
can help you to get “unstuck” when you're
teams will also enforce politeness rules by allowing
people to throw a foam ball at someone else when
they're being rude or inconsiderate.