Modeling essentials
Models built collaboratively allow us to build and evolve shared understanding.
Models communicate what we understand

Models distill relevant information and effectively communicate it to others.
Model can have a number of means, in software development especially. The dictionary definition of model, at least the one I just looked at, had thirteen definitions. The one closest to what I mean is:
[a model is] a description or analogy used to help visualize something (as an atom) that cannot be directly observed [Merriam-Webster on-line ]
who was it that described software development as an activity of model building? Knuth?
How does Ambler describe modeling in Agile Modeling?]
In software development it's common to attach "model" to the end of about any drawing or document. And, I'm OK with that since most of these documents are trying to help us visualize something that can't be easily observed or described in other ways. So, for the purpose of this book, let's think of a model this way:
a model is any visual representation of our current understanding of a concept
Accurate UML models fit this definition, as do arrangements of post-it notes on the wall, or a sketch on a napkin. Lists of ideas, arrangements of post-its or cards, drawings on whiteboard or paper, all these things are good models. They're all visible, and all can be pointed to emphatically and gestured at vigorously during a discussion.
The goal of a model IS NOT complete accuracy, but communication. A map of the London Underground is not geographically accurate. But it clearly communicates routes, stations, and transfer points. Most models of our solar system are not to scale, but they clearly communicate the number of planets in our solar system and their relationship to each other as they orbit the sun. In both the models of the London Underground and our solar system, adding too much detail or particular accuracy might result in obscuring what we're trying to communicate. These models are not only sufficient, but ideally suited for clearly communicating their intended concepts.
A good model clearly communicates
Models help us communicate
Focal to collaboration is conversation. But, were you ever in a conversation where all parties of the conversation seemed to agree, but then later you found that although everyone seemed to hear each other's words, they were all thinking of different things?

Communication improves using models. Models evolve through collaboration.
We often overload words with multiple meanings. We often use multiple words to mean the same thing. Words often take meaning from their context of use where sometimes that context is mistakenly assumed.
My point is that words alone are often insufficient to communicate information of any reasonably complexity.
Most of you have likely engaged in a conversation in front of a whiteboard where you drew a picture to represent your understanding or written down points of agreement or disagreement. The ability to both hear and see the information lets us feel a bit more confident that we understand or were understood. Those big gestures help a lot too.
Once we're communicating more effectively, we can move past superficial agreement to really understand and evolve that understanding.

Cockburn's model describing the effectiveness of communication
In Agile Software Development the Cooperative Game, Alistair Cockburn draws a simple graph that showing different temperatures of communication. He shows how communication heats up as we add channels of communication such as audible words and pictures, and allow an exchange of ideas the way two people in an active conversation can. In Alistair's chart, the hottest form of communication is two people at a whiteboard.
The thing on the whiteboard is a model.
Iterative Model Refinement: Our Work Is Never Done.
In 2006, after much heated debate, astronomers decided Pluto wasn't in fact a planet. That simple change invalidated millions of models of the solar system. Suppose we find a new planet way out past Pluto. In fact the newly located planet 2003UB313 recently named Eris may make this true. My point is a model can only reflect our current understanding. As we continue to learn, the models must be updated to reflect what we understand today. We must always understand a model to be unfinished, just as the model of our solar system apparently is.
At any given time a good model effectively reflects and communicates a collaborative group's shared understanding. The foundational Agile concept of reflection and improvement is critical. As time progresses, more discussions and models are built, our understanding changes and matures. Iteratively revisiting a model in a collaborative group setting allows the model to be improved and continue to be a useful communication tool.
Schedule time to review and refine models on a regular basis.
comment on this page via email ![]()
Next Topic: Model using index cards >>
<< Previous Topic: A technique foundation is critical to success