Search This Blog

Thursday, May 14, 2009

Mapping your mind - or at least concepts

I was first introduced to the idea of mind maps when I saw the Java Concept Map. While it itself is not a mind map in the strictest sense, the idea is the same and made me explore this new way of capturing information.
Since then, I have heard rants and raves about mind maps - how crazy minded lunatics try to apply mind maps to everything on one hand and how procedure-oriented people write pages of documentation without a simpler visual representation. I think mind maps can be used and abused in a way similar to UML diagrams. While use case diagrams, class diagrams, and state charts can certainly be useful to represent the flow of a program nicely, over-use of the diagrams (such as strictest implementation of Model-Driven-Architecture or using Rational Architect) almost always ends in a disaster. I should know, I've lived through a few of them!
Back to the concept map, I love the use of typography there - big fonts for important concepts and decreasing font sizes for less important topics - kind of like tag clouds. Simple but effective.
Interestingly, I haven't seen any mind mapping software, including the most popular MindManager from MindJet, or the other free open source versions, such as XMind or FreeMind, provide this type of functionality out of the box. 
While no doubt these folks have done way more research in this area than I, my feeling is that the following two features that I have seen missing so far would be very useful.
  • Each topic should optionally have a definition that will be displayed in a smaller font right next to the topic. Having it as a tooltip is not good enough as it will not be visible in the diagram.
  • The connecting line should be 'describable'. In other words, I should be able to explain why two topics are related. This helps to read the relations in a meaningful sentence.
The closest that comes to achieving this is a nice piece of free software called Cmap Tools. The only downside I have seen in this one is that it by default is intended for a more collaborative environment than individual use.
Maybe it's time for me to reinvent the wheel! After all, that's how most open source projects start :)

No comments: