chalmerlowe / intro_to_sprinting

A gentle introduction to contributing to open source projects / open source sprints
Other
108 stars 116 forks source link
education git github open-source sprinting sprints

Intro to Sprinting

This project is designed to help beginners learn AND practice the basic skills necessary to contribute to open source projects. While it is designed to be delivered as a workshop for a group of students, it can also be used individually as self-study.

It can be used in multiple ways:

Why an introduction to sprinting?

At many programming conferences, time is set aside for developers to come together to work on open source projects (called sprints or sprinting). Many project leaders welcome new developers of all skill levels to contribute. This works fine if a newcomer has contributed to a project before and has an understanding of the tools and processes.

The struggle for both the project maintainer and the newcomer has been that beginners often have a significant learning curve and need to become familiar with too many new tools and new skills before they can successfully contribute.

They often turn to the sprint leader for help and mentoring on the basics of "contributing to open source". Things like these are fundamental skills, most of which are not specific to a given project.

They are often limited by the sprint leader's availability to help them learn. The sprint leader becomes, through no fault of their own, a bottleneck. The beginners often spend so much time figuring out the basics that they can't really get into the project sufficiently to understand nuances of the bugs they want to fix OR the contributions they want to add. Due to limitations on time, new contributors often leave the sprints without having successfully contributed to the project, at all. Furthermore, once new contributors arrive at home, they are often so removed from the project and the mentorship opportunity, that they may not be able to pick up from where they left off.

This project aims to fix some of these problems by having materials and instructions available via group/classroom study AND self-study so that new contributors can learn the basics before they ever sit down with their sprint leader and can start focusing more on the project and less on the learning curve. In addition, should they run into a problem, they have a ready resource to return to, thus taking some of the burden off the sprint lead.

Overview

This workshop provides a high-level overview of the steps, tools and tradecraft needed to introduce beginners to open source sprints. The workshop provides lecture/demo AND lots of hands-on in the following areas.

In addition, the overview will include numerous resources for self-study.

This project is based on conda, git, and github for Python sprints. This project can be modified for the needs of other sprints and other languages.

Prerequisites

Beginners will need to already know the following:

It helps if a beginner knows:

For help with the above, see the Student Preparation instructions

Beginners will NOT need to have in-depth knowledge on the following:

  1. Programming OR Python (many contributors to open source never write code: they help with design, documentation, etc)
  2. Any specific open source project
Next
Table of Contents