Re-capping my beef with Anki
I think I wrote this up once in the past, but in light of the fact that I am reviving my project to make my own Anki-like piece of software, I wanted to re-cap why as well. Partially for myself to help guide the development as the rewrite will be quite substantial. Also, because reading another site's review of Anki has helped to give a bit more direction on other things to address along the way (hopefully).
SRS systems are great at helping you memorize things. And Anki is an SRS system. If it is so great, then why change anything? Well, the truth is that how great it is, in practice, depends on who is using it and how. It can be complicated and frustrating to use it correctly. And it is quite dated in terms of UI and general user experience.
In the right hands, Anki probably will remain better than my offering. But, what I want to make is something better for ME (and others). For those unaware, unable or unwilling to spend the effort to make Anki work the best it can for them.
Problem #1 Routine
Anki's first major problem is that using it effectively means building a routine around it. To successfully build a routine means doing something with such regularity that it eventually becomes habitual, or second nature. After a time, it should feel natural to do that thing.
Generally, this means (among other things), knowing how much time and how often you're going to do that thing.
If you've used Anki in the past, you probably know exactly where this is going. What you control in Anki is just the number of new cards. Reviews are driven by the algorithm, which in turn is driven by whether or not you got a review correct and with what level of confidence. Put another way, if you choose to do 20 new cards a day, this does not mean that you will have 20 reviews a day. You will start with 20 cards to review. And, if you use the default settings, will end up with probably 100-200 reviews a day within a few months (assuming you don't run out of new cards). But, it will build up to that number over time.
That is the problem though. Let's say I want to spend 20 minutes a day learning Japanese. Great! How many new cards should I set my deck to give me? No one can answer this. But, even if they could, you would still have a problem. You won't hit that plateau of cards for weeks or months unless the deck is very small. In the beginning the number of reviews will be very inconsistent and will grow more rapidly. If you try and put more new cards early on, you'll simply hit larger plateau and be overwhelmed more quickly.
If you skip days, or don't finish all of the reviews, then you're not really using it as an SRS system any more.
So, you can neither control the number of daily reviews directly, nor the amount of time spent. How are you supposed to build up a habit under those circumstances? Any attempts to "cheat" the system also "break" the SRS algorithm. Anki is built around the concept of a due date for the next review calculated using a sort of exponential back-off algorithm. If you lie on how well you did to inject some more reliability in the number of reviews you WILL eventually start pushing cards so far out that your accuracy will plummet. And, if you don't finish all of your reviews daily, you start pushing cards further and further past their due dates, resulting in the same thing.
It effectively punishes you at every step of your journey. When you're just getting in and are excited it forces you to slow down. Then, as you're losing interest it buries you in reviews with no room to breathe. And then as you're finally coming to terms with it, it trails off again. Today, my Anki decks toss me about 30-50 reviews and no new cards when I'd gladly take 60-100.
Problem #2 Humans Adapt and Anki is not random
The next problem (in my opinion) is the grouping of cards with their various "sides". Most Anki cards have 2 "sides", a front and a back. Like a physical flash card. But, when you first see a card, you'll see it's opposite the next day. And since the twin is just the reverse of the front, and you just did it the prior day, you're artificially inflating your chances of success. For instance, if I see 医者 -> Doctor/Physician today. And then I see "Doctor/Physician" tomorrow, the odds of me guessing 医者 are MUCH higher than if I had never seen the partner card or if they were spaced further apart.
I would much prefer all of the initial "card sides" to be randomized or to do one side of the deck first and then the second.
Beyond how the card sides are handled, the human brain excels at patterns. So, I also noticed part way through my decks that if I saw a card from a particular category like "colors" yesterday, since those all popped up together initially, I was likely to see other colors again shortly.
This caused my brain to game the system. It would try and recall the names of other colors. Or, I would be on the look out for references to other cards I saw around the same time in the past. The predictability provided a means of "cheating" the system. This was good for helping to memorize those grouped cards as it meant that I got some "free" study. But, it also meant that some of my upcoming reviews were less valuable now. They became more of a rubber stamping process, and it would have been better to spend that time on other cards or to have not been able to spend the mental effort I had in the first place.
Problem #3 User Experience
I'm not sure at present how I will address this. Part of what makes Anki powerful is that you are basically describing the card "sides" as HTML or a markup language of sorts. And that means that cards COULD be quite attractive. But, that flexibility also means it is more likely that someone will design something which clashes with your "base" UI. Regardless, it is a valid point. And most Anki cards are NOT all that opinionated on UI. We basically got a non-opinionated base with non-opinionated inputs. And the result is something bland and uninspired. And so, I'm not against building something a bit more opinionated.
Solutions?
All of this is pointless without a plan to improve. The biggest problem to tackle is the ability to plan around your learning experience. And for that you need a system which supports a fixed amount of time or a fixed number of reviews per session or something along those lines. This means doing away with "due dates" and using arbitrary weights instead. Like Agile for SRS I guess.
With no due dates there is no predetermined number of cards per day. So you can control that. Which in turn means that you can plan around it. The app can provide guidance based on deck size and things like desired time to completion or desired time per day.
I can even gamify the results and let the user know how they did compared to yesterday, last week or all time for example. I can also add things like tracking streaks.
The other thing I like about eliminating due dates is that they give a false sense of security. A due date in an SRS system is only meaningful if you are A) using the right settings for you and this particular deck and B) you are able to stick to the schedule prescribed by the SRS system.
Most people stick with the defaults, despite having wildly different amounts of time to dedicated and different numbers of new cards each day, etc... So, your odds that the due dates are a crapshoot to begin with are quite high.
And then, while most draws should come from the lowest weighted cards, there will be a bit of randomness allowing for cards to be pulled from higher weighted buckets. This will should further break up localized clusters of cards.
Lastly, for the experience... well that is a tougher nut to crack. I think that things like streaks and other gamification elements will help. It will need something to make up for the lack of urgency that the Anki-lanche creates. And gamification is one approach.
UI design is much more subjective. But, I'm building a web application and there will be multiple pages. At some point I'll need a general theme or direction and I think that this will need to "trickle down" to the card designs as well. It may mean that some Anki cards which get imported end up too big or clash or have other general UI issues. But, the templates are editable and shared across cards so I don't think that fixing them would be too burdensome either.
Conclusion?
If I build my "dream" application, it still won't be "better" than Anki. Objectively, if you have the right settings and stick with it, a typical SRS system will deliver more effective results.
Where my offering aims to excel is that it has the potential to be better for people who can't or won't spend the time to find the right settings.
But, perhaps more importantly, by being less intimidating and easier to fit into a schedule from the first day it stands a better chance of being a tool people actually use longer term. And objectively, in this category of tool, the tool you stick with is going to be objectively more successful than the one you stop using.
Comments
Post a Comment