Models Should Be Self-explanatory

August 1, 2008

A model (any model) should be detailed enough to convey all important information but abstract enough so it conveys only important information. To paraphrase Albert Einstein, models should as simple as possible, but not simpler.

The whole point of developing a model is to help the communication process. If people can’t understand a model then there’s no point in developing it. As an architect, I use UML. I’m comfortable with it and I understand it. Unfortunately, business people aren’t as comfortable with UML as technical folk and there won’t always be a technical person around to explain the model. So models should stand on their own.

While there is nothing wrong with providing accompanying text with a model, you need to be mindful of what you’re writing. Any text accompanying a model should be supplementary in nature not explanatory. This is a subtle, yet important difference.

Providing too much detail in a model will make it more difficult to understand so some supplementary information may be useful. This should include any information that can’t be represented diagrammatically but is important to understanding the model.

However, the text should not be a translation of the model from diagrams into words. If you’re writing too much of this explanatory text, then you need to rethink your model. There is no reason to use UML all the time. So long as your model is easily understood by its intended audience, the notation you use is completely irrelevant.