Sasha Romijn

How the GitHub contribution graph is harmful

Update 20 April 2016: GitHub has removed the streak statistics from GitHub profiles. They had replied to my ticket earlier already, saying they would not remove the entire graph now, but that they were thinking about options to address my concerns. I think this change is a great improvement.

A common well-being issue in open-source communities is the tendency of people to over-commit. Many contributors care deeply, at the risk of saying yes too often harming their well-being. Open-source communities are especially at risk, because many contributors work next to a full-time job.

Therefore, it’s important that we, as a community, guard against over-commitment, and stimulate contributors to take steps back, small or large, when they feel the need to. That is vital to the long-term well-being of contributors, and therefore vital to the long-term well-being of the community as a whole.

In early 2013, GitHub introduced Contributions. Amongst other things, this includes the contribution calendar/graph. A calendar which rewards people for doing work on as many different days as possible, generally making more contributions, and making contributions on multiple days in a row without a break.

Stepping away from our work regularly is not only important to uphold high quality work, but also to maintain our well-being. For example, I personally do not generally work in the weekends. That’s completely healthy. I take a step back from work and spend time on other things. But in the contribution graph it means I can never make a long streak, even though I do work virtually every day except weekends. So the graph motivates me to work in my weekends as well, and not take breaks.

When I see someone with a 416 day streak, it means they haven’t taken a break for a single day in over a year. Although everyone can make their own choices, it makes me very worried about their well-being. Being based on git activity, which can easily backdated, the graph is also trivial to spoof – so not all long streaks may be real.

Any mechanism in our community that motivates people to avoid taking breaks and avoid stepping back, can be harmful to the well-being of contributors and is thereby harmful to open source as a whole. Even though it was probably introduced with the best intentions. If our interests are really in supporting open-source long-term, this graph should be removed or substantially changed so that it no longer punishes healthy behaviour. At the very least, we should not reward people for streaks. For example, what if we would give people achievements for taking breaks instead of working non-stop?

I sent a summary of the above to GitHub, publicly tracked in an isaacs/github issue.