I am occasionally called upon impromptu to white-board (non-virtually) data flows, architecture diagrams etc., for both a technical and non-technical audience. Unfortunately my drawing skills (and print legibility) are terrible.
How can I become more effective at doing this? I am looking for tips on standard symbols and connectors to use, some standard ways of organizing and categorizing the information (e.g., swim lanes), etc.
What can I practice to become better at this? I want these visual presentations to be effective in communicating my ideas, and badly presented diagrams can make the ideas appear convoluted and inelegant, even when they are not.
Are you familiar with ER diagramming ? If you are modeling a database ER diagrams are pretty universal to most people.
Architecture diagrams "should" be in UML.
However.
Detailed UML diagrams are a pain in the neck, so don't go for technical depth.
There are, however, some classifier stereotypes that are very, very helpful in allowing a "high-level" summary diagram to cover a number of bases.
The "Objectory class stereotypes" (see http://doc.sumy.ua/prog/umld/AD970806.PDF) for Control, Boundary and Entity classes are worth their weight in gold. Adding these stereotypes to a class diagram is helpful, quick, and a formal way to define how the class (or package) fits into the whole.
Pretty basic, but this tip from drawing cartoon speech bubbles made a huge difference to me: don't draw boxes and then write text inside them. You will usually misjudge the required size, resulting in squashed, illegible text. Instead, write your label first, and draw the box around it afterwards.
I was amazed at how much the clarity of my diagrams improved by the application of this one simple principle.
I often write on Post It Notes because you can easily move them around as your discuss relationships between objects. Also, different color Post Its can convey meaning.
Below is an example:
alt text http://www.matterco.com/wp-content/themes/matter/images/art057.jpg
White-boarding is a great tool. I do quite a bit of it myself, and I've found a couple of things to be very effective:
Slow Down.
It's okay to take your time to write neatly.