Mind Maps: the Poor Man's Design Tool
CowboyRobot writes "'UML too complex? Flowcharts too old school? Mind maps offer a simple way to capture designs and weave them together elegantly.' The quickest way to begin designing a program is to simply write down the steps in normal text, but this method breaks down with more complex projects. UML can be a useful format for larger projects but can be difficult to get right, especially when trying to use it with a less conventional project. The middle ground are 'Mind Maps,' 'a diagrammatic representation of loosely connected ideas. They are a central tool in brainstorming sessions. Mind map tools help capture ideas and then mush them around until you have the structure you want.'"
Slashdot discovers mind maps. News at 11.
I suspect we all know what a Mind Map is, and what their uses are. Alas, I don't know of any program which implements the original concept for Mind Maps (BBC2's "Use Your Head" series from the 1970s). Does any existing program support cyclic relationships, for example? Other than as a hack with external arrows or similar added as decorations.
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
I don't know - it's a free / open source mind mapping tool he recommends.
Compendium
Shai Schticks:"You don't make peace with friends, you make peace with enemies"
Mind Maps are basically digitized "brainstorms" that we were all (some?) taught in school. Digitizing anything comes at a cost: Using the UI. Usually pencil and paper is way more freeform and faster, but having your ideas digitized has some intense nerd value!
No not all of us were taught this in school. Also there are mind maps and mind maps. Tony Buzan is the man for the classic mind mapping techniques but people should try to evolve their own and like myself will often develop their own shorthand in the process which makes note taking and mind map design so much easier.
I like FreeMind (mentioned in the DrDobbs article). Of course I knew about mind maps before, but the ability to export a perfectly formated map as Pdf, HTML and in various image formats is great. I think I'll be using this instead of paper in the future. I've tried various UML design tools in the past, but they all require that you have already made some of the decisions beforehand.
I think UML is a great way of describing a system once you have made all major decisions, but whenever I need to think about a new project, I have always prefered pen and paper. I'll seriously give FreeMind a go now.
She made the willows dance
No they aren't.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Beyond mind maps, there are Warnier-Orr digrams. One of the bigest disappointments in software is that Varatek hasn't upgraded B-Liner so it runs well on Windows 7. For small systems design, it was great.
http://varatek.com/
"The mind works quicker than you think!"
You can spend a week in a tiger team lock-in session, mind mapping the shizzle out of your next project. Eventually, a desperate delirium sets in, and you'll agree to anything just to get out of there. Thus the design is "finalised".
Then by the time you get back to your keyboard, some executive vice president of marketing is accidentally exposed to a copy of Wired, and decides that instead of writing an app to keep recipes on, what you really need is to ride the frontsurge to a collaboratively cloudsourced web 3.0 win-win solution, and the charade starts all over again.
Experience starts to look a lot like cynicism after a while.
If you were blocking sigs, you wouldn't have to read this.
If you are an experienced thinker then you probably need time (in ways you have got used to eg On waking-up or hiking or "Shut up! I've just had an idea!") to note your thoughts and see where they lead. You're quite likely to have ways of grouping and ordering notes on [bits of] paper which just happen. The only software you need is a pencil and scrap paper.
If you are one of the 90% of people who don't use analysis and imagination then you need prompts and buckets. Prompts to ask say 'what are the sub-tasks' and buckets to keep similar things together. MM don't have prompts and the buckets are very generic. For a particular task such people need particular headings to put 'first answers' into.
This is not the same as the Dr Dobbs of 1994, 1995 and prior :-(
WTF is going to happen next? A description of using a text file to write down high level concepts then inserting indented lines that break the concepts into even more pieces? Then, indent again and break down even further! You could even call the non-indented lines functions, the lines with one indent a function as well, and the lines with 3 or more indents pseudocode for the functions! Maybe you could even use this text file to produce comments for the code. I think I am onto something.
HyperList may be an alternative as a straight text solution (even with a VIM plugin doing all kinds of tricks).
You could also use a scanner or "digital pen" and get most of the benefits of both.
Dilbert RSS feed
You make a very poignant argument, but it fails to address that fact that yes, they are.
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
I suspect that for most people, the reason to use a mind map rather than UML would not be UML's complexity. UML scales pretty well: a bunch of boxes with names in them and lines between them to signal what is related to what is a valid UML class diagram already. Instead, I think the problem with UML is that it forces you to think very carefully about what exactly it is that you're going to create. Back in the 1960's and 1970's, people like Donald Knuth and Edsger Dijkstra advocated careful thinking about software, rigid specification, and proving correct any important algorithms. They saw software as a mathematical construct, and the exercise of building software as akin to proving theorems.
Fast forward to the Internet age. Software is everywhere, and rare is the project where the customer can tell you clearly what they want. The small cadre of people who are capable of the precise and abstract thought required to do programming the mathematical way is not by far big enough to write all the software that the world needs, so even if customers could make rigid specifications, most programmers would find them written in an alien language. So we have adopted a biological rather than mathematical approach: specifications are never exact, software is always broken, but it's okay because the software has an immune system (we call it vendor support), which fixes up errors continuously. In such a world, maybe a mind map is as formal a description as you need.
Personally, I used UML to describe a logical data model in my last big project. I was the only one with a formal CS background in the project, but everyone understood the diagrams just fine. I had to explain a few more advanced things to some people, but it was no problem. And we did think everything through very carefully, and so far the whole thing is holding up very well because of that. In my opinion, even in the age of agile development and web technologies, careful thought is still invaluable in software development, and a diagram language that lets you specify a bit more detail when you need it is a very useful tool. I'll stick with UML.
As mentioned above they can't handle complex data structures (or much data at all). Wiki-based software is better.
http://zim-wiki.org/
http://wikidpad.sourceforge.net/
Undoing mod points to post this. If you like FreeMind, you really need to try out Freeplane. Much more functional than FreeMind on so many levels. :-)
I spent an hour and a half yesterday jotting down the design for a fairly small supporting application I'm planning to write, pushing some objects around on paper until things felt fairly good, trying out different patterns to see what seemed to fit the design best and figuring out what the config files looked like. I'm pretty comfortable that I got everything that it needs to do, and foresee no problems getting it coded.
I still haven't found a tool that works as well as pen and paper for this process. It really isn't that hard to just sit down and organize what your program is going to look like, as long as you're not actively avoiding having to do that. Mindmaps (nor anything else) will magically fix poor design skills.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
When I was very young, I used to swear by a book by Tony Buzan that was very much along these lines. The title was "Using Both Sides of Your Brain" or something like that. It was helpful to me though it made my class notes unreadable to anyone else. (This was before it occured to me to use computers for these things.)
Mindjet Mindmanager rocks. I have shown that tool to at least 20 people and I don't think a single one adopted it; fools. For brainstorming I can't imagine a better tool. You just keep throwing information into the tree and there is always a perfect place for it. My favorite is when a long term project has a new idea for some future feature and I go to put it in and it is already there in the exact place where I wanted to put the "new" idea. Then as the project moves along the tree becomes a source of great ideas that had popped into people's heads long before.
Even for putting together a report or whatnot. You just keep gathering facts and ideas then then export to word; a bit of trimming and editing and you have a report.
But as I said, I have shown that product to at least 20 people with none adopting it. I can't imagine how hard it is for the MindJet people to sell it. Easily one of the first products I install on a new computer, well before an office suite, but after my IDE.
How is drawing UML-compliant boxes more expensive than drawing regular boxes for mind maps? Is there somewhere in the UML specification that says you can only use Faber-Castell pencils or commercial software?
It is extremely valuable, you just have to be carefull about what you want to spend time carefully thinking about.
Rethinking email
i used to watch tony buzan on the television when i was about 12. i have been using mind maps ever since. to the people who "just don't get it". that is your loss i'm afraid.
Video of me using Compendium in real time to create a concept map of a discussion: http://barcamp.org/w/page/47221410/Desktop%20or%20Mobile%20or%20Web
No video, but here is the concept map made in real-time with Compendium in another workshop at the 2011 Capitol Camp:
http://barcamp.org/w/page/47222818/Tools%20for%20Collective%20Sensemaking%20and%20Civic%20Engagement
A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
Don't get me wrong. I'm a big advocate for mind maps. See http://ploneglenn.blogspot.com/2010/10/mind-mapping-in-modern-age.html for a list of map mapping software that I have used over the years. I just don't see why you would use a mind map as a replacement for UML. Outside of them bothing being a type of diagram, I don't see much similariity or purpose. You use UML to model object oriented systems. Mind maps are a diagrammatic way to organize just about any cognitive activity. Using a mind map as a replacement for UML would be like attempting to drive to the super market with a pencil. http://stackoverflow.com/questions/423218/best-tool-to-create-architecture-diagrams-for-software/423288#423288 is what I recommend for diagramming in UML.
I'm a business analyst, and when I did my degree they taught me UML and DFDs and various other types of diagrams. In the real world I never follow the rules though - I pick and choose the bits and pieces that I need. Ultimately my goal is to express information; having rules and a structure helps, but it's just as important to know when to break the rules.
I like my coffee the way I like my women - roasted and ground up into little tiny pieces.
I've used Ketso for mind mapping in a group product design brainstorm session. It worked really well for capturing everybody's ideas and grouping them to come up with common themes and shared ideas. I know its a bit low-tech, but its nice to get away from the computer sometimes.
I counseled one thesis where the student was awestruck by FreeMind. His highest level of achievement was to cram the whole topic into one gargantuan mind map. That didn't help him write one line, and seemed more to hinder his ability to start working from any particular point.
Instead, when he was sinking into desperation, I sat down with him and we basically brainstormed the whole topic all over again and put it down to a bullet list, which turned into a preliminary index, and each top level bullet was sub-planted with more in-depth bullet list, which was then converted to text. Text, just like code, flows naturally better as a list than a graph.
Put short, it's nice that you found a tool. It's a hammer and not every problem is a nail.
Let's take the computerized part first. You can draw them on paper - indeed, when they originated computers capable of running mind mapping software would have been very rare. So you're already 50% full of shit.
Brainstorming is an unstructured way of generating ideas. Mind mapping involves taking a central idea and building on it, refining it and/or adding detail.
Truly, your crap runneth over.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."