Mind Maps: the Poor Man's Design Tool
CowboyRobot writes "'UML too complex? Flowcharts too old school? Mind maps offer a simple way to capture designs and weave them together elegantly.' The quickest way to begin designing a program is to simply write down the steps in normal text, but this method breaks down with more complex projects. UML can be a useful format for larger projects but can be difficult to get right, especially when trying to use it with a less conventional project. The middle ground are 'Mind Maps,' 'a diagrammatic representation of loosely connected ideas. They are a central tool in brainstorming sessions. Mind map tools help capture ideas and then mush them around until you have the structure you want.'"
Vue from Tufts university supports cyclic relationships. It also has good tools for plotting routes through a mind map which are good for getting a linear form out of a model. I use it a lot for complex reports and essays, with good results.
Quidnam Latine loqui modo coepi?
Most mindmaps boil down to a visual representation of a hierarchical list, with some comments and maybe a few extra relationships added. As a visual representation they are great for individual ideation, brainstorming, or even scoping functional designs. In those cases you're working with concepts that fit a taxonomy but are otherwise only loosely interrelated (as far as matters for the mapping exercise). A lot of what you're doing there is fitting items into the taxonomy, checking whether every (sub)category is complete, and tweaking the taxonomy itself. Mind maps are a very useful visualisation for such tasks, and even for people new to the concept they are simple enough to understand and work with.
But design work? Things like ordering and complex flows are not naturally captured very well in a mindmap. The mindmaps in the Dr. Dobbs article appear to me as rather awkward flow diagrams. There are better representations; even a simple indented list might work better for the examples given. I have used mindmaps when designing software, but in those cases I used them to map out functional areas of the software, break down each area in distinct tasks and perhaps subtasks, but I stopped at the level where timing, order and interdependencies become important.
If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
Undoing mod points to post this. If you like FreeMind, you really need to try out Freeplane. Much more functional than FreeMind on so many levels. :-)