Planet Argon has always advocated for and been involved with the broader software developer community. From attending events like RailsConf to contributing to open source software projects, our devs have historically given back to their community in one way or another.
Since we’ve become a fully-remote team, we’ve realized that we haven’t been as engaged in the open source community as when we worked together in an office, so we’ve decided to put more energy and focus into this area. Our engineering and leadership teams have started sharing ideas and organizations we already belong to and are discussing our preferred ways of getting more involved. We’re also deciding on actionable next steps we can all take to improve our team contributions.
Here are some ideas to inspire your dev team to contribute more to open source software projects.
Benefits of Contributing to Open Source Software Projects
Open source projects support skill development, collaboration, and learning opportunities. Because the code is shared, it accelerates and improves innovation among all organizations (not just wealthy ones with ample resources), allowing growth, collective equality, and community development. Without barriers between organizations, open source promotes a free exchange of ideas and faster, more resilient technological advancement. Plus, a diverse open source community can serve a diverse audience by understanding the needs of many different user types and coming up with solutions that suit each need. An active community also allows for faster, more consistent release cycles.
Importance of Contributing to Open Source Software Projects
Juggling client or product work is a big challenge for many developers. We saw in our 2022 Ruby on Rails Community Survey that only 45% of developers said they contribute back to open source projects. But because our teams and clients all depend on the open source community, we feel it’s important to prioritize our contributions. Of course, there are other reasons to get involved:
- Open source software projects allow the reuse and recycling of code, making it easier to collaborate and achieve goals.
- Ideas are spread faster and more easily in a strong community.
- Collaboration yields better results than trying to come up with solutions individually.
- A large community also entails better reactions/responses to such security issues.
- An open source project can grow if everyone around it takes an active role: code committers, users, documentation writers, software vendors, platform vendors, and integrators.
How We Contribute to Open Source Projects: Volunteering Time
Some organizations allow their devs to spend some time volunteering (we're one of those!). It's not usually on any code we originally open sourced, but rather some code that an individual initially wrote, and it grew into a bigger project.
Our process at Planet Argon for contributing to projects has changed over the years. We’re currently re-framing how our engineering team chooses and works on various projects. For example, we want to ensure that we have a dedicated time budget to allow each developer to contribute to open source on a quarterly basis. We also want to choose projects that are meaningful to us and need the time and coding to be functional. But we also want to see the project through instead of leaving it incomplete. So we’re exploring the idea of voting on one specific project and working together to submit a thorough contribution. We’ll also want to be available for long-term maintenance, so this is a point to consider initially.
Linux Foundation shares how the contribution process varies depending on the project.
Projects have different guidelines with information about coding style, language, formatting, bug/ticket numbers, release timing, and more. Some projects require signed contributor agreements, while others have signed-off-by or other processes. The project may require patches to be posted to the mailing list, but others will ask for pull requests.
How We Contribute to Open Source Projects: Monetary Donations
Financial and resources are needed to ensure the code created is well-managed, follows good code quality rules, and is secure over time.
Most of the open source projects our team/clients rely on are run by and for volunteers, regardless of their employer/organization.
Planet Argon can donate money to small projects that don't have a corporation backing the volunteer work. It can be a way to say thanks to those volunteers for their time and/or to help them cover the costs of hosting their project's websites, 3rd-party tools they use, etc.
How We Contribute to Open Source Software Projects: Building Relationships
Building relationships is an integral part of being in the open source community. One of the best ways to build lasting relationships with other project contributors is by attending local meetups, online workshops, and live events. You can meet people from project maintainers to users and everyone in between. Plus you can get involved with organizations by visiting their booths, trying out their demos, listening to panels and talks, or just joining an impromptu conversation.
You can also build relationships by answering support questions on an open source project's Discord, Slack, Discourse, Github Discussions, IRC channels, or other online discussion threads.
How We Contribute to Open Source Projects: Oh My Zsh
Planet Argon’s CEO, Robby Russell, is known for creating Oh My Zsh, an open source, community-driven framework for managing your Zsh configuration. While he regularly participates in steering the project, he also depends on fellow maintainers to respond to code contributions from other volunteers, fix bugs, and add new functionality to the project. If you’d like to see how the team approaches this, visit our Volunteers page on Github.
Given how widly used and popular Oh My Zsh is, Planet Argon also sells stickers, coffee mugs, t-shirts, and pins to developers around the planet so that they can show their support of the project.
Where to Find Projects to Contribute to
GitHub has a section on its website that will let you browse open source projects based on your interests, what's trending, etc.
Within the Ruby on Rails community, we can always work to get to know the Rubygems that we rely on and learn more about those particular projects.
Let's Get Involved!
Contributing to open source software projects is an essential part of being in the dev community, and it’s a great way to learn, grow, and sharpen skills. So whether your team contributes time, money, or in another way, we hope you’re inspired to be more involved this year!