Sometimes in software design it’s great to develop a visual of the system in question to help in the thinking process.
Josh Barratt is a software architect at Twilio, and blogs about system design at Serialized.Net. His recent post Effective Technical Diagrams has some great guidelines for improving the technical diagrams that we use to communicate.
Images convey ideas and structure far more effectively than text. Especially for software systems, they can even help with reasoning about things like capacity, connectivity, reliability, security and performance.
Like any craft, methods of designing visuals that communicate effectively and efficiently can be studied and improved. We have probably all seen diagrams which led to an immediate “aha!” – and others, that after minutes of squinting, led to only more confusion.
I too, adore OmniGraffle, and have made my share of good and bad technical diagrams in my pursuit of a better design. Here’s one I made in the last year, the usefulness of which could be argued both ways: