Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

How are mind maps useful for programmers in organizing the way they work?

share|improve this question
1  
I do not find them useful. This looks like something an artsy or otherwise non-technical person would draw. 12manage.com/images/picture_mind_mapping_applications.jpg I also do not find UML that useful. I can look at it after the code is done, but I will not design this first and then implement the code based on it. I like to use diagrams that work best for me, ones that are not influences by any process. Good examples (not mine): lemonodor.com/images/computer-music-composition-levels.jpg valelab.ucsf.edu/~MM/MMwiki/images/9/9e/Block_diagram.gif Not mind maps not UML. –  Job Feb 20 '12 at 21:24
    
@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-logic Feb 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. –  James Feb 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 Brown Feb 25 '13 at 17:36
add comment

closed as not a real question by MichaelT, gnat, Glenn Nelson, thorsten müller, Mike Brown Feb 25 '13 at 17:36

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.

6 Answers

up vote 11 down vote accepted

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.)

share|improve this answer
    
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! –  jmolinaso Feb 25 '13 at 15:01
add comment

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:

Awesome Mind Map

Source is unknown -- I do not remember where I got it from and there is no information within the images to offer suggestions.

share|improve this answer
    
+1 for the pic. Source? –  Jan Doggen Feb 25 '13 at 14:08
    
Bottom right says lunchbreath, but can't be found (any more) on lunchbreath.com. The style matches ;-) UPDATE: A simple Google "mindmap lunchbreath" finds it. –  Jan Doggen Feb 25 '13 at 14:21
    
Yes, it does. However, like yourself, I was unable to find it there. So, it's likely to be there, somewhere. –  Sardathrion Feb 25 '13 at 14:22
add comment

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.

share|improve this answer
add comment

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.
share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.