Do you know any books or articles or software that have helped you develop these skills? Did you learn to draw diagrams for different scenarios (databases, networks, UI, workflows), or do the skills in one scenario translate easily to others?
Currently I usually get stuck into one of the following approaches:
- UML, but I find that you almost never want the whole database on screen when discussing something, and to show only parts of the database UML is not so descriptive to highlight the different functionalities.
- Boxes and arrows. I always find that colored boxes and arrows work well for 3-4 components, but start getting mushy after that and I need more resources to be able to convey different levels of abstraction.
Now I can pass it on to you.
Had to open up my Apple Books library to find these again, but:
TECHNIQUES OF FLOW-CHARTING Louis A. Schultheiss
IBM Data Processing Techniques Flowcharting Techniques
I pulled these down from some searches on UML diagramming some few months ago since I needed to diagram some envelope encryption work for a team with a previous employer.
The UML-generated code thing is prior to my time, but basic flowcharting techniques on their own are a nice to have skill.
You don’t need to memorize endless shapes, but a few common ones like those in the texts above will convey almost everything you’ll care about day-to-day.
In my experience, this isn’t a skill you have to exercise often, but if you can do it without being overly sophisticated, some people may appreciate having a diagram now and again for large systems, or involved processes.
I also like to write diagrams as code with https://plantuml.com/sequence-diagram cause you can then add it to git and easily version it. Also, a lot of tools on the market have support for PlantUML
- start on paper (or something analog like a whiteboard)
- focus on the essence of what you want to convey, the big picture of you will, not all the detail. Focus on what you want the audience to remember. Less is more
- iterate. If you see your audience isn’t grasping what you convey, you’re not clear. Edit
- draw real time as you explain, which allows you to draw based on audience understanding and what you want to focus on
One important thing to take in consideration is that diagrams are not blueprints. What they don't represent is as important as what they include. That's why I like C4: it's limited to answer an important but small subset of questions about your system.
Learning specialist diagram types like basics of Fault trees has been really useful in some situations.
Focus on your reader. It does no good to create an "expressive diagram" if it's too complex for anyone else to understand it.
Redrawing is the simplest way to refine a drawing.
The traditional way to do this is with tracing paper and overlaying sheets.
And letting the first attempt suck…and the second..and the…well the next thing is always more drawing.
Not that books aren’t good, it is that mostly you’ll be just nodding along instead of doing the hard work of drawing.
Good luck.