How are mind maps useful for programmers in organizing the way they work?
Mind Map => UML.
You can start with mind mapping. The generic, ill-structured mind-mapping techniques are fine to get started, but, largely useless and confusing.
Use UML diagrams instead of mind-mapping diagrams.
Focus on particular views or aspects of the system:
Use Case diagrams are first-class mind maps of the actors use cases. Switch notations and you're fine.
Class diagrams are a mind map of the static relationships among classes or objects. Switch notation to UML and you're fine.
Sequence and Activity diagrams can be mind maps for the dynamic relationships among objects. Again, modify your notation away from generic mind-mapping to specific UML and you can be much more productive with little actual change to your practices.
Deployment and Component diagrams are first-class mind maps focused on specific issues (physical deployment and software architecture.)
As with every other tool this one can be misused badly. I find any tool that facilitate me to write better software is a tool worth using. Mind maps, especially in early phases can give you an edge so that you (and your users) can get a clear idea of what is being done. However, it is easy to get carried away:
Source is unknown -- I do not remember where I got it from and there is no information within the images to offer suggestions.
I use mindmapping mostly in the early design stages when talking to future users of the system. In this way the information can quickly be (re)structured. For the actual work i somtimes draw a mindmap with work items and check off each item when finished.
Mindmaps can alos come in handy when learning. If i'm listening to a conference speech or a podcast I draw a mindmap of the subject. This helps me to better remeberer the information in the future.
Some research also suggest drawing (I sometimes do beside the mindmap) helps to have more areas of the brain active resulting in better information absortion and analyses.
If you've got a proper design you don't really need a mindmap to organize your work. All tasks are predefined. If something extra needs to be done, the project manager needs to be alerted and he/she can plan this extra task for the developer.
You could use mindmapping, but I thing it's better to use a project management solution which already offers something like this instead of doing it yourself and not sharing it in an organized way with your coworkers.
I find this question quite vague and overly general - it would help if you clarified/specialized it a bit.
Anyway, mind maps are in general useful when you need to keep track of and organize in your mind a great amount of raw concepts / ideas / facts / thoughts etc. It helps to put them on paper / screen, and start sketching their relationships and hiearchy out. A lot of people are visual types, so they need to see stuff in a picture / diagram to be able to grab it mentally. But even if not, everyone has his/her limits of mind power, above which a mind map can get handy.
In programming, this is typically used in the early phases of a project, e.g. in our team we use it
- to collect and organize ideas when brainstorming about possible new features / improvements to spend our resources on in the next months, and
- to collect and organize necessary tasks, risks and issues when doing an initial high level assessment & estimation for a big new feature.
I often use mind maps on paper when programming: in every situation where writing on paper is faster than entering the tasks on the computer, and where the number of tasks is small enough that the mind map can be tossed away at the end of the day (otherwise, I may be wanting to work on the project at home, only to discover that my mind map of to-dos remained at the office).
For longer-term projects, I use a custom to-do list manager on my computer, which has the advantage of being near impossible to lose (as opposed to a sheet of paper).
Thus, I find paper mind maps useful for quickly organizing tasks in a logical way and for adding tasks on the fly: they greatly help me to remain focused on the global picture, and also to easily prioritize tasks.