It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
If this question can be reworded to fit the rules in the help center, please edit the question.

@Job, mind maps are quite useful - if you do not like diagrams, try the org mode in Emacs, it is a great tool for capturing your unstructured thoughts, prior to any proper planning. As for UML - I agree, it is totally worthless.
–
SK-logicFeb 21 '12 at 10:18

1

I've seen digital mind-mapping tools used for debugging(!) - I suppose it's a well-structured way to enumerate the events that might be happening, and work out the possible cause of a bug.
–
JamesFeb 24 '13 at 23:51

There are a lot of votes to close the question. It's interesting because the topic provides a lot to be discussed but also somewhat vague. There are many aspects of a programmer's work that lends itself to mindmapping, what benefit are you looking for from it in particular?
–
Mike BrownFeb 25 '13 at 17:36

6 Answers
6

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.

I find your feedback pretty accurate, I also use them regularly when I check code, not only when you start a new project. I find it a good exercise to get into the code quickly and clean. Funny thing doh, you immediate catch if the person has any idea or not idea of what is he/she doing. I just found some "funny" bugs easy to fix!
–
huskerFeb 25 '13 at 15:01

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.

When using an agile approach to manage your project you probably got something like stories which basically are small tasks which need to be done.

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.