Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ideas on hierarchical priorities #2

Open
dbogdanov opened this issue Sep 16, 2020 · 6 comments
Open

Ideas on hierarchical priorities #2

dbogdanov opened this issue Sep 16, 2020 · 6 comments

Comments

@dbogdanov
Copy link

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:

  • area A1 - importance 100%
    • project A1_P1 - relative importance 100% (for the area A1)
      • task A1_P1_T1 - importance 100% (for the project A1_P1)
    • project A1_P2 - relative importance 60% (for the area A1)
      • task A1_P2_T1 - importance 100% (for the project A1_P2)
      • task A1_P2_T2- importance 30% (for the project A1_P2)
  • area A2 - importance 40%
    • project A2_P1 - relative importance 80% (for the area A2)
      • task A2_P1_T1 - importance 100% (for the project A2_P1)
      • task A2_P1_T2 - importance 50% (for the project A2_P1)

We can infer the absolute priority value for the tasks:

  • A1_P1_T1: 100% of 100% of 100% = 100%
  • A1_P2_T1: 100% of 60% of 100% = 60%
  • A1_P2_T2: 30% of 60% of 100% = 18%
  • A2_P1_T1: 100% of 80% of 40% = 32%
  • A2_P1_T2: 50% of 80% of 40% = 16%

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
Copy link
Owner

xeruf commented Sep 17, 2020

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
Copy link
Author

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
Copy link
Owner

xeruf commented Sep 17, 2020

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
Copy link

jeyj0 commented Oct 6, 2020

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
Copy link

pvamshi commented Mar 5, 2021

Do you have related code somewhere ?

@xeruf
Copy link
Owner

xeruf commented Mar 11, 2021

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants