I can phrase this question in two ways:
What are some mind mapping tools that support nodes that connect to more than one parents, without cycles?
- Or -
What are some task manager tools that support specifying and also visualizing many-to-many dependency graphs?
Recently I wished for more order in my life amongst the things I'd like to do. I started writing todo lists of things to get done, but I quickly realized that many of the items on the list have an interdependent nature, and that I'd like to record and visualize these connections.
An example: (A) I'd like to go on bike trips for leisure. For this I'd need to (B) buy a bicycle. (A) would also allow me to (C) become more fit by exercising more. (B) has some dependencies though: (D) Research bicycles on the web. And/or (E) ask some knowledgeable friends about what might be a good fit for me. And so on.
So I'd like to use some software to map dependencies between certain tasks, and also to have a visual overview of which task depends on which.
More mathematically speaking, a tool that supports a Directed Acyclic Graph, meaning any kind of one-directional connection between nodes are possible, as long as there is no cycle/loop involved.
Cyclic dependencies between tasks would mean that no task in the loop can ever be started, so loops should be actively disallowed, highlighted with a warning, or at the very least detectable somehow by the software, e.g. by pressing a button in the menu items.
I'm mainly looking for (free and) open source software, but I'd like to know if such commercial and/or closed source software exists as well -- especially if no (F)OSS versions are available.
I am mainly looking for web-based or linux-compatible apps, but I'd like to know if such software exists for other platforms as well -- especially if no web/linux versions are available.
(e.g. I am thinking OmniFocus may support some aspects of what I am looking for, but haven't been able to try it out yet as it is unavailable on any platform other than OS X.)
Freemind seems to be the most popular Open Source mind mapping tool, but they only support trees, and more than one parents are not supported.
I know about TheBrain, which supports many children, parent, and sibling nodes. But it is unfortunate that TheBrain allows cycles, and doesn't even support detecting them in any way.
I also know about Flying Logic which is the closest to what I am looking for. It has a phenomenal layout algorithm that organizes each node into levels making cycles immediately obvious. This software though -- unlike TheBrain seemingly (which I think can support many thousand nodes), and -- unfortunately is designed to operate on smaller documents, and above a certain size (few hundred nodes) the document becomes almost unworkable due to a few restraints:
- It seems all of the document is kept in memory at all times, so resource usage can become a problem.
- The only way to connect to existing nodes is by manually mouse-click-dragging from one to the other. If they are close, this is simple and intuitive. However if they are far apart, you have to zoom out, find both, check and remember their exact position, then you can connect them. And immediately afterwards the whole graph reorganizes itself, so good luck trying to guess where anything might be. TheBrain does this better as well: once you specify that you want to connect a node as a child to another, a search box pops up in which you can find what you want to connect it to, hit enter, and it is done.
- The distances increase greatly between nodes as the graph size increases, it would be nice to hide all nodes except for predecessors/successors. It is possible to select these with green outline, but not possible to hide everything but these. Or at the very least it would be nice to see the immediate predecessors and successors of a selected node in a little window to the left (like in yEd).
But these are not really the fault of Flying Logic; as far as I can tell it just wasn't designed to handle larger documents than a few hundred nodes.
I also remember trying out yEd and Microsoft Visio some years ago, but I would be sceptical if they could help me: it seems they would suffer from similar limitations as Flying Logic.
taskwarrior is a very nice little command line open source task manager tool that supports DAG dependency graphs. It detects and disallows cycles:
$ task project:foo add A Created task 88. The project 'foo' has changed. Project 'foo' is 0% complete (1 task remaining). $ task project:foo add B Created task 89. The project 'foo' has changed. Project 'foo' is 0% complete (2 of 2 tasks remaining). $ task project:foo add C Created task 90. The project 'foo' has changed. Project 'foo' is 0% complete (3 of 3 tasks remaining). $ task 88 modify depends:89 Modifying task 88 'A'. Modified 1 task. Project 'foo' is 0% complete (3 of 3 tasks remaining). $ task 89 modify depends:90 Modifying task 89 'B'. Modified 1 task. Project 'foo' is 0% complete (3 of 3 tasks remaining). $ task 90 modify depends:88 Circular dependency detected and disallowed. $
It is lacking in visualising this graph though. There are some scripts floating around that allegedly can visualize some parts of the graph, but I haven't been able to make them work. I am also thinking I would feel limited by having to render these manually and not being able to interact with them as a GUI.
Is there any software that you've used/tried/read about that might fit for what I am looking for?
Or if you haven't heard about a tool like that and you also would like something to track and visualize dependencies between task that you want to do, I would be glad if you told me -- maybe as a comment -- so at least I know I am not alone in wishing for something like this.