Development Sprints: What are they & why should I attend?

What even IS a Development Sprint?

(In the ancient days of FLOSS…) Sprints are most common around Free/Libre Open Source Software, or FLOSS projects. Most of these projects (like Django and Python) are maintained by a community of volunteers. These volunteers usually work together while spread around the world. Conferences presented rare occasions for these developers to work together in person. And thus, Development Sprints were born! In the context of a given conference or event, you’ll often hear them referred to as “the sprints” or just “sprints”.

Over time, these core developers realized sprints also provided them an opportunity to help find new potential contributors. And that’s where YOU come in.

Why Attend a Development Sprint at DCUS 2022?

As mentioned in the “Why DjangoCon US” document, development sprints give you an opportunity to work shoulder-to-shoulder with experts in the community. In addition, there are practical and personal benefits to attending the sprints.

From a practical perspective, if your organization makes heavy use of Django or a related package, getting involved in its maintenance will give you a better understanding of that package, as well as it’s strengths & limitations. On the personal side, most people won’t usually work on a project that’s as widely used as Django or some of the other related packages. Getting involved in the maintenance of one of these packages can expose you to engineering practices you like wouldn’t see otherwise. This can help you become a better engineer while allowing you to contribute to the community that benefits you and your company.

Adjusting Your Travel/Lodging Details: Act Early!

If you’re planning to stay for the sprints (this year, October 20-21), you’ll want to make your travel & lodging plans to stay through Thursday or Friday (depending on how long you want to sprint).

If you’ve already booked your hotel room, please call the Marriott at +1 (619) 692-3800 to adjust your reservation as you may not be able to secure the group rate by adjusting your stay online.

What should you know if you want to sprint?

Git and Github basics

Most FLOSS projects these days use Git for version control (the software used for tracking changes to software). This makes it easier for groups of people to work on the same software, together. If you’re new to Git, I recommend the first three chapters of Pro Git, which is freely available to read online or to download. Those chapters will get you started and give you about 80% of the Git you’ll use most often. Chapters five and six, on Distributed Git and Github respectively, are also very helpful if you’re new to working with a group on software.

If you’re new to Git or working on software in teams, a basic knowledge of Git fundamentals is important to helping maintainers. Keep in mind that one of the main focuses of contributing to a FLOSS project is to help the people who maintain the software we all use. So, while the sprints aren’t the best place to learn Git, they are a great opportunity to practice or improve your Git skills, especially in situations you may not run into normally.

In the spirit of helping our maintainers, try to focus on learning to make “good” commits. More specifically, you want to make atomic commits, in which each commit is focused around a specific activity or code change, and clear commit messages, meaning that the changes in a commit should be clear from its commit message. This is important because commits you make will be relied upon by current or future contributors & maintainers. Making “good” commits and messages is both an art and a science, so practice or experience helps. You should also have a GitHub account. Git and GitHub, while related, are two different things, so getting Git setup on your computer won’t give you a GitHub account, just as creating a GitHub account doesn’t mean you’ll have Git installed on your computer.

Know yourself

It’s helpful to have an idea of where you are in your development journey. Are you a very experienced developer who’s always wanted to contribute to open source but never has? Are you newer to software development or Django but still interested in contributing? There are multiple ways newer developers can contribute, so don’t let the fear of “not knowing enough” stop you.

Why do you want to contribute to FLOSS? There are many different reasons, some of which were mentioned above. Are you more focused on giving back to a community that’s already given to you? Maybe you’re looking forward to improving your engineering skills or learning more about a package you and/or your company frequently use or depend on? A little introspection on your motives can help guide your efforts.

Finally, it’s helpful to give some thought to which FLOSS project you want to contribute to. With that in mind, even if there’s not a dedicated sprint happening for that project, you could use the time during the sprints to start looking at making contributions on your own. A one-person sprint is very much “a thing.”

The Self-Care Sprint

Finally, while Development Sprints are a valuable part of open source software, there’s one other sprint that’s even more important: the Self-Care Sprint. This is because open source software is primarily built and maintained by volunteers, in their free time. This means the contributors and maintainers need excess physical and mental capacity to continue the task of maintaining software we enjoy and depend on. While your contributions can help ease the burden on the current contributors and maintainers, if you’re going to become a consistent contributor, we want you to develop the habit of taking care of yourself. Self-care can happen in many different ways depending on the individual, but one thing is constant:

The Self-Care Sprint is the only sprint that makes every other sprint sustainable.

People who’ve pushed themselves to their limits don’t have the required excess capacity to make extra contributions. So please, make sure you take care of yourself during the sprints!