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,
- Collaborate - Have specific tasks available for people
to work on. Make sure every participant owns one of these.
- Content - Make sure every participant feels like the work they
are doing is and will be valued by the group.
- Choose - Every participant should be free to choose what they
work on.
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?