Contributing to open source communities can be a rewarding way to learn, teach, and gain experience in just about any skill imaginable, including code.
But getting started, finding an open source project to contribute to, and understanding the etiquette can be a daunting thing when you’re starting out. So much so that an opensource.com survey of its readers found that for 56% of respondents, the biggest barrier to participation in open source was not knowing where to start, while 13% felt uncomfortable jumping in.
Does this sound like you? If so, this post is for you.
To help you learn how to be a respected open source citizen, I’ve put together this guide to participating in open source communities: what it is, some well-known (and loved!) examples, and how to get started contributing, along with tips on open source etiquette.
What Is Open Source?
“The term ‘open source’ refers to something people can modify and share because its design is publicly accessible.”
When applied to software, like WordPress, for example, open source is a method of software development that promotes transparency and collaboration. It means the software can be freely used, changed and shared (in modified or unmodified form) by anyone; you can view its source code, fix bugs, add new features, and make changes to the project.
By being open and freely available, open source enables and encourages collaboration and the development of technology and — according to Google — solves real world problems.
Examples of Popular, Well-Known Open Source Projects
One of the most famous examples of open source software is Linux, the Unix-like computer operating system. Linux has been around since 1991 when Linus Torvalds released the Linux kernel, an operating system kernel. It was originally developed for personal computers based on the Intel x86 architecture but has since been ported to more platforms than any other operating system. These days, you’ll find it in everything from cars to supercomputers and even home appliances. And because of the dominance of the Android operating system on smartphones, which is based on Linux, Linux has the largest installed base of all general-purpose operating systems in the world. Not bad for free, open source software.
MySQL is the most widely used database management system in the world and is the “M” in the hugely popular LAMP stack (Linux, Apache, MySQL, PHP). It’s used by popular content management systems, including WordPress, Joomla! and Drupal. It’s also used by some of the world’s biggest websites, including Google, Facebook, Twitter, PayPal, eBay and GitHub.
Apache is the most widely used free web server software in the world. Developed and maintained by the Apache Software Foundation, it runs on 67% of all web servers. According to Netcraft, Apache is used by 46% of all websites. In 2009 it passed a huge milestone, becoming the first web server to be used by more than 100 million websites.
Since Mozilla launched Firefox 1.0, the browser has claimed a decent chunk of the browser market from the previously dominant Internet Explorer. It was hugely successful when it was released in November 2004, achieving 60 million downloads within nine months. Firefox is now the second most popular browser behind Chrome. According to Mozilla, as of December 2014 there were half a billion Firefox users around the world.
Since its launch in 2004 as a fork of b2/cafelog, WordPress has become the most popular online content management system for websites. WordPress now powers 28% of all websites and has 57% of the CMS market share. WordPress is released under the GPLv2 license from the Free Software Foundation. Co-founder Matt Mullenweg is a strong proponent of open source and has been quoted many times for his strong stance. During an interview at WordCamp Europe in Vienna, Matt was asked about open source and replied:
“… Why WordPress gets hundreds and hundreds of contributions. Why it has out-innovated and out-succeeded competitors with literally billions of dollars spent on them, billions and billions of dollars. That’s to me the coolest thing about the web.”
Popular Open Source Projects at GitHub
GitHub is home to the largest open source community in the world, with millions of open source projects hosted on the web-based platform for working on software projects.
Here are some of the open source repositories on GitHub with the most open source contributors:
Font Awesome is a font and icon toolkit based on CSS and LESS. It currently has 20% market share among websites that use third-party font scripts on their platform, ranking second after Google Fonts.
Docker / Moby
Moby is an open framework created by Docker to assemble specialized container systems without reinventing the wheel. It provides a “Lego set” of dozens of standard components and a framework for assembling them into custom platforms. Docker is a platform for developers and sysadmins to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud.
Facebook / React Native
Microsoft / Visual Studio Code
Visual Studio Code is a code editor with support for development operations like debugging, task running and version control.
Atom is a popular hackable text editor created by GitHub.
freeCodeCamp is an open source community that helps you learn to code. It offers self-paced coding challenges, build projects, and you can earn certificates.
For a visual look at the most popular open source project on GitHub in each country, freeCodeCamp has published a series of maps based on GitHub’s 2016 data.
Getting Involved in the Open Source Community — and Being a Good Citizen
So why get involved in open source? Aside from obvious altruism and the fact you could help develop software that benefits people all over the world, there are some more — let’s face it — selfish reasons why you might want to contribute to an open source project.
Improve Your Skills
From contributing code to designing, writing or organizing events, there’s some way you can help out an open source project. It also goes without saying that putting your talents to good use will help you sharpen your skills. Writing code is the most popular way to contribute to software projects, as GitHub makes plain as day, but it takes all sorts of skills to ensure the success of a software project.
What better way to meet people with similar interest than by contributing to a project you’re passionate about. Take WordPress, for example. The WordPress community has fostered many lifelong friendships, whether it’s chatting online on Slack or meeting up at WordCamps. Just watch WordPress chatter on Twitter or the WordPress Slack group for evidence of the friendships that have developed over the years.
Working on collaborative projects provides an ideal opportunity to ask others with better skills for help and advice. And when you become more experienced, you can help teach others.
Build Your Portfolio and Reputation
Since open source work is public, all of the work you create and contribute is available for all the world to see, which means you can display in your portfolio as proof of what you can do. This is particularly useful if you are starting out in your chosen field and haven’t yet had completed enough professional work to fill out your portfolio.
Getting Started Contributing to an Open Source Project
I like this advice from opensource.guide:
“Contributing to open source happens at all levels, across projects. You don’t need to overthink what exactly your first contribution will be, or how it will look… Open source isn’t an exclusive club; it’s made by people just like you. ‘Open source’ is just a fancy term for treating the world’s problems as fixable.”
The best way to get started is to think about the kinds of open source projects you already use (and enjoy using!). Now that you’ve got some projects in mind, think back to when you’ve used those projects. Have you ever thought that something could be improved or changed?
If you’ve ever come across a feature in a software project that’s not working right or could be better, or even just a typo, now’s the time to help fix it and contribute!
A study of casual contributors found that:
“28% of casual contributions to open source are documentation, such as a typo fix, reformatting, or writing a translation.”
There are a bunch of resources to help first-time contributors and even veterans find new projects:
Open Source Etiquette
Once you’ve found an open source project you like, you’re ready to get started! Whether you want to help out by contributing code or would like to help organize a community event, here are a few rules around etiquette to keep in mind.
Contributing to an open source community involves working with others collaboratively and, like all team projects, effective communication is key. Don’t be afraid to ask questions and reach out to other people for help. It’s okay not to know things, especially if you’re a first-timer, but show that you tried and did your homework first.
Always Be Respectful
Yes, this is obvious and basic but it’s worth highlighting because it’s so easily forgotten in the digital world. Treat others the way you want to be treated. Don’t forget there’s a person behind the screen. And keep your comments positive, honest and polite.
You’ll be working with people from all over the world and context gets lost across languages, cultures, geographies, and time zones. Also, written communication online makes it harder to convey tone. It’s best to always assume good intentions but ask for more context if you’re confused and be polite when saying ‘no’ to an idea.
Whether you’re a first-timer or a veteran, go out of your way to help others out. Whether it’s figuring out some tricky code, helping someone edit documentation, or finding someone with more knowledge to help another, there’s always something you can do to help encourage goodwill in the open source community.
Give Credit Where Credit’s Due
Always give others credit for their work because they no doubt work hard on their contribution. Kudos is currency in the open source community — volunteer work isn’t exactly lucrative! And when someone goes out of their way to help you, acknowledge them and pay it forward. Be kind, give back, and it will come back to you in spades.
Get Involved Offline
Open source isn’t all about sitting at your computer typing code or testing software for bugs. Many open source projects have IRL opportunities for conferences and meetups. WordPress, for example, has WordCamps all over the world, even more Meetup groups, and conferences like Pagely’s annual PressNomics, which caters to businesses that power the WordPress economy. So get out from behind your computer and meet the people you talk to online!
Contributing to Open Source is Rewarding
Getting involved in open source and helping out communities that create the software you use everyday, whether it’s a text editor like Atom or a CMS like WordPress, will not only help you improve your own skills but could land you new friends and help you gain experience, too.
This article is just the tip of the iceberg. I’d encourage you to do some further reading and learn more about how you can get involved in open source before diving in:
- Open Source Guides (Opensource.guides)
- How to Start Contributing to Open Source (Developer.com)
- A Guide to Contributing to Open Source (freeCodeCamp)
Good luck getting involved in contributing to open source — you’ll be all the better for it!