Snowdrift Loafing


I've been thinking a lot about cooperation lately. I've recently become a maintainer of Frozen-Flask, which I use for an open-source web-app I'm working on called Who Goes First. I want to make sure the projects that are under my care stay healthy. Why do some people contribute to open source and others take without giving back?

Why do I contribute to open source?

I think I want 3 things from an open-source project. I want someone to use what I make. I want the project to possibly last longer than me, so I want contributors who will collaborate with me to make it better. Finally, I would love if someone thought the app was worth running, and helped pay for hosting and development (especially in the case of hosted apps like Who Goes First).

I've started exploring Gratipay (RIP Gratipay) as a way to fund Who Goes First. I love the idea of a recurring income for taking care of recurring costs (like hosting, food, rent), but there are some things nagging me about the model. Since givers to a team are anonymous, there is no way to personally thank them. I give to teams that are doing good work, but I know many people feel much less guilt for using something without paying for it. Maybe if there was a way to make givers feel more special, it would help peer-pressure more people into supporting projects they use and enjoy?

What can prevent collaboration?

There's a phenomenon called social loafing where people don't work as hard, or contribute as much if they know they are in a group. I know I do this. If there is a YouTube video with only 100 views, I'm much more likely to comment than if there are 1,000,000 views.

In the case of a YouTube video comment, I don't think it much matters that a large percentage of people who view a video don't also comment on it. Then again maybe this is one reason online communities break down? Are people who would leave high-quality comments less likely to post in a crowd?

Are there ways to encourage collaboration?

The Wikipedia article on social loafing has a section on ways to reduce it. Summarizing,

These all seem like prerequisites for getting anything done at all. If there aren't specific things to work on, obviously things aren't going to get done. As a project leader, I need to make sure there are reasonably-sized tasks available and known, otherwise nothing is going to happen.

People need to be free to work on what they think is valuable. I have been the most frustrated with myself and my job when I have been assigned a task, I work really hard on that task, but then it turns out it wasn't actually valued by anyone. After experiences like that, I'm not surprised that in general people put in effort relative to how well they think it'll be valued. If they didn't choose the task, it'll be valued lower in their mind than if they chose to work on it themselves.

I think this means that if I want something done, I need to first split it into understandable actions, publish those actions and let people pick which one they want to work on, and have the thank you notes ready for when they do help out.

Snowdrifts and prisoners

When cooperation is discussed, the "prisoner's dilemma" is almost always discussed as well. It is a result from game theory that in this game it is best for everyone if you all cooperate, but actors thinking selfishly will defect.

I recently learned about a game called snowdrift where two cars get stuck on opposite sides of a snowdrift. Do you get out and shovel or do you wait for the other person to shovel the drift for you? This game encourages cooperation more than the prisoner's dilemma, but still someone could stay in their warm car and let others do all the hard, cold work.

The snowdrift game seems to apply in a lot of situations. Contributing to open source projects is one of them. Do you help fix bugs, or do you wait in your warm car for someone else to fix them? Maybe the game has to change? Maybe more people would shovel a snowdrift if they knew they would get hot chocolate only if they help?