Setting up for new contributors
What makes a successful new contributor event?
New contributors are knowledgeable about their areas of interest but they might not be familiar with the Drupal core contribution tools and process. And, some will be new to Drupal as well. New contributors might be site builders, developers, writers, designers, and so on.
To have a successful contribution event that involves new contributors, you or other volunteers will need to:
- Triage issues and tasks: Find issues, tasks, or tasks within issues that are appropriate for a new contributor to do, and can be completed within a reasonably short period of time. These are known as "Novice tasks", and issues with these tasks should be tagged "Novice". Tackling a real task on a real issue that is doable in a short period of time will give new contributors a chance to learn the Drupal contribution tools and processes without having to focus on challenging intellectual problems. A good novice task gives people a first successful contribution experience and empowers new contributors to move on with other issues in the future. Keep in mind that not all potential contributors are coders -- tasks that use other skills are also good to have ready, so that every contributor can find something useful to do.
- Recruit volunteer mentors and coordinators: Have people on hand to mentor the new contributors so that they can successfully complete their tasks. If the event is large enough, you may also need additional volunteers to help coordinate the event. The roles that need to be filled for large contribution events are listed on the Contribute by Mentoring page.
What makes a good novice task?
The best tasks for new contributors should allow contributors to learn and get comfortable with contribution tools (local development stack, drupal.org, Git, IRC, etc.) without too many distractions. Consider these criteria:
- The task should have clear steps
- The task should not be open-ended
- The task should be very specific and have limited scope
- The steps to accomplish the task should be documented
- The issue itself should be understandable
One issue has many tasks
Note that resolving the entire issue does not have to be a novice task. One issue often consists of many tasks done by different contributors. Identify specific tasks within an issue that are small, well-defined, and actionable. Tips for locating novice tasks in an issue:
- Read the issue summary, read the remaining tasks, read the last few comments. Can you identify what the next steps are?
- If the issue already had the Novice tag on it, look for the comment where the novice tag was added. To do this use the browser find (CTRL-F or CMD-F) and search for the +novice note. Sometimes the tag gets added and removed often, so look at each scenario.
- What did the person say in their comment when they added the Novice tag? Has the task been completed already? If so, then there may be no other novice tasks for the issue.
- Is the Remaining Tasks section of the issue summary up to date? If not, this issue will need an issue summary update before it remains a Novice issue. You can update the issue summary yourself or tag the issue with the “Needs issue summary update” tag, comment why it needs an issue summary, and reference the documentation.
- Is there good documentation on how to do the proposed novice task (preferably it is in the Contributor Tasks list)
Duration
Pick tasks that a new contributor can complete during the contribution day. “Project” or “homework” tasks (those that would take several weeks of mentoring) don’t usually make good tasks for new contributors at contribution days (though they may work for regular and experienced contributors). Keep in mind that many people will not return to the issue after the event is over -- you're trying to find tasks that can be completed during the event.
If you are an experienced contributor, a guideline you can use is to estimate how long you think the task would take you to complete. The majority of the tasks you select should be in the 0–30 minute range for an experienced contributor. It’s okay to select a few longer tasks if they meet the criteria above, but if it looks like a significant undertaking to you, it might not be a good novice task.
Contribution priorities
Ask about priorities in the core contribution mentoring back-channel. Talk to contribution leads or task selection leads about priorities for the contribution day.
What should you avoid?
Tasks to avoid
- merge conflict resolution for large merge requests (50KB is probably pushing it) or merge requests that touch many files, because learning how to resolve merge conflicts takes experience
- issue summaries of issues with many comments or rocky histories, because it can be discouraging for new contributors
- upgrade path tests, because they are more difficult and time consuming than most web tests.
Issue types to avoid
- urgent, because new contributors need extra time
- long with many comments, because they can be overwhelming
- contentious or lacking consensus, because new contributors might be misdirected or get stuck in the middle of a debate
- reopened, derailed, or shifting direction, because they can be very confusing.
- postponed, because people new to the issue queue might search for just the Novice tag and not know to filter to active issues. We should focus on quality actionable novice tasks, and not worry about having "a lot" of them.
- versions not currently under development, because we want new contributors to work on issues that are important and of interest to other people, so their work gets reviewed, and they have interaction with others.
- issues devoted to deciding coding standards, but a task to fix coding standards on a larger issue is fine.
- not committable during the current release cycle phase, because new contributors will not see the results of their work for a long time. Large new features, API changes, and data model changes are examples of contributions that may take significant time to be completed and agreed upon.
Help improve this page
You can:
- Log in, click Edit, and edit this page
- Log in, click Discuss, update the Page status value, and suggest an improvement
- Log in and create a Documentation issue with your suggestion