Anki-fy Your Backlogs?

I have an idea that is either ridiculous or ingenious and I can’t tell which!

Ankify your GitHub issues (or email backlog or todos).

Assume each item (gissue, email, todo) has a 50-character title and a tweet-sized abstract. Anki gives you the title and expects you to know roughly what the abstract says.

What does this achieve?

  1. Memorizing your backlog has inherent advantages like avoiding dups and having things at your fingertips when related things come up.
  2. It’s a less friction-y way to do GTD-style reviews. I.e., curation. You need a not-too-painful way to gradually add labels, identify the next action, etc. You could beemind your way through them but maybe following Anki’s order is nicer?

Wait, I take it back. It also seems possible that this idea is just sort of ok. Or like “sure, why not, assuming you have a burning desire for more Anki in your life”.

But conceivably there’s some psychology this can harness? Maybe being able to dismiss ugh-y things with faith that they’ll come back soon enough makes it all much less overwhelming? “Yup, I’m aware of you, Loathsome Task/Bug, and I shall now confidently put you right back out of my mind” instead of “Crap, right, that thing, I have to remember to do/fix that [pounds heel of palm into side of head].”

4 Likes

My main problem with this is that Anki is geared toward helping you remember stuff, and once it’s been fixed/dealt-with, you might want to forget about it.

If you just delete (or suspend) the card once it’s no longer needed, then there’s a danger that your brain will continue to remember that it was an issue, and occasionally wake you up in the middle of the night.

One way to combat that is to edit the back of the card to note that it was fixed, maybe with the date or a UVI reference or a blog post link. That way, you’ll start to remember ‘fixed’ for that ‘issue’.

Another way is to tweak the Anki parameters to make remembering less likely: increase the time between reviews, but probably set a maximum value and also make sure that Anki doesn’t auto-suspend a card, by disabling the ‘leech’ function.


But do I like the notion that you could use Anki to force yourself to take some action on any card that comes up (e.g. clarifying or commenting on the issue) and could use the Hard/Good/Easy buttons to influence how frequently you’d like to have to take action on this card.

It strikes me as a tricky protocol because it’s at odds with what Anki was built to do. In the same way as I have a deck of ideas and concepts that I’d like to be repeatedly reminded of – I want them to turn up randomly, but Anki doesn’t want that for me, and no matter how I tweak the parameters they will appear in some sort of learn-this-card-now order.

4 Likes

Hmm, I feel like this is overkill and would make you spend more time curating your backlog instead of minimizing it. I probably do have “a burning desire for more Anki in [my] life” but at the same time I want to spend less time and effort with my backlogs or todos, not more. Maybe my life is simple enough that I still try to rely on “if something is important enough, I will remember” (or that is a self-fulfilling thing, making things I don’t remember, not important); I can imagine it doesn’t work that way with a family and a business that you pour your soul into. :thinking:

2 Likes

I’m still kind of liking this (and maybe actually do want to memorize the whole backlog of, for example, open issues in Beeminder’s GitHub repo) but maybe simpler – after talking it over with @bee – would be neglect-minding.

(Review of the fundamental problem: The database of open issues is a vast and bottomless sea and you find yourself doing things like making separate to-do lists because just putting it GitHub feels like you’ll never see it again.)

So neglect-minding: When you have a beemergency you go to the oldest thing and touch it in some way. Change the labels or add a comment or just clean up the top-level description.

That seems kind of cheap and maybe a slippery slope to perfunctorily making a trivial edit to a random old thing to make Beeminder shut up. But I think there’s a lot of value, for an ancient gissue, to revisit it periodically. Maybe it becomes moot or nixable and you can close it. If not, it’s probably worth reemphasizing with a new comment that it’s still worth resolving. Not letting things go totally stale, in other words. It’s hard work.

3 Likes

