Hyperledger Contribute-a-thon Organizer's Guide
WORK IN PROGRESS - DRAFT
What is a Contribute-a-thon?
The main goal of a contribute-a-thon is to help bring additional contributors to a project or lab. It is similar to both a hack-a-thon and a bug-a-thon.
- A contribute-a-thon is like a hack-a-thon; however, instead of focusing on the use of a project or lab, it is focused on contributing to a specific project or a lab.
- A contribute-a-thon is like a bug-a-thon; however, instead of focusing on bug fixes, it is focused on contributions.
It is important to recognize that contributions can come in many forms. Contributions should not just be limited to code contributions. Think bigger. How can the project's or lab's documentation be improved? What sort of examples would be useful for people looking to contribute to the project or lab? What type of blog posts would help people who were interested in contributing to the project or lab?
Examples of possible Contribute-a-thons
- Help a project localize their documentation into multiple languages by creating a translation pathway and reaching out to community members in regions around the world.
- Help a project or lab bring in more code contributors by creating a clear pathway for how someone can commit code and expand their role to ultimately become a maintainer.
Run Duration
Option 1 : Projects can decide to do a fixed short duration event such as 2 weeks ( to align with say a 1 sprint duration) focused event, where maintainers free up their time to be able to answer queries / review the pull requests and run the event with a lot of posts/ tweets/ daily updates etc. This model can have additional rewards for "max pull requests"
Option 2 : Projects can decide to run it for over a long time , say 2 months, where anyone who contributes, gets an equivalent reward in accordance with the set rules.
Phases
At a high-level, a Contribute-a-thon would have a before, during and after phase. We'll first define the specifics of what are the possible actionable's to be done in each of the different phases. And structure it with who/which team will have to work on those actions.
Before the contribute-a-thon
Plan For the campaign and event reach out and execute it
- Create a contribution pathway we want to use in the campaign – what are the steps we want people to take? For example, read this blog post > read the "code of conduct" > clone the repository > pick issue tagged as "good first issue" > raise a pull request > until the Pull request is merged
- Work with the Hyperledger Marketing and PR team and the relevant teams to create a timeline for the campaign and define the channels we will use (Twitter, website, LinkedIn, Wiki, meetups, etc.)
- Create a criteria for what it takes to successfully contribute to a contribute-a-thon and determine how people will be recognized for their contributions.
- Organize Enablement workshops to make community aware of pre-requisites of using the product and improve the documentation and scripts from the feedbacks.
- Reach out to partners (all DLT platform partners) to spread awareness on project and contribute-a-thon
Plan For the entire duration of the event
- Create a good amount of contribution opportunities (such as "Good First Issues" on Github or a set of documents to translate) to create a healthy repository of independent issues to work upon during the contribute-a-thon phase.
- Review the information currently available on "read the docs "about how someone can contribute to project and update or add more details and create new assets as needed.
- Create a task force of maintainers and key contributors to monitor the number of issues, review the pull requests as they come and answer queries on the rocketchat.
- Discuss on how to handle certain "What if" scenarios. 1) Too many pull requests, how to merge the code, 2) many people pick the same issue to work on, should that be controlled at the onset or the best code wins?
- Discuss on campaign shout outs during the event (tweets, publishing a daily leader board until the event, etc.)
- Determine how you will handle additions by contributors for items that were not in the original list of "known" issues.
Plan For post event actions
- Determine how we will recognize people who contribute during event
- Swag:
- Options include creating a project/lab specific item (such as a shirt or a poker chip) or virtual item (such as a badge) that we can give to contributors
- Physical swag items are a good option to consider for Contribute-a-thon sponsors who have some budget available and virtual items are good in situations where budget isn't available
- Shout-outs:
- There are also many ways to recognize people using Hyperledger's channels (such as posting thank yous on Twitter, creating a Developer Spotlight post for people who contributed, etc)
- For an example from Mozilla, they were regularly posting a thank you blog featuring all new contributors to a given release every time a new release came out
- Reward points:
- Would work like accumulating points that are equivalent to say a $amount. Then partnering with online partners such as Amazon that have significant global presence, where that $ value can be used to purchase anything.
- Any other ?
- Swag:
- Establish a set of metrics we will use to track success of the campaign and contribute-a-thon and create a baseline report to show contribution levels before campaign starts so that a post event metric comparison can help define the outcomes.
During the contribute-a-thon
- Send out relevant information on different channels (specifics need to be worked out)
- Monitor community tools, as per the plan to make sure that new people are getting the support they need, take real time decision and actions if something is not working as planned
- Monitor the available metrics to see if campaign is working (for instance, do we see a bump in traffic )
- Review the incoming pull requests from community efficiently
- Execute the campaign shout outs and publishing of leaderboards
After the contribute-a-thon
- Recognize those people who made contributions after contribute-a-thon sprint end
- Create a report on the jump/leap in the metrics post contribute-a-thon
- Write a blogpost about the entire event
- Write a report on what went well, what could have been better, or improved
- The campaign is focused on getting new contributors started on their journey with the project, but we want people to stay active and get more deeply involved after the campaign ends. Carve ideas on how can we make it possible.
Recognition
Because a Contribute-a-thon is about forming a relationship with new contributors, we want to make sure we are recognizing the participants; however, we need to be careful that this recognition does not encourage people to participate only because of a "prize". We will explore different type of recognition that may be offered for a contribute-a-thon – virtual and physical. In the case of physical, we are talking about SWAG (e.g., t-shirts, poker chips). Physical recognition is limited due to shipping restrictions (think customs and postage). We talked about using the Hyperledger store as a distribution mechanism, but it has been brought to our attention that the store does not work for all areas of the world.
Virtual Recognition | Physical Recognition |
---|---|
Shout out on Twitter | T-shirts |
Inclusion in event blogpost | Poker Chips |
GitHub Badge | Pens |
Stickers |