Organising a mentored sprint¶
What is a sprint?¶
"Code sprint (n) 1. A sprint is a time-boxed period of software development focused on a given list of goals." Effective Code Sprinting.
Due to the nature of Open Source and the current contributing structure, most folks maintain or work on open-source projects in a remote (or online) way. Contributing sprints are an excellent way to work together free of distractions, squash bugs, and clean out a backlog of issues. Traditionally, many sprints are attached to large events (i.e. developers conferences) as these draw several community members and project maintainers. Sprints can have any duration from a few hours to a couple of days and are often hosted after the main conference days if attached to a larger event.
What happens at a sprint?¶
In a sprint, a group of developers - programmers, designers, documentation/technical writers, among others, get together in a room, discuss new implementations to a given package or programming language, discuss a project roadmap or work on a set of diverse tasks. Probably one of the most notorious characteristics of sprints is their collaborative fashion.
It is not uncommon to see folks working in pairs, teams or individually. It is also a great opportunity to provide and get feedback on the work one is doing over the sprints.
Many projects use sprints to bring together their maintainers and discuss the project's roadmap and work on urgent and/or complex issues or features.
Setting a sprint for success - The Mentored Sprints way¶
Great, you have decided to run a sprint. Whether you have decided to run this online or in-person, there are some things you have to consider before even getting to the nitty-gritty preparation steps. Things like setting the goal and identifying the personas that might be attending and participating in your event can make a huge difference between a half baked and a successful and productive sprint.
Some of these early considerations are:
Wording matters: we have intentionally removed the word coding and refer to the events as sprints, contribution sprints or mentored sprints. Open Source Software thrives on and needs much more than code contributions. When running a sprint, it is essential to focus on contribution types that can often be overseen: documentation and technical writing, community management, design, dogfooding, education, and many more.
What is the purpose of the sprint?: Is your primary focus contributing to a given project or projects? Do you want to onboard new community members and mentor beginners? Are you focusing on a specific project with experienced contributors and maintainers?
Who needs to be involved?: Depending on the location and format of your sprint you will need to identify your key stakeholders and approach them early on (i.e. organisers, mentors, project maintainers, attendees, Code of Conduct enforcement team, conference organisers, sponsors).
Format and place: When running in person, you'll need to think of the venue as well as the facilities. When online, you will have to consider timezones as you will be lacking a centralised physical location. Online sprints require a more extensive effort arount tooling and infrastructure than those happening in-person.
Communicate, communicate, communicate: you will need to communicate regularly with the other organisers, mentors, attendees and other staff/volunteers. Make sure to decide on a communication channel and communication strategy early on and stick to it. There is nothing more frustrating than having organisation conversations scattered across a Slack channel, a Discord server, a GitHub repo, emails, Twitter messages and text messages.
Outreach: right this might be obvious, but how are you going to get the word out there? If you are working on a specific project, how can you find folks that care about and use said project or library? If you want to focus on minoritised communities, how are you going to make sure they are made aware of the sprint and present at it?
The following sections will guide you through practical steps and guidance to run contribution sprints.