Open Source 101: What is it?
Open source projects are everywhere, on the web, on your computer, and on your mobile phone. In this article, we'll take a look at:
- the definition of open source
- popular examples of open source projects
- and how to get involved in an open source project
1. What is Open Source Software?
Open source software (OSS) is a type of computer software in which the source code is made publicly available and licensed in such a way that anyone can make changes and redistribute the code or executable.
Even though open source software is mostly developed and maintained by a group of people, anyone can access the code and play around with it if they want to.
I've contributed to several open source projects and contributing to an open source project is a great way to become a better developer and give back to the community. You learn from other people's code and learn to write better code yourself. Seeing an open source project you've worked on with other developers come together is one of the most rewarding feelings I've experienced as a developer.
Let's start by taking a look at some popular examples of open source software. You may be surprised by the sheer volume of open source projects and also by some of the companies behind these projects, like Google and Automattic.
2. Popular Examples
There are millions of open source projects available. Below is a list of some very popular and notable examples.
- WordPress, one of the most popular content management system on the web, is used by millions of people.
- PHP is the most popular web programming language on the web, powering Facebook and more than 80% of the web.
- Audacity is a free, easy to use, multi-track audio editor and recorder.
- OpenOffice is a free alternative to Microsoft Office.
- The Android Open Source Project is the official mobile operating system as an open source project.
- Firefox OS is the mobile operating system developed and maintained by Mozilla.
3. How It Works
An open source project typically involves three stages. Let's take a quick look at each stage.
Stage 1: Contributing
If you're wanting to get involved with an open source project, you could begin by contacting the organization behind the software itself and asking what opportunities they have going. This method will work well for smaller-scale projects, or startups, however, you should be aware that the majority of open source projects will not pay for your work and that it's done on a voluntary basis.
In the past, when I've worked on open source projects, I've had to wait weeks (and in one case, two months) before I received a response, but you should sit in there and wait for that all important confirmation email, and then you're good to go.
Alternatively, for larger-scale projects, you can simply start coding and forking your own version of the software. You should be wary though that if lots of people are working on the same project as you, that your hard work may not be included in the final release of the product, so brace yourself for rejection.
If you're looking for inspiration on a project to start working on, there's always lots of interesting projects to work on, especially if you look on sites like GitHub, SourceForge, and Google Code.
Before you begin actually working on the project, you should familiarize yourself with how the project is being run and and how its management is structured so you know who to go to if you require assistance with something. Also, it's a good idea to check you know exactly what you're doing before you begin, as you either don't want to mess things up, or waste your time working on a feature that someone else is already working on, for example.
Stage 2: Committing
When you've made the changes you want or implemented the feature you had in mind, you commit your changes to the main project and send them to the maintainers of the project for review.
This may be done using GitHub or on a platform like SourceForge. Your changes will usually receive a yes or a no from the organization or the team in charge of the project, indicating whether or not your changes are going to be included in the project. If they are, then it's time for the distribution stage. If not, then it's back to the contribution stage.
Stage 3: Distributing
Possibly the most complex stage of all is the distribution of an open source project. Here, the final version is committed to the repository where the project has been hosted and live versions for non-developers are updated. At this point, the organization and developers say good bye to their hard work and hand it over to the public for general use, and of course, critique.
I hope you now feel more confident about open source development and how you can get involved with a project yourself. Open source can be really interesting, but also very frustrating at times. The key thing to keep in mind, though, is to keep going and to not give up when you hit an obstacle.
In the next part of this series, we'll take a look at licensing for open source projects and what some of the available options are for developers If you have any questions, I'd be happy to answer them for you in the comments below.