Organizing an Agile Modeling Room

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 practices.


The Strategy

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:
  1. A large room. The team needs space to work.
  2. 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.
  3. 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.
  4. 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.
  5. Someone with agile modeling facilitation skills. The team needs to be led by someone with solid agile modeling skills.
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.

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.
Agile Modeling Room Layout Example

On the left wall we captured a high-level conceptual model and a 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 and several screen sketches. 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 they modeled.

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.


The Trade-offs

There are several trade-offs with this strategy.

Advantages:

  1. Reduces modeling time.
  2. Promotes active stakeholder participation.
  3. Promotes a common vision.

Disadvantages:

  1. Large rooms are hard to find.
  2. Scheduling people takes lead time.


Must Haves

In my experience the following factors are critical for creating an effective agile modeling room:

  1. 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.
  2. 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.
  3. 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 shared electronicallyh.
  4. 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.
  5. 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.
  6. 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:
  1. A bookshelf or storage cabinet. You need somewhere to store your modeling supplies and reference books.
  2. 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.
  3. 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 information. However, 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.
  4. 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.
  5. Food. Having food available in your working area is often appreciated by all and will help to build camaraderie. A 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.
  6. Toys. Having something to play with in your hands can help you to get “unstuck” when you're working. Many teams will also enforce politeness rules by allowing people to throw a foam ball at someone else when they're being rude or inconsiderate.

I cannot overstress the importance of having adequate resources - note the use of the word adequate instead of extravagant. Remember to apply the principle maximize stakeholder ROI!