Skip to content
mariekers edited this page Aug 29, 2019 · 9 revisions

Identifying Need

In a nutshell

The first and foremost thing to do when joining this project is to figure out what needs to be done at the present time. Identifying what tasks need to be accomplished is the best way to identify how to have an immediate and helpful impact on this project as a contributor.

Reviewing onboarding material

When starting with the Prevention Point project, the best place to start is by reviewing any onboarding material. Common places to find onboarding material for this project include:

These locations often include information on how to get up and running with a development environment, common workflow practices, locations of issue trackers, wikis, documentation, etc, and other information which may be necessary in order to make contributions to the Prevention Point project.

Talking to active Prevention Point project members

Ideally, this project should have up-to-date and readily available onboarding materials for a new contributor to review. Unfortunately though, this information may not be documented and published. In cases such as these, it's best to reach out (e.g. via Slack) to current contributors to the project. Even when this documentation does exist, it may be necessary to reach out to active contributors to ask clarifying questions, correct outdated information, or just to say hello so they know who they are working with!

Communicating activity

In a nutshell

Being a good contributor means not leaving Prevention Point project teammates guessing. It is important that all team members understand what each other team member is actively doing (or not doing) so that team members can avoid stepping on each other's toes, while still ensuring everything that needs to be done is done.

What you are working on

Being a good contributor means letting the team know when starting work on a new task. There are never too many channels to keep teammates in the loop! If the task is in the issue tracker being used by the team (which it definitely should be), always self-assign the task when working on it, and even inform the team via the #preventionpoint, #prevpoint-frontend, or #prevpoint-backend slack channels. Keeping the team aware of what tasks are being worked on not only helps the team avoid duplicating efforts, but also encourages the team to see tasks being worked on.

What you are no longer working on

Being a good contributor means letting the team know when work on a task has stopped or stalled. Sometimes things come up; a task can be blocked by another task, a teammate may no longer have time to work on a task, or may be simply burned out from working on a task they don't like. Under these circumstances, a contributor should always let their teammates know that the task is no longer being worked on, so that everyone is aware that it will need to be picked up and worked on by someone else. If the task is being tracked in the Prevention Point project issue tracker (which it definitely should be) always make sure to unassign the task so that no teammate believes it is still being worked on.

When you've done a thing

A lot of (personal) time gets invested in contributing to this project. Be proud of every little thing that gets accomplished! Whenever a task is accomplished or something is done for the project, let the team know via the regular communication channels (e.g., chat or email chain). Letting teammates know about accomplishments not only keeps them in the loop about what does or does not remain to be done, but helps encourage them by showing that the project is making progress! This may be one of the most underrated aspects of being a helpful contributor. If the task is being tracked in the Prevention Point project issue tracker (...you get the idea), always make sure to mark it as completed to keep the view of the project status current.

Your hopes and dreams!

Investing time in helping to make this project happen means that you are part of this project! As a part of this project, you shouldn't be shy about speaking up about your vision for its future and its mission. It's also important to remember that your vision isn't the only one, but contributing your opinions is important in order to continue feeling invested in the Prevention Point project and its mission.

Being a good citizen as a technical contributor

As a technical contributor, it is important to abide by the contribution guidelines of the Prevention Point project. There are some general guidelines as well which will improve the quality of contributions to any project, and make the contributions more easily digestible by teammates. These guidelines are highlighted in this wiki under “Change Management Practices”.

Atomic commits and PRs

Every commit should have a specific focus and scope, and should not include work being done outside of that scope. This idea of ensuring that each commit remains small with all changes within the commit being related to one another can be more concisely referred to as an "atomic commit". Constructing commits this way makes them easier to review for teammates and makes them simpler to perform git operations on.

Documentation

New code should always be documented! This is a general coding best practice, but comes into particular focus when working on open source projects where new contributors may frequently come and go. Contributing well documented code makes it simple for new contributors to quickly and easily understand work which has been previously done. Also, it makes it easy for current contributors to remember how things work when they come back to them months later!

Collaborative brainstorming

When trying to solve problems, it's always a good idea to brainstorm with teammates and backboard ideas off of them. Not only does this give the whole team a sense of ownership over each problem which has been solved in the course of working on the Prevention Point project, but also helps teammates understand a solution before it is even implemented. This will also make reviewing contributions easier for teammates, and makes it more likely that teammates will find the solution agreeable when it is time for them to review it.