I’ve been mulling over some more of the things that make a whiteboard so useable to me and how some of the ideas might apply to a future generation of modeling tools.
One thing that struck me especially forcefully is the way I use multiple coloured pens – and no, I don’t mean sniffing them!
A simple use is categorization of some sort; this is pretty straightforward, blue things are classes, red things are structs, green things are “classes ultimately derived from Widget” and so forth. You can see this in modeling tools such as the forthcoming Visual Studio 2005 Class Designer, or as a simplistic notation for stereotyping as seen in various tools.
Of course when scribbling, I make up the binding between the colours and the semantic information along the way and its different for every diagram. How dynamic do you want this binding to be in modeling tools? Or do you just want the colour available in the underlying model data so you can perform the binding in some other external tool?
Another use for colours is to effectively draw one diagram over the top of another (although this does make the tips of your pens go smudgy). I often draw a high-level diagram in one colour whilst I’m thinking about architecture. Later I may come back to it and start to embroider implementation detail on the top with another pen. Of course, here I always run out of room and my implementation detail starts to get less and less legible. So in a modeling tool, how do you want virtual space to work? I certainly want room for all my elaboration detail, but I don’t want to rearrange the diagram to do it. And importantly, I want to be able to remove the implementation layer(s) and get the original layout back, not have huge gaps in my original diagram. Is there some benefit to the visual affordance of layers rendered using transparency and alpha-blending here? Should we use Avalon-style graphics power to enable this? Does it buy the user anything? Photoshoppers seem to find layers the most natural way to manipulate modifications – in my mind, it’s conceptually similar. What do you think would give you the most benefit in such a tool?
Yet a further use for colours is to work with models representing totally different things at the same time – I’ll leave that for the next post. As ever, I’d love to hear your thoughts on what would make modeling tools as essential to you as your whiteboard.