Contributing to Open Source Beyond Software Development
Let’s examine how non-developer contributors enhance user experience, improve bug reporting, and influence feature requests, all while becoming advocates and evangelists for your open source project.
The cornerstone of any open source project is a rich and diverse community—not the code. Open source projects thrive because of the community built around them.
A project’s ideas, comments, bug reports, forums, Twitter discussions, advocacy, design, documentation, mailing lists, and code contributions all reflect the presence of this community. These contribute to the project’s success and assure its long-term sustainability. Building such a community around open-source software (OSS) projects requires everyone contributing—hobbyists, developers, and non-developers such as technical writers, designers, and community managers—to stand on each other’s shoulders.
However, non-coding contributions are frequently overlooked and underappreciated in open-source initiatives. Let’s cover why non-developer contributions should be appreciated and why those contributions help projects thrive.
The Community in OSS
Open source embodies the willingness to share and give back to the community. It is defined by the spirit of collaboration, helping out, goals, and an interest in playing an active role in improving the world today. Geographical or social interests don’t bind this community; instead, it’s just people from various backgrounds who are ready to learn and contribute.
The diverse and collaborative nature of OSS benefits the project and rewards the contributors as well. Everyone learns, teaches, gains experience, embraces conflicting perspectives, and practices inclusiveness while innovating.
Unfortunately, there is a common and entirely inaccurate misconception that meaningful contributions need coding. The success of any OSS project is influenced by far more than the code contributions on Github. Every thriving open-source project has non-developer contributors, and these contributions are vital for the adoption and success of shaping the project’s future.
What are Non-Code or Non-Developer Contributions?
Non-developers refer to individuals who fill roles and have skill sets that don’t involve directly writing code.
There are many ways to contribute to an open source project without writing a single line of code. Some of these ways include:
- Creating, writing, and editing documentation.
- Creating quickstarts, blogposts, videos, and tutorials.
- Organizing, hosting, and managing community events and meetups.
- Signing up for beta testing, reporting bugs, and submitting feature requests.
- Answering questions on forums like StackOverflow, technical subreddits, and so forth.
- Improving the user experience and interface design.
- Becoming an Advocate or Evangelist.
- Participating in mentorship and code review sessions.
- Volunteering opportunities and sponsorship, and many more!
These roles are played by your technical writers, UI/UX designers, developer advocates, project managers, community managers, hobbyists, and much more. Open Source is a social and technological movement; this list is just the tip of the iceberg.
Why are Non-Developer Contributors Important to Open Source?
As your project grows, it becomes more than just code. You will need awareness and more adoption to sustain it. Without any of this, your project will eventually die out. Many fantastic open-source projects have gone out this way.
Let’s explore some of the ways non-developer contributions shape your OSS project:
- These contributions allow your contributors to bond through hackathons, events, and meetups.
- They keep the information and questions flowing in your forums.
- They build a knowledge base to help people understand the project better.
- They also promote your project’s technology.
- They help improve the user experience (UX) and visually express the project’s value.
- They provide financial support for your OSS project.
If I were to summarize, OSS projects need more than developers; they need non-developer contributors from various fields like marketing, customer success (enablement), project management, and documentation—just like a commercial company does!
Let’s explore how some non-developer contributions change a project for the better.
Documentation and improving the knowledge base
Good code doesn’t always speak for itself, but your documentation and tutorials do. They act as the bridge between the audience and the code.
No one can use your project if no one knows why it exists or how to use it. Whether written or visual, these forms of contribution help improve the project’s knowledge base and adaptability, driving adoption and making your code understandable and reusable.
Also, while discussing documentation, don’t forget about your open source license. It specifies who has permission to reproduce, adapt, and distribute your project. Without an explicitly specified license, your project isn’t open source at all!
Advocacy is all about getting the word out to the world. Workshops, demos, tweets, conferences, and training sessions are a few examples of how advocacy takes place.
Your project addresses a need, but the world might not be unaware of it. People must be aware of it to use it and be passionate about becoming users who tell their friends, colleagues, and employers about your project.
To see one great example in action, check out the FreeBSD advocacy project.
Reporting bugs, posting workarounds, and making feature requests
Most OSS projects have become essential to our everyday lives. Today, we can’t imagine a world without MySQL databases or WordPress. Contributors who report issues and request features determine the next steps in the project’s development.
Because bugs are reported, they are resolved, and the quality of the project can be improved through an iterative development process. In many cases, non-coding contributors can also find and share clever configuration workarounds that mitigate the impact of bugs that haven’t yet been fixed.
The magic formula for any OSS project’s growth and sustainability lies in attracting these critically important user contributions.
UX design and improvement
Design influences first impressions. It gives your top-notch functionality a human touch by transforming it into a clean, intuitive appearance. A good user experience (UX) can increase your project’s usability and positively influence your users’ experience.
If you want your OSS project to appeal to a larger audience, you’ll need a style guide with a consistent visual design, and designers can help you with this.
Community management is every OSS project’s secret sauce and cuts across every aspect of the project. Different perspectives are introduced into the project as a result of community engagement. Issues can be viewed through numerous lenses, and the resulting product will be better due to all the different perspectives.
This contribution comes in various forms, including interaction on your communication channel, organizing advocacy programs, physical and virtual meetups, and GitHub discussions.
Community management is a tedious but essential task that keeps the project vibrant, friendly, and productive.
How to Build Welcoming Open Source Communities
Contributions help the project grow and flourish by making it accessible and usable for everyone. You must create and maintain a healthy, inclusive community that values and supports people while erasing non-contributors fears of not fitting in.
Here are some things you can do to achieve this:
1. Improving the onboarding experience
Anyone who looks at your project for the first time sees the README file, so it should be written in a clear and engaging manner. Contributors will feel welcomed and excited if you use a warm, pleasant tone and add a few words of appreciation for showing interest in your OSS project.
Contributing can also be quite overwhelming for first-timers. Therefore, issues must be labeled appropriately, such as “great first issue,” with a welcoming, inclusive “Contribution file” that highlights the various ways one could contribute. Take a look at the VideoLAN and OpenZFS pages, for example.
2. Listen to feedback and respond to pull requests
People want to be heard, so as your project grows, expect more feedback, pull requests, and issue submissions.
When an issue or pull request is submitted, try to be responsive. You could handle this by engaging with an emoji 😊 or a comment. Thanks to social coding sites like GitHub, these interactions are now simple.
3. Acknowledge and reward contributors
Contributors are essential to your project’s success, so make them feel valued. You can achieve this in a variety of ways:
- You can reward contributors with swag such as stickers, hoodies, or t-shirts.
- You can also retweet or give frequent shout-out’s to contributors.
- Create a forum or mailing list managed by a few contributors to highlight contributions, such as blog posts, public releases, and important announcements.
- Create a contributors’ file with a list of everyone who has contributed. Take, for instance, this docToolchain page.
4. Building personal connections
Creating an ecosystem around your project is just as important as developing the project itself. Thus, it is important to give your project a personal touch.
For starters, create a communication channel on platforms like Telegram, Discord, or Slack so contributors can develop personal relationships. It will also give contributors a medium to exchange ideas, ask questions, discuss the project, and welcome new collaborators. In addition, you can encourage webinars and local and virtual tech meetups to help advocate and evangelize the project.
5. Code of conduct
Diversity is beautiful, but we are all humans, and conflicts will always emerge. To foster cooperation, you must have a zero-tolerance policy for harassment and bullying.
Creating a code of conduct to help define ground rules and publicly address negative encounters is one way to do this. In addition, the code of conduct will provide contributors with information about the community’s values.
Klara in Open Source
We at Klara believe in the community spirit of open source. As a result, our story is based on open source values and community support. That is why we are so thrilled about FreeBSD-oriented projects.
OpenZFS, an open source storage platform, is one such project. To learn more about the platform, its features, and how it combines traditional file systems with volume managers, visit the official site. Other FreeBSD projects we love are Bhyve, the FreeBSD hypervisor, and ARM, which we believe is the data center of the future.