It’s been a productive afternoon at my desk. After a few deprived months, I’ve just bought a license for an all-time favourite tool: the drawing package, Visio. My weapon of choice for… well, drawing stuff.
Quick, flexible diagramming
Systems Engineering, especially in a fast-paced and relatively agile development environment, needs diagrams to make sense of complexity and communicate structure. Visio is my go-to solution for knocking up such things rapidly and then maintaining them for the longer term.
A drawing tool like this lacks the rigidity of full-blown MBSE applications, but for my purposes this is, as often as not, a good thing, since I largely deal with lightly-structured teams who aren’t themselves familiar with specific modelling languages. Visio’s lack of rules makes it useful for a huge variety of situations and allows a certain degree of nuance to be dealt with within limited scope by agreeing conventions on the spot rather than delving into the SysML book*.
So why not use a pencil? Well, I generally find that if something’s worth drawing, the trial-and-error part of getting it all arranged legibly is both necessary and informative – if I could just draw it, fully-formed, straight out of my head, it probably wasn’t that hard to understand in the first place. Pencil and paper is a terrible (or at least wasteful) way of evolving a drawing. A whiteboard is passable, but generally I just end up photographing it at the end and turning it into a Visio diagram anyway.
Getting back into Visio
Anyway, the splash screen shone its attractive shade of blue once more into my wondering eyeholes and I was surprised to experience a palpable relaxation of the shoulders, as on the return of a beloved family member that I haven’t see in a few months or the reestablishment of supply of something highly addictive. My dependence is physiologically measurable, something which I’m not sure I want Microsoft to know.
And so this afternoon was spent drawing some useful diagrams, but not before I’d spent a few minutes adjusting some stuff (metric measurements, turning off the dynamic grid, turning on the developer tab) and then recreating some basic assets that I’ve become separated from. A few little bits and bobs that I use all the time. Here’s a sample:
Not much to look at, but in quickly coming up with representations to bring understanding to a confused design / team / self I find these basic things make a huge difference:
The first three items are simple blocks that appear in diagrams for various purposes, to which I like to add connection points in particular places.
The SysML actor stick man is very useful in defining system interfaces even when not using SysML.
The pair of clinicians are something I originally made from some standard Visio templates when writing surgical usability reports in a previous job – it’s five minutes to recreate these from the bundled office worker shapes, which are wearing collars and ties rather than scrubs**.
You may ask why I bother to do any of this, when surely you can lash something that conveys meaning together from basic shapes pretty quickly. After all, it takes no artistic talent to produce a pencil diagram, so isn’t this gilding the lily? Well, I don’t think so, for the following reasons.
Mild automation – for a quick draw
Primarily, the basic behaviour of these shapes when combined with smart connectors is helpful – I’m used to working with them, connecting them to each other such that they are easy to rearrange without too much hassle, and this helps me to produce clarity in complex things relatively quickly***.
Look and Feel – selling your thought process
Besides this, they help to mask my lack of artistic ability in making things relatively presentable. The ability to produce consistent look and feel is important for conveying professionalism and instilling into your audience the confidence that you are used to working with such representations and not just making it up as you go along. It’s like putting on a tie to talk to people, only far more important.
Beauty – more than skin deep
Finally, I’m a great believer that all-round basic prettiness in diagrams is an indication of a good architecture or a clear thought process, or whatever the material being presented. Elegance and aesthetics in a diagram surely reflect the suitability of the thing being represented to be distilled within a limited number of dimensions, and therefore act as a measure of its underlying simplicity.
The human brain seems somehow wired to innately recognise and (for some of us at least) appreciate this kind of order without even needing to understand the subject matter being shown. If you can step back until the text becomes illegible, look at the colourful boxes and lines and think “that is, somehow, quite pleasing to the eye”, it indicates certain properties have been achieved:
symmetry
balance
consistency of scale
association by proximity
consistent partitioning
encapsulation of complexity
graduation in changing properties
These properties in the diagram reflect the same properties in the subject.
Furthermore, the act of trying to wrangle a messy diagram into an attractive shape helps to shed light on how the subject is suboptimal. It draws attention to the areas of inconsistency of scale, the over-complicated interface structure, the over-connectedness of disparate components. The moment you step back from a beautifully structured diagram and realise you’ve left off an arrow which needs to go from one side of the thing right to the other, snaking around all sorts of stuff in the middle, your mind is drawn to an important question – is that the right approach, or should we look to get rid of this anomalous connection through improved architecture?
Something’s wrong.
I can’t quite put my finger on it...
Anomalies like this can be fine, but they can also indicate trouble ahead, whether it be a need for catering for special cases in test fixtures, sticky maintenance issues, impending DLL hell / linker nightmares, tricky assembly on the production line or manufacturing niggles spread across multiple global sites.
Plotting for success
So, in conclusion, I remain firmly attached to pleasing diagrams. I’m never happier than when my thoughts are ordered sufficiently that I’m prepared to print them on A0 and nail them to a wall for everyone to see, and I encourage you to adopt this mindset as well. Just get somebody else to operate the plotter – installing the correct driver is nigh-on impossible, the paper loading procedure promises inconvenient loss of fingers and nobody can remember where the cartridges are kept.
* I recommend Jon Holt and Simon Perry’s excellent “SysML For Systems Engineering” (3rd edition on the way this year), for when you’ve absolutely, positively got to rigorously define everything in the room.
** An exercise for the reader. It’s useful to know that if you open the template shape's Shapesheet you can remove the lock that prevents you from ungrouping it.
*** Beyond this, it’s generally a good idea to get to know the tool in a little depth, as you can get an awful lot out of it that isn’t immediately available to the casual user. I recommend www.visguy.com – if you can imagine a thing, this site will probably tell you how to do it.