xeruf / nodal

My experiences with & wishes for task management
10 stars 0 forks source link

Ideas on hierarchical priorities #2

Open dbogdanov opened 3 years ago

dbogdanov commented 3 years ago

Hi, @xerus2000. Very nice to read your ideas on the requirements for a task manager. I found this repo through your discussion on Tasklite.

Have you been considering more flexible and detailed priority (importance/...) management for tasks?

Not all the tasks will be ever complete, and many of them are simply options to follow with different levels of impact on user goals. When having many tasks, it may be difficult to assign absolute priority values keeping the big picture always in mind. Having only a few levels of priority values also doesn't help.

I am thinking of a workflow with hierarchical priorities. Imagine a system that allows setting relative priority with respect to the parent task/project/area instead of the absolute priority values. It will enable fine-grained prioritization, keeping the big picture in consideration.

Say, a user has:

We can infer the absolute priority value for the tasks:

Of course, this can be further expanded to sub..subtasks as far as the hierarchy goes.

One can argue that having complex priorities is over-thinking. It won't help for the users that search simplicity. I still think it can be beneficial in some workflows that require more thorough decision making. What I find interesting, this system (hopefully) lets a user be mindful about the actual value of their tasks in the big picture.

Unfortunately, I can't do something like that easily Taskwarrior, and I haven't seen any other solutions. I haven't found much online discussion about this idea specifically for task management.

xeruf commented 3 years ago

That is a very interesting approach!

I have quite a few projects with tasks that are basically backlog, to which I am currently adding wait:someday in taskwarrior, which isn't an ideal workaround. With this approach I may simply set the priority of the area/project very low or even to 0. Though I would probably represent them as decimals rather than percentages - because percentages seem like they should add up to 100, which they don't here. Though that could also be something to consider - when you boost one item, all others adjust equally so that it all adds up to 100. You could then even create a pie chart or something ;)

I am also pleased to say that I have assembled a little team from my university and we are working on making this project a reality until the end of the semester, in Haskell. We are planning to use an Entity-Component-System pattern for modularizing it.

dbogdanov commented 3 years ago

Great to hear that! I will be following your updates.

Indeed, there can be different approaches to scoring: percentages, 0-1 range, arbitrary scores, even a combination of them. They could be configurable too.

My current setup is very unusual.

I am using XMind to draw a mindmap tree with all areas, projects, and tasks. The font size of each node represents its priority. I can add comments to the nodes with "callouts", attach notes, and write due dates in a specific format in the node text body. Then, I have a custom Python script that parses all the tasks from the xmind format and orders them by priority and/or date in CLI.

This approach is extremely visual. I can see the difference between the importance of different tasks when working on the mindmap. But I need to assign the font size for nodes manually. The disadvantage is that XMind is pretty heavy and slow when using many tasks. The new XMind 2020 is much faster, but not open-source. The map becomes too large to browse easily, and I stop using it. It costs some effort to add new stuff, so I tend to postpone instead of adding instantly.

xeruf commented 3 years ago

That is indeed unusual, but also inspiring!

I too have wondered how to make the CLI-experience of task management more visual. One thing that made me abandon taskwarrior for a few months were the overwhelming long lists of tasks with my backlog, which is also why I think hierarchies are important. Even though proper tagging and technology would in theory make this superfluous, we humans are very visual and like to have an illusion of control.

If you have ideas for how to visualize the task list, go ahead! I was reminded of org-roam, which can draw a pretty spring-based graph of all your notes.

jeyj0 commented 3 years ago

Hello, glad to see the conversation continuing here. I'm one of the team members @xerus2000 assembled.😉

Once we're at a point where the modularity is actually implemented, it would be great to have other people come and build onto what we're building. Your approach using mindmaps sounds awesome, and it should be no problem to integrate xmind files into our solution, if you know some haskell.

You can check out the repo with current developments at https://codeberg.org/code-done/done.

This week or next (fingers crossed) we'll hopefully be at point where features can be added. At that point appropriate documentation will also be added.

pvamshi commented 3 years ago

Do you have related code somewhere ?

xeruf commented 3 years ago

repo has been renamed :) https://codeberg.org/equilibrium/equilibrium but we're still grappling with fitting it into Haskell