Article summary
One of the tools that I’ve added to my development and writing workflows since starting at Atomic is mind mapping software. I’ve found that creating a mind map is a great starting point for both technical development and writing things like blog posts.
There are lots of different mind mapping apps, spanning all different computing platforms, each with its own set of strengths. I prefer MindNode for its clean, minimal UI and handy navigation shortcuts.
Mind Maps for Technical Planning
Often, when starting a new project story, I’ll open up MindNode and create a mind map to organize my thoughts and ideas about the ticket.
Everything Is a Tree
The first (and probably most obvious) strength that mind maps bring to the technical planning process is the root of what makes them great in lots of domains — trees.
I remember joking with a friend in college that if I’d learned anything in four years of college, it was this: everything is a tree. I grabbed the computer science textbook lying on his desk and opened it to a random page, and — sure enough — we found a graphic of a tree structure.
Trees are ubiquitous in computer science and software development. Class inheritance, function calls, data structures, React components, dependencies: the list of trees goes on and on and on. This makes mind mapping particularly well suited to sketching out problems in software development because mind maps are trees. The software lets you quickly sketch out the structure of what you’re developing without getting bogged down in notes and pseudocode.
Lightweight & Flexible
Mind maps are also incredibly lightweight, and they can help express and clarify complicated concepts quickly.
Often, while sketching out a problem of some sort, I’ll find that the nodes I’ve put under one parent actually relate better to another, or that nodes sprinkled across several parents are conceptually related in a way I didn’t notice before. With a powerful tool like MindNode, it’s easy to drag and drop nodes onto different parents nodes, to duplicate nodes, or to mark connections between sibling nodes.
This inherent flexibility allows you to shuffle your thoughts around quickly, iterating through different approaches at higher and lower levels of abstraction to prove out that the pieces you’re going to start building will fit well together.
Mind Maps for Writing
A mind map can also be a powerful starting point for a piece of writing (like this blog post).
Separate Structure and Content
Most of what makes mind maps handy tools for sketching out software patterns translates pretty readily to most other writing you might need to tackle.
Lots of pieces of writing are actually pretty tree shaped. Books are root nodes, chapters the children, followed by chapter headings and paragraphs, all the way down to sentences and words. Obviously, it’s going to slow you down to write all of the world’s next great novel in a mind map, but a mind map can really help to get the overall structure in place. Then you can do fun things like embed links and emojis, separating out the details of what’s in a chapter and where that chapter goes.
A mind map can also serve as an indicator for the best way to translate your thoughts to the page. Do you have a node with lots of small, concise, loosely related children? That sounds like a good bulleted list. A node with a handful of deeply nested children? That’s a major section. Nodes in between? Subsections of their parent.
Mind maps make it easy to jump among related ideas quickly, zooming in to make small updates without worrying about the overall order of things, then zooming out to look at and restructure the big picture. Once you’ve got your thoughts sketched out, you can freely move nodes around and try out different approaches without losing any context. When you’re ready to put words on the page or start writing some code, you’ve got the layout of your document (or maybe some class or function call trees ready) in a nice visual format.
Do you have any favorite mind mapping tools or other cool mind map use cases?