For a long time, I have been using Freemind for many purposes. For those who didn’t use it yet, I highly recommend checking it out, it’s cross-platform, an open-source desktop application for mind mapping. I guess it will be a little bit brave, but suppose I can compare the flexibility of this Freemind with Excel power. As Excel is excellent for anything that has tabular data, Freemind is just perfect for data of directional graph structure.
I found many use-cases it could be useful. Even weird, like graph knowledge database with UI in Telegram bot. Some use-cases I found incredibly helpful for my daily job and would like to share how it works.
At work, I often discuss new projects, some of them are huge, and I need some structured way how to keep knowledge about the project organized. Sometimes I have to recall in my memory details of the project I discussed a few months ago and structured documentation in Freemind helps me again.
In first, I am trying to understand the concept, the goal of the project, and then, step by step, I create requirements structure. The structure is typical and standard for most of the projects I discuss with clients and team.
Every project has three required roots:
- Roles in the project (I always try to outline existing roles, limitations and features specified to each one)
- Data structure (what kind of data structures/objects/entities project has and operate)
- Screens/Pages (each one has two subsections with a detailed explanation of what user see on the screen, and what actions are available)
If the project is huge, I can split it on a few separate mindmaps.
For complicated interactions, I have a separate type of structures, that I call flow.
The standard structure allows me to easily navigate even through huge mindmaps and what is most important to me: automate routines.
Freemind stores mindmaps in XML format that allow me read and manipulate documents. Groovy fans could try out built in scripting engine inside Freemind.
I have implemented a simple Python library that allow me automate my routine in Freemind mindmaps.
Below a few examples of such automation.
An example of output with questions:
Questions: 1. Home: - Any addition features on homepage? 2. Registration: - Do we need social registration with Facebook/Twitter? Won't be implemented in first version: - Shipping tracking - Admin
The estimate is another significant piece of my work. Every node in Freemind can be extended with attributes. There is an estimate attribute on my mind map above. In Freemind interface, you can show/hide all attributes or display only selected by you types of attributes. Depending on the project, I can add different types of estimates like optimistic/pessimistic or backend/frontend/mobile/design/etc to one node, look at estimate through different perspectives. Here is an example.
Typical estimate in console looks like:
Estimate: - Catalog, 12h - Product page, 14h - Cart, 24h - Registration, 5h - Login, 6h Total: 61h
Sometimes I would like to describe flow on my map. Usually, it looks like that:
I am following two simple rules on my flows:
- Terminate all dead tracks with End keyword
- Mark redirects with GoTo keyword
This simple visual language, allows me recursively go through all possible scenarios (even a few times, if necessary), and generate all possible test cases for such flow. On the one hand, it’s useful for understanding the level of complexity and helps me do not underestimate some features. On the other hand, it could be used by your QA team.
Full output with use cases:
TestCase #1 - Flow - HomePage - Catalog - Add To Cart - GoTo: Login (if not logged in) - Login - End TestCase #2 - Flow - HomePage - Catalog - Add To Cart - Shipping Confirmation - Payment Confirmation - Order Confirmation - End TestCase #3 - Flow - HomePage - Login - Profile - Update profile - GoTo: Catalog - Catalog - Add To Cart - Shipping Confirmation - Payment Confirmation - Order Confirmation - End TestCase #4 - Flow - HomePage - Login - End
Hope those tricks will help you be more productive and accurate with estimates. I’ll highly appreciate if you’ll tell me about your way to use mindmaps and especially Freemind. If you have any questions, please feel free contact with me.