Caveats

Caveats#

Know what you need to communicate and to whom. While it can be useful to develop a graphic representation of a software system as a form of ideation or meditation, developing these visualizations takes time and effort. Furthermore, stale documentation can be worse than no documentation at all, so these visual elements will require maintenance along with the code itself. Consider first writing the gist of a diagram in words, and then decide if the visualization will add more than the text alone.

Impression is more important than accuracy. A diagram need not be a perfect representation of the software system in order to be useful. Often, analogies or abstractions of the actual software are helpful in describing ideas and building a mental model for the reader. For example, caller-callee diagrams are often very accurate, but it can be difficult to discern a high level understanding of the system. It can be more effective to strip away details until the main structural elements of a particular idea remain.