When planning a project, whether it's an essay or software, there's a tendency to try to capture ideas in a linear fashion, organizing them as you draw them forth from your mind. The classic example of this is attempting to write an orderly outline as the first step of composing an essay.
The problem with this approach is that combining brainstorming and structuring can actually hinder both processes. On the one hand, without the raw ideas visualized, you can become trapped in structural dead ends. And on the other hand, adhering to a prematurely conceived structure makes it harder to call forth all the ideas efficiently. Anyone who has been stuck partway through a stubbornly dysfunctional outline knows this dilemma all too well.
In other words, it's often better to separate the two processes: get all the ideas down first in a nonlinear way, then organize.
Mind mapping is great for this kind of two step brainstorming. A mind map is a diagram that represents ideas arranged around a central concept. It's a nonlinear way to organize and visualize ideas.
Freemind is a free mind mapping application written in Java that will help anyone who plans projects, for example: developers, writers, conference presenters, and students. Beyond planning, it can be used to assist decision making, organize information, and aid problem solving.
Freemind boasts a number of excellent features, including: a fast and intuitive interface, node folding, support for hyperlinks to remote and local content, drag and drop editing, and export to HTML, XHTML, PDF, SVG, PNG, JPEG, and Open Office Writer document.
The latest version is available at the Freemind web site. There are versions for Linux, Mac OS X, and Microsoft Windows, as well as generic binaries for any operating system. Freemind requires the Java Runtime Environment.
Installation of Freemind on Linux is fairly straight-forward, and the Freemind wiki has a page of detailed instructions for Linux and Unix users. The instructions explain the installation process on Debian, Ubuntu and Kubuntu, SuSE, and Gentoo. They also cover RPM and apt4rpm installs, as well as installs without package management tools.
Using Freemind is easy. When you launch the application, you see a new, blank mind map. Click the root node in the center of the map and type in a word or short phrase that describes the key concept you are brainstorming. For my simple example, I'm labeling my key concept "animals."
Now we can add child nodes. Child nodes can, in turn, have child nodes and sibling nodes -- nodes with equal hierarchical value.
To add a child node, choose New Child Node from the Insert menu, or simply press tab. My first child node is mammals, so I type Mammals into the new node.
I want two other child nodes: birds and fish, and I want them to be equivalent to mammals, so I must create sibling nodes. To create sibling nodes, I choose New Sibling Node from the Insert menu or hit return.
Navigating my mind map with the arrow keys and adding new child and sibling nodes, I can now add more nodes.
If I'm concentrating on the mammals branch and want to fold the birds and fish branches out of the way, I simply click on the Birds and Fish nodes. To unfold them, I click them again.
Now that I have the beginnings of a populated mind map, I may want to change the relative positions of nodes. To move nodes, click and drag or use keyboard shortcuts. For example, move Fish to the left side of the root node by dragging it, and move birds above mammals by navigating to it with the arrow keys and pressing ctrl-up arrow.
Freemind offers many more features than I've described here. To learn about these features, use Freemind's built-in help, which is in the form of... you guessed it: a mind map! Choose help from the menu and a new mind map will appear that contains a wealth of useful information.
As someone who creates mind maps on a regular basis, I've been very impressed with Freemind. The interface is clean and fast, and it has all the features I need, plus many others I haven't yet explored. One shortcoming is Freemind's lack of multi-user support, but it does have what the authors call a "preliminary locking mechanism" to prevent conflicts. Aside from this issue, Freemind is a great little application Linux users will find tremendously useful. Try it and see.