Lead or organize a Development Sprint at DCUS 2022!

The last two days of DjangoCon US (this year, October 20-21) are devoted to Development Sprints. This blog post is targeted at current open source maintainers and contributors who are considering organizing or leading a Development Sprint at DCUS 2022. As such, I won’t be defining “Development Sprint” here. That will come in a later post, meant for potential sprint attendees.

Why lead/organize a sprint at DCUS 2022?

There are as many reasons to lead or organize a development sprint as there are projects to work on and potential organizers. Some of the key reasons to consider are:

  • Meet & work with current contributors in person!
  • Test & refine your new user & new contributor docs with live feedback. Better new contributor docs lead to better new issues, bug fixes and PRs for your project.
  • Build (or improve) a workflow for virtual attendees that your project can continue to use after DjangoCon US (when EVERYONE will be ‘virtual’).
  • Get help for your favorite project from enthusiastic Pythonistas & Djangonauts, while enjoying beautiful San Diego!

Preparation for Project Maintainers: Avoiding Burnout

Let’s start with this acknowledgement: the vast majority of FLOSS project maintainers are unpaid volunteers using their free time to maintain software that many us depend on. Your work is greatly appreciated by all of us (even those who don’t explicitly say so). With this in mind, most recommendations here are focused on ways to help maintainers get the most from a Development Sprint in the most scalable, least burdensome way possible.

A bit of preparation will help you and your chosen project get the most from the Development Sprints, as well as help potential sprinters have the best possible experience working on your project. Instead of the traditional approach of making/marking “beginner-friendly” issues, try making sure your “Start Contributing” docs are comprehensive and up to date. If your project doesn’t have a CONTRIBUTING.md/rst document, there are several examples you can look to for help. Good references include the Django REST Framework’s contributing guide on Github or on the DRF website, as well as the pytest contributing documentation. You can also look at the Django or CPython developer docs. Creating or updating these docs prior to the DCUS Dev Sprints will have two main benefits:

  • It will make it easier to get new contributors started at the sprint and going forward. This will improve the scalability of getting new contributors started, easing some of the burden on maintainers.
  • You’ll be able to get live feedback on your documentation, from new contributors, during the sprint.

Mike McQuaid, the Homebrew project leader, has some useful insights here. Up to date documentation includes (but is not limited to) docs on:

  • Installing & running the project
  • Running tests
  • Code style guidelines & tools used by your project
  • Testing requirements for new code, code coverage tools, CI, etc.
  • PR templates

Another potential replacement for making/marking “beginner-friendly” issues is to consider looking at larger/more complex issues and seeing how they can be broken into smaller parts. Development sprints are a GREAT time to get multiple eyes looking at those smaller parts in parallel. Also, consider reaching out to your current active contributor base (more on that below) and ask them to help with this task. They may have unique insight on good candidates for this approach.

DCUS 2022: Hybrid Development Sprints

As well as can be recalled, the idea of conference development sprints was based around a conference bringing a geographically-dispersed development team to the same place at the same time. This year, DCUS will be a hybrid event, with in-person and virtual attendees. This brings new challenges and opportunties if you’re accustomed to ‘traditional’ conference development sprints. On one hand, you’ll miss the serendipity of being able to look over someone’s shoulder or see their facial expressions as you work on something together. On the other hand, you’ll be working with people virutally (as usual), but also synchronously (instead of the usual async approach). This will give you an opportunity to fine-tune some of your distance communication tooling (which you’ll continue to use after the conference) in real time. Potential new things to consider while coordinating w/ virtual development sprint attendees (similar to what you’re probably doing currently):

  • Do you already have online communication channels you use? Slack? Gittr? Zulip? Discord? Gather?
  • If not, consider the Django Discord or IRC channels (see the Get Help section of the sidebar), or testing something else
  • Can virtual attendees find & use the updated docs mentioned above?

Preparation Steps for Active Contributors Who Are Not Maintainers

If you’re an active contributor to a project, even if you’re not an official maintainer or someone with commit access, there’s still a lot you can do to help support your current maintatiners as well as new, interested contributors.

  • Be prepared to help mentor new contributors. The two most important aspects here are patience and compassion.
  • Prepare to gauge the experience level of newer contributors, then try to mentor them accordingly. Some may be experienced Python developers, but new to Django or modern web development. Some may be experienced web developers, but with another framework/language. Some may be less experienced developers overall who want to lend a hand.
  • Be prepared to take feedback from new contributors who may have trouble finding or using the New Contributor docs. If there are problems, try to help new contributors handle them and be prepared to update the appropriate documentation. That will be one less thing for the maintainers to do, and it will improve your understanding of the project.
  • Help the maintainers by looking at larger/more complex issues and how they can be deconstructed into smaller tasks to spread among the newer contributors.
  • If you’re already working on an issue, prepare to guide someone else to work on it with you.

Conclusion

Specific time/location details on the Development Sprints will be added to the schedule. But for now:

  • Decide if you want to help lead or organize a Development Sprint.
  • Make sure you’re prepared for whichever role you take on.
  • If you have questions, the best place to reach our Development Sprints Chair, Kojo, is on Twitter.
  • Get ready to have a great time!