Guide to open-source contribution for non-developers
One of the best parts about an open-source project is the community and the ability to get actively involved in it, working on things you’re either interested in, use for your job and/or would like to lend a hand in moving forward.
But, since open-source projects have open-source software at their core, you can only contribute to it by contributing software – i.e. writing code, correct? You probably can’t really contribute in any meaningful way if you don’t code, right?
Well, no. It’s not just that non-code contribution is welcome, it’s actually very much desired and appreciated – because, contrary to some popular beliefs, the success of an open-source project depends on much more than simply the (admittedly essential) software.
Especially for large projects such as WordPress or Drupal, with thriving and vibrant communities, there’s so much more to all the ongoing development than simply regular code updates and plugin/module development. If you’re willing to contribute, it’s a guarantee that you’ll find a way to do so, with help from the kind community members.
So, how can you contribute without having coding expertise? Here are 9 ways in which you can help out.
1. Editing/enhancing documentation
Good documentation is a vital component of a successful open-source project, but, somewhat paradoxically, writing documentation is often one of the most tedious parts of a developer’s workflow, which on top of that requires a completely different set of skills than those needed to actually develop the software which the documentation is intended for, which can result in the documentation not living up to its purpose.
By going through the documentation as someone who the (piece of) software is intended for, rather than its creator, you may be able to provide invaluable insights into its shortcomings, clarify certain difficult to understand sections, and/or spot and edit out typos and other errors.
2. Website copy & design
Since the progress of open-source projects relies heavily on community members willing to dedicate their own time to work on issues and new features, much less contribution time and effort is naturally spent on areas less directly related to the software, such as marketing optimizations to the software project’s website.
Additionally, as with writing documentation, tasks such as design and copy optimizations tend to require different skills than those needed for building the software, and it is hence here where additional help is often needed and appreciated, especially around new major releases.
3. Providing first-hand feedback in your area of expertise
Beside more direct contribution, it’s also very likely your fresh perspective will be welcome and will end up benefiting the project, either more specifically due to your lack of entrenched knowledge of its inner workings or just more generally as a different, less go-to type of stakeholder.
If you’re an end-user of the open-source software you’d like to contribute to, one great way to do so is providing first-hand usability feedback and suggestions for improvements from the perspective of this particular user group; so, for example, giving concrete feedback on the admin UX of a CMS as a content editor.
4. Promoting the technology
What good is excellent/top-notch software if no one knows about it? In addition to being robust and up-to-date, a successful software project also requires strong marketing supported by well-crafted promotional materials, which is often not a guarantee with open-source software.
Case studies are one of the most valued types of promotional materials, so you can contribute immensely by producing case studies highlighting the key features of the open-source software project to showcase on its website. Alternatively, you can also do a lot just by spreading the word about a project through blog posts, podcasts, etc.
5. Organizing and hosting events
One of the most effective ways to promote a particular technology is to organize events around it, either community get-togethers for long-time community members or learning-oriented events intended for newcomers and more recent enthusiasts.
These can range from large conferences, which typically require a combination of efforts, to mid-sized community-oriented meetups, and to even smaller, more condensed workshops and seminars (for example, Agiledrop frequently organizes Drupal courses for beginners wanting to learn Drupal, and we’ll be launching our first PHP masterclass course next week).
6. Volunteering at events
Speaking of events – due to the free nature of OSS, pretty much every open-source event will to some extent rely on volunteer work, even more so now with in-person conferences finally back in action.
For this you don’t even need to be super skilled in areas such as design or project management; any kind of help will be welcome and appreciated. Coordinate, help prepare the venue and/or the goodie bags, help with food preparation/distribution, help clean up, help (mentor) other contributors, etc. – anything goes.
7. Project management
As Nic Laflin points out on an episode of the Talking Drupal podcast about open-source compensation, project management is also one area in which developers are often lacking and where help is hence very much needed and welcome.
This is especially relevant when there are several people co-contributing to the same project, such as when working on a certain key initiative and/or a contribution sprint at an event, where good coordination can drastically streamline the work and its efficiency.
We already mentioned the free nature of open source under point 6; in recent years of upheaval, this has been a somewhat greater issue than previously due to the escalated stress and disruptions to not only people’s work-life balance but in fact the very ways of living themselves.
In times like these, financial sponsorship becomes crucial for the ongoing development of the project. You can sponsor an official organization related to the project you’d like to support, which will empower people working on the core features, or more directly sponsor an individual contributor for their important work (e.g. Jacob Rockowitz for his work on the Drupal Webform module).
9. Specific (one-time) initiatives & projects
Lastly, there are often specific initiatives and (one-time) projects that you can join and contribute to. These can include and overlap with all of the points we’ve already discussed, such as creating promotional materials or helping at an event, but can also mean participating on smaller, short-term projects which are part of a broader initiative.
Join a team (very often you’ll be able to find their dedicated Slack/Discord channel as a great starting point) that’s most suitable for you with regards to your interests and expertise. This way you’ll stay in the loop about opportunities to contribute, and sooner or later, you will get your chance to contribute in a unique way.
Some common concerns that might be holding you back – and how to get rid of them
What if I’m not familiar with the community’s preferred workflows and tools?
It’s in fact very unlikely you will be familiar with the standard workflows and tooling if this is your first time contributing (even as a developer, to some extent). Don’t worry too much about it and just do your best to showcase your readiness to help out and willingness to learn, your teammates and other community members will be happy to help you.
What if I’m not experienced enough or have imposter syndrome?
What does it even mean to be “experienced enough”? It’s not like there’s a bar determining whether you can contribute or not. If you feel like you lack experience, start with simpler tasks/issues and move your way up from there. Plus, it may very well be the case of quality over quantity if you’re bringing unique skills to the table.
What if no one appreciates my suggestions/ideas?
It can be tough receiving negative feedback if you’re new to something and eager to help out. Fortunately, open-source communities are often very welcoming and friendly, with members being appreciative of new contributors willing to help out; rather than outright rejecting your ideas, they will likely approach this in a more understanding and constructive manner, enabling you to still learn the most from it.
What if I’m not communicative or extroverted?
You’ll most often be collaborating remotely and asynchronously anyway, which won’t in any way be hampered by your potential introversion. Even in cases where collaboration takes place during video meetings, you can participate by taking meeting notes and/or just listening intently to have a better grasp of what work still needs to be done.
What if my English isn’t good enough, or I have a heavy accent, and other community members will have trouble understanding me?
Language should definitely not be a barrier if you have a desire to contribute. Keep in mind that it’s very likely other contributors will also be non-native English speakers and may be having similar hesitations about their communication. On top of that, the more you do communicate, the better your English will get, and the easier it will become to engage.
Finally, let’s explore a little bit more about the benefits of contributing to an open-source project and reasons why you should get involved in one.
- Learning: not only will you learn a ton of new hard skills, you’ll benefit even more from all the soft skills you’ll acquire through collaborating and solving problems together with a diverse and friendly community.
- Connecting: in the Drupal community, there’s a saying: “Come for the code, stay for the community.” And, indeed, one of the indisputably best things about being an active part of an open-source community is all the connections and friendships that you forge, which is pretty much an irreplaceable experience.
- Visibility & reputation: being an active contributor will also help you distinguish yourself, gain visibility and build a reputation, either for your employer, for yourself individually, or most likely both.
- New/fresh perspective: we’ve already talked about the value an outside view can bring, and we’re bringing it up again as a more altruistic reason to get involved, as it’s aimed not toward your own personal growth, but the goals and interests of the software project.
- Play your part in software used by people across the world: finally, this one connects the personal with the altruistic reasons for contributing. Knowing that you contributed to a software product that’s benefiting the lives of people you have never and will never meet is one of the most powerful drives for getting involved.
Don’t let your lack of development expertise stop you from contributing to open source. Projects always need diverse skills and people for sustainable success, and you’re the only one who will be able to bring your skills and insights.
We hope this article was able to alleviate some of the hesitations around getting involved in open source projects and provide some motivation to get started more easily. There are a lot of ways to contribute. Just get in touch with a member or lead of the team you believe could benefit from your input and they’ll happily help guide you from there.