Last updated March 26, 2012.
This section describes how to organize a "sprint" (work party), to work on Drupal (code, documentation, design, etc.). On this page:
- What is a sprint
- Organizing a sprint in general
- Organizing a virtual sprint (IRC)
- Organizing an in-person sprint
- Child pages are for specific types of sprints (code, design, documentation, ...)
What is a sprint?
A sprint is getting people together for a set amount of time – usually one to two days – and just working on some aspect of Drupal. Ideally, participants will learn from others as they go, and the goal is either to get some specific work done, mentor new contributors, or both. We choose to gather in a sprint format because:
- It's fun - sometimes it is nice to have some camaraderie while working.
- It's satisfying - the group can see the progress that was made at the end of the sprint.
- It's a good way to get a focused task done (though some sprints are more general and some are more focused).
- Participants can get their questions answered immediately instead of waiting for an answer in an issue queue.
- Participants can learn from each other.
There are two types of sprints: in-person sprints, where you get everyone together in one room, and virtual sprints, where you get people together on IRC or another online resource (many in-person sprints also have some people participating remotely through IRC). Organizing an in-person sprint is described below, along with some considerations that are common to both types.
Organizing a sprint in general
This section lists considerations that apply to both in-person and virtual sprints.
Goal, tasks, and participants
The first step in organizing any sprint is to figure out what the goal is, such as "Mentor new contributors through contributing their first Drupal Core patch", or "Write code for the new configuration management system". Once you have a goal, that will probably help you determine a list of tasks for the sprint, keeping in mind your intended participants. For instance, if you want the sprint to be open to new contributors, you will need to have some tasks defined for them to do. On the other hand, if your sprint is limited to a few hand-picked participants who have been involved for a while already, they may already know what tasks need to be done.
For general-purpose sprints involving new contributors, there is a repository of New Contributor Tasks that you may find helpful.
Many sprints also create an issue tag, such as "docs-sprint-jan-2012". The coordinators can tag issues ahead of time with this tag, to help sprint participants find issues to work on. And they can ask participants to tag issues they worked on during the sprint with the same tag.
Coordinators and mentors
It is helpful to have some experienced people participating who can mentor others (unless everyone who will participate in the sprint is experienced already). For a small sprint, one coordinator may be sufficient. For a large sprint, it is helpful to have about one "cat herder" (coordinator) for each 10 people or so, to be there to answer questions (or find answers), get new people who show up going, keep things moving, etc.
Central web page
It is very helpful to create a web page (on groups.drupal.org or drupal.org) for coordinating the sprint. On this page, you can describe the tasks that need to be done (or link to their descriptions elsewhere), link to an issue search for your sprint issue tag, and have a Resources section with links to Git repositories, helpful background information, etc. Consider your audience in creating the Resources section (do they already know about IRC, how to create patches, etc.?).
Announce your sprint by posting an "Event" on groups.drupal.org. When creating a content item on groups.drupal.org, you can choose which groups to post it in. A good strategy is to post your sprint in the group(s) nearest the location of the sprint, and cross-post to topical groups too (e.g., a Documentation sprint should go into the Documentation Team group).
In your announcement, list:
- Location and directions
- Attractions (free food, Drupal rock stars in attendance, etc.)
- Focus, if there is one
- Qualifications needed for participating, or who is invited to attend
- Whether there will be IRC participation
- Etiquette statement (see People section below)
You may also want to post your sprint on other calendars (outside of groups.drupal.org, such as CraigsList, etc.). If the event is large and formal, the marketing resources section may be helpful (that's also where to find the Druplicon logo).
Organizing a virtual sprint
A virtual sprint is pretty simple to organize. You basically just need to choose an IRC channel, a time, and tasks, and announce it. The General organizing section above lists other considerations.
Organizing an in-person sprint
This section lists considerations for in-person sprints. Note that some participants will not be able to attend in person, so it's helpful also to have an IRC channel so remote people can still participate.
It is important to have an appropriate space for an in-person sprint. Features:
- Wi-fi access
- White board and/or projector
- Enough chairs and tables for everyone - preferably tables where about 6-10 people can sit and collaborate
- At least one key participant is located in that city
- Airport/transportation so all participants can reach the location
- Library meeting room
- Business conference or board room at a company
- University classroom or computer lab
- Someone's living room, if it is a very small sprint
Supplies, food etc.
If you provide on-location lunch at the sprint, people can continue to work, talk, and collaborate during lunch instead of leaving and coming back, which can give you an extra hour or two of productive work time. On the other hand, at dinner time in an all-day sprint, people are likely ready to have a break. Having snacks and coffee on-hand is also helpful.
- Whiteboard or easel pad, markers
- Cards or paper for doodles/sketches, pens and pencils (possibly colored)
- Name tags, and perhaps some kind of sticker or special tag for coordinators (for large sprints)
- Sticky notes: you can put issue numbers or tasks on sticky notes on a board, and people can go pick one up to claim it as their task.
Day of the sprint
- Post signs at the building door leading people to the sprint
- Post directions to bathrooms and WiFi on the whiteboard in the sprint room