Programmers and IT types in general are not usually well known for their creative and spontaneous ways. Most in this profession are very logical and linear thinkers, and often those qualities lend themselves nicely to this field. An unfortunate byproduct of this fact, however, are the thousands upon thousands of badly designed applications that have been forced upon poor, unsuspecting end users. If you've been here for any length of time, you know that I have a couple of sacred mantras. One is that the interface is the application as far as the end user is concerned. They could care less about your SQL backend or cool use of classes in OO to abstract the blah, blah, blah. :-) Another is that because of mantra #1, it is our duty as developers to design everything with the end user in mind. Now...if you are a logical and linear thinker, then this might not be the easiest thing in the world for you to do. The key is to recognize that you need to work on developing your design skills and to continually grow them. One technique that can help in that regard is mind mapping.
Mind mapping is a technique used to visually depict concepts in a non-linear way, with lines radiating out from a central concept that group related items together. They are very useful in allowing you to see relationships in seemingly non-connected information. Mind maps are also great devices for brainstorming. The power of mind mapping comes from the fact that it allows you to utilize both sides of your brain, the creative and the logical. One of the key concepts of mind mapping is including multiple colors and pictures within your map. In doing so, you draw upon those creative tendencies, which just in itself provides value by keeping your brain sharp. Mind mapping began by using the same kind of tools you use for low-fidelity prototyping...pens, crayons, pencils, paper, etc., but you can also now find many mind mapping applications for the computer (stay tuned for an upcoming review of my favorite, MindManager). To learn more about Mind Mapping, check out the definitive work by Tony Buzan (The Mind Map Book) and another great work by Jamie Nast (Idea Mapping)
I think that mind mapping provides some great benefits for programmers and designers. One way I use mind mapping is to capture and display all of the little nuggets of information that I come across during the requirements gathering phase. I often find that seemingly insignificant remarks or off the cuff comments that don't appear important at the time make a huge difference to some design aspect of my application later down the line. By having these bits of information laid out in front of me in a mind map, I can occasionally find relationships in the ideas that the end users didn't explicitly spell out or I can identify areas where further interviews and exploration is necessary.
Mind maps work very well for project tracking and managing programming tasks as well. When I get down to the point of writing code, I try to capture the major design points in a map. I know many programmers who do this with basic To Do or feature lists, but by using a map, you can see how the various components of your design are related. It also allows me to visually represent the importance of one item over another, so at a glance it is easier for me to see what I should be working on.
I find mind maps are a perfect way to begin thinking about the hierarchy of a new application design. Items like navigation structure and UI design elements naturally lend themselves to the kind of relationships a mind map is designed to convey. If I'm working on a new website, for example, I'll create a mind map of the taxonomy. When I share this with end users, it's a lot easier for them to understand since they "see" how the website will be laid out. Remember the old cliche..."a picture is worth a thousand words". I think as much as you can simplify the design process for the end users with pictures and easy to read visuals, the closer you will get to meeting their requirements when you deliver the application to them.
Although I have not done this yet, I think mind mapping would be an ideal way to visually see how your LotusScript or Java code is laid out. I remember working on an application for "Really Big Company" that had tons of script libraries. I spent a lot of time when I was first learning the system digging through the various functions and methods and taking notes on what called what, how they were related, etc. I think a mind map could show these relationships much more elegantly. I'm going to try this whenever I get back to writing code.
Beside the applications mind mapping has in a professional development capacity, they can be used for almost anything else. I find that my memory of certain things is improved when I use a map over a standard linear way of writing information down. Mind maps are great for capturing meeting minutes, brainstorming, taking notes on a book you are reading, etc. But the biggest benefit and why I bring this topic up has to do with the creative nature of mind mapping. When you follow the "tricks of the trade", you begin to rely on both sides of your brain and unlock that creative potential that you have inside. In doing so, you'll find that your problem solving skills are sharpened and you can more easily envision the various dimensions of a given issue or task. I believe mind mapping also helps you become a better observer and certainly the act of creating a map helps commit what you are writing to memory much faster than any other method I've used before.
Don't just take my word for it. Some superheroes from the Notes community that use mind maps (or have at least dabbled with them) include Bruce Elgort, Eric Mack, Tim Tripcony and Stephan Wissel.
When it comes to designing innovative UIs that your users enjoy working with, creativity is key. I hope you'll consider mind mapping as one possible way to help cultivate your creative side.
P.S. Here's a short little interview on what I do with MindManager.