Open source projects are collaborative efforts, and are always looking for individuals to help contribute to their activities. While coding is required to create an open source effort and although code is critical, it’s not the only way to get involved. Not sure how you can help out your favorite project? Here are some ideas:
When many people think about getting involved in open source projects, this probably is the first thing that comes to mind. This method of involvement consists of writing code that is part of the main branch of a project. It’s likely the most widely recognized way to get involved, though far from the only way. Projects such as WordPress®, Drupal™, Joomla!® and OpenStack™ all have a cadre of core developers who are contributing to each project’s forward movement.
Improvements and pull requests
Perhaps you see an opportunity to improve or enhance a core component of a project. In this case, the most common approach is to fork the project to a personal code repository and make and test your enhancements. At this point, you can submit a pull request to the core contributors of the project, asking them to integrate your improvements into the main code base. If the core team agrees, they will accept your pull request and integrate your improvements into the main code line. Massive credibility points for this one.
Well-architected projects are built to be extensible. This means that the core system can have new features added in a predictable way, oftentimes via add-on components such as plugins and extensions. By creating or contributing to components in the ecosystem of those projects, you are adding value to the core project by extending its capabilities in ways the original core developers might not have ever imagined. For example, the P3 plugin (Plugin Performance Profiler) for WordPress makes managing self-hosted WordPress easier by analyzing the performance impact of all the plugins in your installation.
My buddy John has a great rant about documentation and development that he wrote a few years ago. (John has a lot of good rants, btw.)
“It was a miserable, gray, slushy, midwinter day in 2001 or 2002. I had been working on a truly gruesome coding project, fixing someone else’s disaster under immense time pressure during a complex integration of two businesses. We had a hard deadline approaching and dozens of people were blocked by this project’s being incomplete. The code I’d inherited was so badly written and impenetrable that I resorted to printing a big chunk of it out on 8.5” x 11” paper, maybe 20 pages’ worth, and taping them together top-to-bottom into one long vertical sheet. Obviously there was no continuous feed printer around; this might have been a case where old technology worked better than new. After creating this 20ish foot monstrosity and laying it out on the floor, my next step was to crawl along it with various colored highlighter pens to connect the curly braces whose mates were several feet away. It was the only way I could think of to make sense of the previous coder’s slop. My colleagues all got a good laugh at my expense; my manager shook his head in dismay as I sat on the floor coloring like a preschooler.” – John Scholvin
Contributing to the documentation of a project is instrumental in helping future developers and maintainers of the project. It will also prevent folks like John from having to color on the floor like a preschooler in the future.
Global open source projects can positively affect millions of people. By their global nature, there are myriad configurations and combinations of browsers, operating systems, mobile devices and other platforms, not to mention languages. Volunteering as a tester increases the breadth of testing coverage for the project, and helps to identify corner cases and situations that the core developers might have missed.
Speaking of languages, international translation is a huge opportunity to get involved with open source projects. If you have a knack for words, especially for a language other than English, there is a project out there that can use your assistance.
The best project in the world can’t achieve its maximum potential if people don’t know about it. Contributing to the marketing efforts of a project helps to spread the word, and can be done from almost anywhere. Richard P. Gabriel asks the key question, “what is your project’s story?” He continues:
“Creating a good story is hard work. The story needs to express the shared purpose behind your project. It will attract people who share this vision and are willing to work to make it real. Moreover, the story should infuse all aspects of the project so that it provides guidance whenever a strategic decision must be made.”
Words matter. The story matters, even in code.
Volunteers are regularly needed for events. This can include everything from event setup, liveblogging, check-in and badge handout and even breakdown after the event. Volunteering is an easy way to help out at open source project events, even if you’re not a developer.
Ready to get involved? Here are a few projects we wholeheartedly support: