Quick idea to share - I've been playing with Obsidian tasks and I like that I can keep MF-style long-lists but also use tags and different queries to pull things like agendas, chores out... I've always loved methods that use randomization somehow, especially when procrastinating or feeling stuck. And figured out a version I really like today that's particularly enabled by the digital approach:
1. Create a long list of possible tasks sorted by some order where you'd like the "earlier" tasks in the lists to receive more weight. This could be the standard FIFO order, sort by due date, etc. (In Obsidian tasks they have a cute calculated "urgency" factor that accounts for due date, priority etc - would be silly to obsess over but is a nice way to put urgent things on top). Digital is also nice here because you can use tags to exclude anything not doable now (eg errands, talk to spouse about) to make a list that you should be able to act on anything in theory. 2. Tally the number of tasks on the list (I had about 200) and pick a "mean" parameter value for the random selection - I've been liking something like 1/4 of the list, so 50. Smaller numbers put more weight on the top/older part of the list, larger numbers will be more evenly distributed. 3. Generate a random exponential value with the mean you selected in #2.* 4. Do the task corresponding to that number! The digital nicety here is you don't have to count. If you're doing this in Excel you can go by row, in Obsidian click into the query and add "limit 23" and it will give just the top 23 tasks so do the last one. 5. If the generated number is *greater* than the number of tasks (which can happen especially if you choose a big parameter) you can use this as a break, or make your own rule (select with intuition, loop around, do the last task, etc.). If you make it a break, you can use this rule to adjust the probability of landing on break time, for example, using a lower parameter focusing on important tasks during focus times, and a much higher parameter that's more evenly random and more likely to be a break during low-energy times.
Notes: * You can use a site like https://www.polyu.edu.hk/ama/OR/calculator/expo_rand.html (lambda would be the inverse, 1/50) or on mac run python (open terminal, run `python3` then `import numpy as np` then run something like `np.round(np.random.exponential(50,1)[0])` and each time it will give you a random value. - If something urgent comes up, add to the *top* of the list. (If you're using an Obsidian tasks query, you can just "manually" add tasks above / outside the query on top"). If it's truly urgent, just pick by hand from the top of the list. If it's fairly urgent but you still want some randomness, reduce the random parameter. - I have a personal rule that I *must* do something to the task - if it's unactionable I need to modify the tags or start dates or something to get it off the list, break the task down, etc.)
Things I like about this: - I get some chance of any task anytime without having to count a billion numbers on the list - I have a terminal window open with that python command so all I do is hit up-arrow and return to get a new number, then put that in the query and it gives me the task. - It automatically weights towards whatever I want without having to do any crazy math (I had been doing things like making up my own dice schemes. - It easily handles urgent tasks / changing priorities without significantly breaking the algorithm - I don't have to remember where I am in the list - each draw is exactly the same - The "just do something to the task" is such a low bar I manage to push through resistance and make progress on things I've been putting off.
Above you said " (In Obsidian tasks they have a cute calculated "urgency" factor that accounts for due date, priority etc - would be silly to obsess over but is a nice way to put urgent things on top)."
1. Create a long list of possible tasks sorted by some order where you'd like the "earlier" tasks in the lists to receive more weight. This could be the standard FIFO order, sort by due date, etc. (In Obsidian tasks they have a cute calculated "urgency" factor that accounts for due date, priority etc - would be silly to obsess over but is a nice way to put urgent things on top). Digital is also nice here because you can use tags to exclude anything not doable now (eg errands, talk to spouse about) to make a list that you should be able to act on anything in theory.
2. Tally the number of tasks on the list (I had about 200) and pick a "mean" parameter value for the random selection - I've been liking something like 1/4 of the list, so 50. Smaller numbers put more weight on the top/older part of the list, larger numbers will be more evenly distributed.
3. Generate a random exponential value with the mean you selected in #2.*
4. Do the task corresponding to that number! The digital nicety here is you don't have to count. If you're doing this in Excel you can go by row, in Obsidian click into the query and add "limit 23" and it will give just the top 23 tasks so do the last one.
5. If the generated number is *greater* than the number of tasks (which can happen especially if you choose a big parameter) you can use this as a break, or make your own rule (select with intuition, loop around, do the last task, etc.). If you make it a break, you can use this rule to adjust the probability of landing on break time, for example, using a lower parameter focusing on important tasks during focus times, and a much higher parameter that's more evenly random and more likely to be a break during low-energy times.
Notes:
* You can use a site like https://www.polyu.edu.hk/ama/OR/calculator/expo_rand.html (lambda would be the inverse, 1/50) or on mac run python (open terminal, run `python3` then `import numpy as np` then run something like `np.round(np.random.exponential(50,1)[0])` and each time it will give you a random value.
- If something urgent comes up, add to the *top* of the list. (If you're using an Obsidian tasks query, you can just "manually" add tasks above / outside the query on top"). If it's truly urgent, just pick by hand from the top of the list. If it's fairly urgent but you still want some randomness, reduce the random parameter.
- I have a personal rule that I *must* do something to the task - if it's unactionable I need to modify the tags or start dates or something to get it off the list, break the task down, etc.)
Things I like about this:
- I get some chance of any task anytime without having to count a billion numbers on the list - I have a terminal window open with that python command so all I do is hit up-arrow and return to get a new number, then put that in the query and it gives me the task.
- It automatically weights towards whatever I want without having to do any crazy math (I had been doing things like making up my own dice schemes.
- It easily handles urgent tasks / changing priorities without significantly breaking the algorithm
- I don't have to remember where I am in the list - each draw is exactly the same
- The "just do something to the task" is such a low bar I manage to push through resistance and make progress on things I've been putting off.