Off topic, but I just want to point out that writing a special-purpose SRS for particular purpose is relatively trivial, super efficient, way way easier than you’d expect:

  • in my language learning case, I just pull words from a corpus (and input them if I need to) and dynamically look up stuff from a dictionary. Adding an unknown word takes from 0 to 1 user-seconds vs much more for anki (unless you use hacky things for japanese or chinese); in your case just pull the issues from github
  • you can more easily change the rules that determine scheduling. I have found that I’m waaay more efficient when using a setup that would require addon upon addon if I were to do it via anki.

Writing an SRS is something I’d consider doable in a saturday solo hackaton, if you want to have some fun :slight_smile: And you know how trivial it is to integrate it with beeminder :stuck_out_tongue:

I’ll add a chart that’s virtually impossible to code a plugin to compute with anki, but requires a dozen of LOC of work in my SRS.

image

4 Likes

I want you to try this and report back. :slight_smile:

1 Like

A random thought that came out of nowhere and might be utterly stupid:

Does this need a reverse SRS system? Each card initially comes up infrequently but the more you dismiss it, the sooner it comes up again.

Maybe one of the buttons to dismiss the card would be “I did something on this” and that resets the frequency to a long gap.

Or to make it a bit more advanced, maybe buttons like this:

  • “I did something and don’t want to do something again for a while” - long gap
  • “I did something and I need/want to do something again soon” - short gap
  • “Ugh I don’t want to think about this” - progressively shorter gap until you get sick of seeing and do something on it.

I dunno. Just spitballing.

This system does have the huge advantage that the acronym is RSRS. :smile:

6 Likes

That sounds super ingenious and would be, again, really easy to make.

In my experience, having more than two keyboard shortcuts in a SRS is a major hindrance, though. This includes being able to use as the “show word” the same two keys you use for know/didn’t.

For all of you anki nerds, I can easily do >10/min reps, and if I’m focused >12/min (and if the stars align and I go full tryhard, I can get >15/min). If you go look at your stats, see how you do vs that. Should be relatively impressing. I was able to do like half of that on anki.

The overhead of having to choose between something more than know/didn’t know (or did some work/didn’t in your case) is huuuuge vs just pressing up and down or tapping green/red on smartphone.

3 Likes

I’ve read this thread before and didn’t really grok what was being discussed. “Anki-fy your backlog” sounded like you wanted to memorise everything you needed to do, and I absolutely do not want to do that. That’s why I write it all down to start with. What’s lacking sometimes is systems to get round to doing what I wrote down.

But @dreev’s mention of “neglect-minding” in the weekly beemail last week struck a chord with me and I’ve been ruminating on it over the weekend. A forum search led me back here and things started to make more sense.

Over the last year or so I’ve reduced my to-do list to a system where I write down a single thing I’m going to work on for the next hour-ish (more of a 45 min commitment really). This is really working well for me, no more feeling like I have a shed-load of stuff to get through, or days where I think I can get more done than I can and end up disappointed in myself. “Let’s just get through this hour and then think about what comes next” seems to be the right way to nudge my brain into doing things. And when urgent tasks come up I can put them down as my next hour’s task and then remember where my time went rather than just doing the urgent task and being annoyed that I didn’t make any progress on the tasks I’d written down in advance.

But there’s still that huge list of things that I need to do, the backlog. I’ve recently moved from keeping my lists of things both done and to-do in Workflowy to Notion where everything is more structured. One of the things I’ve done recently is to try and separate out the “things I am actually currently working on” from the “things that (will/might) need doing at some point”. I’m trying to keep my list of “active assignments” to a reasonable length (a dozen feels about right to me). Some of these are work projects, some of them are personal, some need completing, some are ongoing but in need of regular attention. (My focus recently has been on making myself think about what constitutes an “assignment”, I changed the word from “project” because I needed to scale down my thinking to smaller completable chunks of things.)

The problem I can foresee is that some of the “active assignments” are going to get stale, I want (or need) to get them done but other things get prioritised. Which is where neglect-minding comes in.

I can order my list of active assignments by when I last completed an hour of work on them, and then make sure that whatever’s at the bottom of the list gets an hour of work. I’m committing to doing this twice a week, and I’ll give myself a free pass if everything on the active list has been worked on in the last week. And if things turn up and I feel they really don’t deserve that hour of work then it is probably time to move them off the active list, which is also good outcome.

