Why it does not seem selfish
Qualifying myself as egoistical for contributing to Anki would seem counter-intuitive to me. I have got millions of users. 1.6 millions of regular users by AnkiDroid. 150 000 downloads of add-ons. An unkwon number of users of Anki. I added more than 60 features, made those apps quicker, found and removed bugs...
So an unimaginable number of people benefits from this. As far as software goes, 1.6 million of users is not that much, even though it is a considerable increase over last year.
To be honest, however, I literally cannot imagine what 1.6 million people actually means. If the app takes 5 seconds less to load, and those regular users load it once a day, that means that I saved three months of time a day. Such a number does not make sense to me. My intuition is that not one single user will uses those five saved seconds to do anything noticeable. At best, they'll have time to review one more card maybe, and that would be it.
On the other hand, I believe that time not spent staring blankly at a smartphone screen is time improved.
I am really interested in Effective Altruism (EA). I wonder how EAs would compare the benefits raised by saving those five seconds for every users every day with any other standard actions I could have done during the dozens of hours I spent doing those improvements.
Why it may be selfish
I save time for myself
Naively, I could say improving AnkiDroid's loading time was selfish of me, because I have had opened it too many times a day and just couldn't stand how slow it was anymore. But saving minutes hardly justify learning a new way of programming (Java for Android) and spending hundreds of hours discovering the code and improving everything that was not to my taste. It certainly does not justify spending a week-end porting unit tests from Python to Java.
One could say instead that improving Anki's ecosystem is egoistical because it teaches me new skills, without which I would not have a job today. It also gives me prestige in some circles where Anki is used a lot and appreciated!
It allows others to help me save time
A more interesting reason to assume that this is a selfish action is that I'm allowing other people to also improve Anki's ecosystem. Some add-on developer's read my code to teach themselves how to deal with anki, and now create some really cool add-ons. I hope that, by cleaning AnkiDroid codebase, I will allow more developpers to read the code, understand it, and improve it. Honestly, I expect that we lose a lot of potential contributors nowadays because of the very confusing way we deal with background tasks (that is, anything which is not directly related to screen content). So, it could be that I'm making egoistical changes in the sense I'm ensuring that the community goes in the right direction, and that I allow devs to improve the software.
If multiple people improve the software, even if they don't know the codebase as well as I do and maybe have less computer science experience, that may still lead to an improvement in the ecosystem that I could not have created if I only did the change I directly cared about ! And I clearly benefits from any improvement to the ecosystem.
I'm totally okay with this kind of egoism. I believe that if someone improves their lives by improving the world, there is nothing morally wrong here. Especially because accepting this egoism may lead to having more people trying to improve the world, and that's cool! Assuming of course that they are really improving the world.
There is the real trouble, can I really state that I improve the world ? I improve the daily life of people who already have access to a computer/smartphone and who have the time, energy, and capacity to study. Who usually have a good enough internet connection to download decks. Mostly, this improve daily life of people who have enough motivation to self-study, even when this requires to use tools that are not enforced by any school or university. My conclusion here is that I'm egoistic in that I'm helping people similar to me. They are not extremly similar, I know anki users who are really conservative, transphobic... As a developer with tools used by a lot of people this was bound to occur even if I do not enjoy it. Yet we do remain extremely similar in a lot of way.
I first noted the difference between my users and most learns thanks to the Human Learning workshop. Researcher in human-learning hired workers on Amazon Turk to test their learning software. For example, someone tried to check how to teach people how to recognize birds. This was nonsensical to me as the searchers were not testing how people who enjoyed or needed to learn about birds were learning about birds. The lack of intrinsic motivation seems to me a glaring mistake.
But I then realized that, in actuality, most people who needs to learn something have no desire of their own to do so. So the workshop may have had a better model of actual school students than what they would have had had they just asked bird-lovers to try their software. I genuinely do not know the first thing about what a good education system would be for people and for society, whether it actually makes sense to force children to learn things they don't want.
However, even if it's not the perfect society, nor even a good society, that is how society works nowadays. So I may imagine that their model is actually more useful than mine to figure out how to teach things effectively. I also realize that I am not interested in their work. If someone is not interested in learning in the first place, I do not wish to help them learn, and I am perfectly okay with the idea that they are not the people I am helping.
So I am egoistic in the sense that I use the simplest solution here, working for people who understand why our ecosystem is great, and not trying to do anything for people who are not interested... I can't state that I feel bad about it, not even slightly, but on a deeper level, I realize that maybe, I should.
P.S. I know that the capacity to learn, to enjoy school, is highly correlated with family income, with the capacity to do homework with their parents, to have a good night of sleep in a quiet bedroom, alone if possible. That people who have a job as a student perform less well academically. Egoistically, I am often sad not to meet all interesting people who don't have the free time and money it takes to go to the cool place I go to and to have the time to discover this complex ecosystem. However, anything that would improve learning for people who have little time to study would probably improve learning for everybody else, so in this case, I don't consider that the question of whether the experiment is done on someone interested in the matter or not is relevant to this question.