In October, we welcomed at AsyncAPI Initiative 26 new contributors with 70 pull requests (PRs) merged. It was an exhausting but also a fascinating experience.
Don't be afraid of Hacktoberfest. It is an excellent event for both contributors and maintainers.
Finally, and most importantly, we can remember that this is how DigitalOcean treats the open source maintainer community, and stay away from their products going forward
Cancel culture at its best. The fact that someone is good at programming or works at Google or Facebook doesn't make them experts in everything. Remember that celebrities are not good candidates for a role model.
There are no perfect events; there are no best solutions. There is always a place for improvement, but it should be followed by open, civilized discussion.
Let me conclude by saying that I hope the "harm to the open source made by DigitalOcean" is not as significant as the harm that such hate does to open source by discouraging new open-source contributors. However, this is just speculation. How can I consider any of these things harmful if I did not conduct scientific research? I can only confirm that Hacktoberfest did not harm AsyncAPI Initiative. On the contrary, it was pretty neat.
During the entire event, we had only two spam PRs. I can imagine that a much more popular and known project might have had more. Nevertheless, adding the invalid label and closing a PR is a super simple operation, three clicks.
The definition of spam heavily depends on maintainers. For example, this is not invalid to me, because I don't think of grammar as "subjective nits".
Our intentions were pretty clear from the very beginning. As I wrote in the previous post, we wanted to:
- Promote AsyncAPI Initiative as a place where we work not only on the AsyncAPI specification, but also lots of tools
- Help members of the broader open-source community make their first contributions in a friendly environment
My impression is that sometimes the open-source is perceived as a kind of elite gathering. This is quite often blocking people from joining because they feel they cannot help but rather waste others' time. I was there in the past, I thought the same. It's just another variation of the damn impostor syndrome. You can always help, no matter what your experience is.
Start small. Don't start with tasks that can be overwhelming. Don't throw yourself into the deep end.
We wanted to help others make first baby steps in a secure and inclusive environment, with lots of patience and support.
It is not enough to label 70 issues with the hacktoberfest label, sorry 😃
First of all, you need to be passionate about open source and dedicated to what you do. It can't just be a task that somebody assigned to you. It would help if you were prepared to treat Hacktoberfest participants as a priority. I would compare it to the onboarding process of new hires.
Of course, not all participants join to stay longer, usually they just follow the "one pull request, and I'm out of here" approach.
It doesn't matter.
Please don't make assumptions; assumptions are evil. Be opened, treat every contribution equally, and remember that the onboarding process is a crucial element. If you fail with the onboarding process, you fail big time at the very beginning.
We prepared the following materials for potential participants:
- Blog post about our participation
- Onboarding videos that explain how to start
- 78 issues from more than 30 repositories and put them all in one list with additional information about the difficulty level or the technical area,
It took me around eight workdays to do it all. The most time-consuming part was to go through all the issues, pick candidates, create new ones, and group them all in a Google Sheet.
70 pull requests mean —at least— 70 reviews 😅
If you know your project well, it is not very time-consuming, and anyway, it is the work you have to do as a maintainer. I do not count this time as an extra Hacktoberfest effort. Of course, it can be overwhelming if this is not a standard amount of PRs that you get every month.
We also hosted office hours for participants. This was fun, and we wanted to start doing live streams about AsyncAPI anyway.
Last but not least, once a week, I advertised our project on the official Hacktoberfest Discord server.
It looks like we do not need to do more for the next year.
Hell yeah, and I'm already looking forward to Hacktoberfest 2021.
It was great to see so many different people interacting with the project and seeing we reached our goal.
We got some new features, CI/CD cleanup in all repositories, and solved many trivial SonarCloud-reported issues that we would never found time to solve.
Our success was a typical return on investment.
We asked all contributors to provide feedback on how they learned about us and what was the most helpful resource. 20 out of 26 responded to our request.
I think it is pretty clear that introducing the official Discord channel was a great idea. I personally do not like Discord because of the lack of support for threads, but better this than nothing.
Such a simple thing as a Google Sheet with a list of issues grouped by different factors was, in the end, our best resource for contributors. I encourage you to create such a sheet for your contributors next year.
There is one thing that calls for an improvement for next year. Just one? Yeah, opt-in solution for projects that want to participate in Hacktoberfest was addressed during this event, and I assume it stays on.
The number of projects that people can work on is overwhelming, and finding the right issue seems very difficult. Please have a look at the feedback we got from our contributors. It is enough to develop an official application where potential contributors can adequately filter out issues by technology and difficulty. In the end, it doesn't make sense for all maintainers to work on their own Google Sheets and post it on Discord. A better way would be to introduce an app for all.
Below you can find a list of all contributors that joined AsyncAPI during Hacktoberfest and contributed their time to the project. The list is sorted alphabetically, including the number of PRs created by this contributor.