Hacktoberfest is just around the corner and soon thousands of people will make their first contributions to open source. For many projects taking part that’ll mean a flurry of pull requests and then a return to normal. In some cases, though, Hacktoberfest contributions have led to ongoing involvement with an open source community.
That chimes with one of Hacktoberfest’s values: Short-term action, long-term impact. And, as Josh Simmons (Salesforce’s Senior Open Source Strategist, as well as President of the Open Source Initiative) puts it:
“Drive through contributions are underrated, but of course we should strive to retain contributors. Reward exploration and make contribution opportunities plain to see! Sometimes it's just not clear how to answer the question: what next?”
So, if you run an open source project, how can you help Hacktoberfest contributors take that next step in your community?
Perhaps the first question to ask is, “Why do people contribute to open source?”
We can find one take from the roughly 16,000 people who answered Slashdata’s survey question on that very topic.
Twenty nine per cent of respondents say they contribute to open source in order to improve their coding skills. The second biggest motivator was a belief in the principles of open source. Third, representing 22% of respondents, was simply, “It’s fun”.
Slashdata’s findings chime with academic research into the motivations of open source contributors. Eighteen years ago the authors of the paper Working for Free? Motivations for Participating in Open-Source Projects identified similar, although not identical, motivations:
- Intrinsic motivation: a sense of personal fulfilment deriving from contributing, self-improvement, etc
- Altruism: the desire to do good in the world
- Community identification: finding satisfaction in being part of something
- Future rewards: improved employability, peer recognition, revenue from associated services
- Personal needs: perhaps the ancestor of open source motivation, i.e. “scratching your own itch”.
Broadly speaking, people take part in open source for social, employment, education, and ethical reasons. And, perhaps it goes without saying, each of these fits within Daniel Pink’s autonomy, mastery, purpose framework of motivation.
However, Hacktoberfest is different compared to open source as a whole because it encourages contributions that wouldn’t happen otherwise. So, we should also look to understand what motivates Hacktoberfest participants specifically.
According to the Hacktoberfest organisers’ own research, 46% of participants in 2019’s event were first time open source contributors.
Despite that, their motivations are similar to those of the broader open source contributor community. More than three quarters of Hacktoberfest participants said that they took part in order to learn. Almost half said they were motivated by a desire to have fun.
Understanding why people contribute to open source is only half the story. No matter how well you meet people’s initial motivations, you’ll unnecessarily lose community members if you fail to understand the frustrations and frictions that build up over time.
According to Digital Ocean’s Currents research series, the top three reasons for reducing involvement in open source are:
- “It’s too difficult to contribute”
- “It takes too much time to contribute”
- “I’m burnt out from contributing”.
Arguably, the second and third reasons are just different ways of saying, “It’s too difficult to contribute”.
And while you should minimise the friction that contributors face, it’s worth accepting that some people simply lose interest. Rather than fight against natural attrition, you should develop a graceful way for people to leave the project. Acknowledging that people move on, and that is okay, will make people feel good about handing over their responsibilities in a smooth way.
So, then, how does understanding people’s open source motivators and demotivators help create a path from Hacktoberfest contributor to long term community member? Broadly speaking, the research suggests that Hacktoberfest participants want to enjoy themselves while learning new skills and doing something worthwhile.
If you want your project to provide a longer term home for those Hacktoberfest contributors then you need to create an environment where people can meet those needs repeatedly and outside the framework of Hacktoberfest.
But if that sounds like extra work then don’t worry. The things you need in place for a good Hacktoberfest experience are the foundations of a healthy open source contributor experience:
- reduced friction when contributing to your project
- meeting contributors at their level of ability
- helping people feel a sense of accomplishment
- engendering a sense of belonging.
What does that look like in practice?
As Hacktoberfest happens mostly on GitHub, your contributor experience begins with your README. Vonage’s Lorna Mitchell describes your README as your documentation landing page and that’s right for users of your project. For contributors, you should provide a very visible link from the README to your CONTRIBUTING or CONTRIBUTORS file.
CONTRIBUTORS is an opportunity to lay out the norms and expectations of your project in a way that sets newcomers up for success. You don’t want contributors to discover your copyright assignment rule only after they’ve submitted a pull request, for example.
However, CONTRIBUTORS has an equally important role when it comes to helping people find a longer term home in your community. This is your opportunity to show the humans within the community. If participants can feel a connection to other people, rather than simply writing some lines of code, then your project will have a greater impact on them. Use the CONTRIBUTORS file to link to your community spaces -- whether that’s a forum, real time chat, or something else -- and encourage newcomers to meet your community there.
If almost half of Hacktoberfest participants are new to open source contribution, that means that more than half have at least some experience. That raises a challenge: how do you provide a great first experience for people of different levels of experience?
The team at Sendgrid asked themselves that question when they participated in Hacktoberfest 2017. Their solution was to calculate story points for each issue and then apply an easy, medium, or _hard _tag. That’s a fairly low cost way of meeting contributors at their level.
An additional approach would be to sketch out possible solutions within the issues, to give contributors pointers to help get them started.
Hacktoberfest itself is about creating an encouraging and rewarding environment for contributors, but you can make your project more memorable by offering your own rewards?
Remember Daniel Pink’s framework of motivation? In his book Drive, Pink writes about the importance of autonomy, mastery, and purpose as intrinsic rewards. Sure, people will respond to free swag in the short term but what really drives them is the impact their contribution has on their sense of self and their place in the world.
So, yes, provide swag that’s exclusive to the people who contribute to your project. But remember that’s a short term win, when it comes to motivation. If someone contributed in order to have fun, or learn, or do good, then that’s where you should focus. A free t-shirt can help with a sense of tribal belonging but it can’t help people find a long term home in your community.
For the longer term, you should create a process that recognises and rewards people’s contributions, that makes clear to them what impact they’ve had. Build relationships, not swag budgets.
Code has a privileged position in open source. But code isn’t the whole story. Arguably, code is just the end product of a larger process.
It’s a bit like how the singer in a band often gets greater recognition than their bandmates. Even if the drummer wrote all the lyrics and the bass player wrote the music, it’s the singer who takes pride of place on posters and gets interviewed about their thoughts on the world. It’s not a perfect analogy but, in a similar way, writing code is a highly visible and valuable task yet it stands on the work of others.
User research, UX design, community management, technical writing, visual design, accessibility enablement, marketing, localisation, and many other roles play their part in a healthy open source project. Ubuntu did an excellent job early on of encouraging diversity of roles within their community, enabling the project to have a greater impact both for its commercial sponsor and for the people who took part.
Hacktoberfest is an event that focuses on code but bear in mind that people taking their first steps into open source may not want code to be their long term contribution. Organise your project in such a way that role diversity is celebrated and enabled.
Remember, Hacktoberfest is primarily about fun and learning. If your project benefits from getting some issues fixed, then that’s great! If you find that a small number of Hacktoberfest contributors become long term members of your community, then that’s a nice bonus.
From an organisational perspective, Hacktoberfest is about more than helping people contribute to your open source project. Companies are increasingly taking the opportunity of Hacktoberfest to introduce an open source culture. The open source programmes office at Indeed, for example, has used Hacktoberfest in recent years to encourage open source contribution from their own engineering team. Salesforce are doing something similar. Back to Josh Simmons:
“At Salesforce, we're using Hacktoberfest as a way to activate new contributors internally, but that's just the first step–we want to build a culture of open source contribution.”
But why? Clearly there are many reasons why companies large and small benefit from contributing to open source. One strong reason, as identified in Slashdata’s research, is that almost half of developers expect companies to contribute to open source. If nothing else, having a healthy open source programmes office can act to attract developers to your team.
Whether you’re running a project, contributing, or encouraging others to contribute, Hacktoberfest can be an intense few weeks. So, get some rest because October will be busy.
Phone photo by Paweł Czerwiński