Presuming this system works then I’d like to extend it to the non-active assignments I have written down too - that’s the real backlog. But “neglect-minding” the things I’ve already prioritised as needing doing now so they can actually get done and out of my hair already frees up space for moving things from backlog to active without being overwhelmed.

3 Likes

(Have read none of the replies (sorry!) so there might be some redundancy here.)

OmniFocus has a “Review” function that you can set to different frequencies for different projects/folders. You can hit your “review” shortcut and go over the projects due for review to see if anything needs to be rethought, re-prioritized, added, given a deadline, etc. Then you mark that folder as reviewed and it won’t come up until the review interval has passed on it again. If you review weekly it’s a pretty efficient way to make sure to-do items don’t just go out-of-sigh-out-of-mind eternally, and the different projects will come up in the right number of weeks for those projects so that you don’t have to review everything when you review. It might accomplish a lot of what you want. (It wouldn’t accomplish memorization, but the point of having a to-do list, for me, is to avoid trying to memorize and to prioritize repeatedly so I’d personally lean away from that anyway and so don’t have thoughts on that piece.)

2 Likes

I like this a lot! Is the free pass important? Could you just say that you have to spend that hour working on whatever’s the oldest thing in the list, even if that happens to only be a day old? (I’d expect that to be moot in practice, it just seems cleaner without the special case, not to mention the danger to the QS First principle.)

Also, I have a personal update on this (repeating from the last weekly beemail):

Neglect-minding non-nerdtastically

I’ve been talking the daily beemail folks’ ears off about strategies for solving the problem of not letting queues and backlogs be places where todos go to die. The last thing I said about it was that I would not be at all surprised if I’m overcomplicating things and there’s a much simpler way to force myself not to let backlogs be black holes.

Well, drum roll…

Here’s what I’ve come up with as the Simplest Possible Thing That Might Work: a manual do-more goal to make an epsilon improvement to whatever the oldest issue in our bug tracker is. I can change the labels, copyedit the description, even start a discussion about whether we still care about it (but maybe also getting someone to reply because just “do we still care about this?” is arguably a negative contribution, like replying “bump” to a stale email thread). And here’s my graph: bmndr.co/d/freshgish – we’ll see how it goes!

I think the equivalent for an email backlog would be to give a status-update reply to your oldest email. For a todo list, just doing something that you could describe to a partner or colleague with a straight face as having made progress on it.

I think this is especially applicable for things like our bug/issue database where new issues arise faster than we can ever hope to dispatch them. (That’s normal, right?)

3 Likes

Yeah, maybe. I’m a bit hazy on how it actually works as a beeminded metric at the moment. I’m just trying it out and seeing how it affects whether things feel neglected or not.

The “free pass” was because the idea is that all the “active assignments” ought to be getting some regular attention and if they’ve all been worked on in the last week then that seems like they are getting it already. If all plates are spinning then you don’t need to make a special effort to spin a plate. I’m interested to see whether that ever happens.

Beeminding this isn’t going to stop me from working on anything, it’s just directing efforts into neglected places from time to time. I like to live on the far borderline of “loads of different things to work on” just before it turns into “help, I’m overwhelmed”. If all the plates are spinning I’ll probably feel it’s time to spin up a new one. A better version of the free pass for me might be “go and work on something new for an hour and see if you want it to be an active assignment”. Or maybe “try to actually completely finish one of these assignments and move them off the list instead”.

2 Likes

Great answer! We could think of it as beeminding plate-spinning. You have to spend an hour on the slowest spinning plate. If they’re all spinning at full speed, spend an hour spinning up a new plate! If a new plate is too much then spend an hour removing a plate altogether.

Or another idea for a simpler rule: Work on the slowest spinning plate but if every plate’s spinning full speed then you can treat them as all tied for slowest and work on whichever one you like. (I really like simple, consistent metrics – like “hours spent plate-spinning” – so the graph itself is always meaningful. Though I have some exceptions!)

This probably wants to be its own forum thread if you’re game for starting it…

2 Likes