Handbook for Participants¶
It is fascinating to participate in a sprint. Here is a guide to help you prepare yourself and know a bit more about what you can expect from the sprint if this is your first time joining a mentored sprint.
What is a mentored sprint?¶
A sprint, in general term, is an event or meeting that people gather to get specific goals in a project done. The sprint that you are going to join will be focusing on contributing to open-source projects. There a lot's of different types of contribution that you may be making. From bugs fixing to checking typos in the documentation or user testings.
A mentored sprint is a sprint that there will be mentors. Usually, they are maintainers of the projects you will work on or senior contributors in those projects. They will guide new contributors, including setting up the developing environment or tools needed and telling them where to find relevant issues to work on.
What will I be expecting?¶
You will be expecting to work with people who are welcoming and happy to help you get started. You will be contributing to an open-source project by making pull requests, reporting issues or any other means of contributions that your mentor suggested. During the process, you will be learning something new. It could be acquiring new knowledge about the project that you worked on, the process of setting up an open-source project, or the standard of creating documentation etc. It could be anything.
What do I need to prepare before joining the sprint?¶
As a participant, the most important thing is to make sure you will enjoy the sprint. It can be an exciting learning journey followed by a great sense of achievement. Here are a few things that would give you a head start.
1. Read and make sure you understand the code of conduct¶
To make sure everyone works together in a safe and welcoming environment: Make sure you have read and understood the code of conduct. Check how you can report a violation. Ask the organisers if there are any questions.
2. Prepare the conferencing and chatting tools¶
Since we will carry out the sprint online before you can join, make sure you have installed the conferencing and chatting tools used during the sprint. Usually, using the tools with their corresponding desktop app can ensure connection and function stability over the browser version. Therefore we highly recommend you have those installed. If you have to register a free account for login, go ahead and do so.
3. Prepare git and GitHub¶
The most common tool for collaborating in an open-source project is git - a free multi-version concurrency control tool. Some OS comes with git; however, if you need to, you can download it by following the guide at git-scm.com: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git.
Most open-source projects will use GitHub to host their source code. Registering an account on GitHub is free: http://github.com/.
Occasionally, the project you want to work on may have setups other than git and GitHub; check the information provided by the organisers or mentors and follow the instructions given.
4. Install a text editor¶
Text editors are tools with powerful features designed to optimise writing code. There are several text editors that you can choose from. Here are some we recommend:
- Atom. Download at: https://atom.io.
- VS code. Download at: https://code.visualstudio.com/.
- Pycharm. Download at: https://www.jetbrains.com/pycharm/download/.
We suggest trying several editors before settling on one.
5. Pick a project¶
This one is optional, as some sprints may have the projects briefing at the beginning of the sprint rather than before. You can always make up your mind later. However, if you want to, you can check out the projects participating in the sprints. See if you like any of the projects. Do they have exciting issues on their repo that you would like to work on?
6. Pair programming¶
When you are new to a project, it is often helpful to work in pairs. The goal is that each contributor will be able to resolve one issue.
Good pair programming depends on both people being pretty decent (and patient) communicators, which can take time to develop and is especially hard when people are in a hurry.
Some valuable tips to make the most of pair programming:
- The pair (both people) should be talking to one another constantly
- It is often best to have one person typing than switching too often
- For pairs where the two people have different experience levels, the less experienced person should be typing
- Use video: Since people communicate a lot through gestures and facial expressions, it is nice to see the shared screen and your pairing partner's video simultaneously. Some video conference solutions come with this feature; if yours doesn't, consider opening up an additional call to see each other.
- Audio experience: Look for a quiet area and use a good headset, maybe even with a directional microphone. If you can't get away from the noise, "push to speak" functionality can also help. To avoid distractions on your side, noise-cancelling headphones are your friend. -Dealing with network lag: It can be exhausting to work on a remote computer for a more extended period when there is a network lag. So make sure to switch computers regularly, so that each of you has a chance to work on your machine without lag. A network lag can also be annoying when you scroll through files because it can be hard to follow. It helps avoid scrolling in long files, using keyboard shortcuts to open different parts of the file, or using the collapse/un-collapse functionality instead.
- This blogpost on What to expect of sprints by Trey Hunner is a great introduction to sprints
- This blogpost Contributing to open source: let's get us started can be very helpful to set the context for sprints participation.
- Read more about pair programming in this guide