Open Source GeoDev: Why should you care to work on Open Source projects!
The Power of Open Source
In December last year, WIRED ran a cover story titled “Open Source Software Went Nuclear This Year”, ending the article with a powerful quote that will resonate in the years to come –
But if there’s one thing we learned in 2015, it’s that we shouldn’t underestimate the power of open source.
Open Source has come a long way since the beginning of Linux. Today most of the big names in the Tech industry have open-sourced many of their libraries. This phenomenon isn’t restricted to the Googles and Facebooks of the tech world, even startups have embraced open source and have developed interesting business models to grow their companies.
How does all of this relate to geo?
By the day, GIS is becoming more open source. Organizations such as OSGEO helped lead the way for robust tools built on open standards, which later allowed for cloud-based tools such as those built by Mapbox, CartoDB, and Mapzen to flourish.
The most exciting startups in the Spatial industry today have open-sourced many of their libraries not only as a means of showcasing their abilities but as a means of accelerating innovation at their organizations. Many open source tools are built to be extensible so that projects don’t have to constantly reinvent the wheel.
Why working on Open Source makes sense!
Contributing to open source projects is a great way to learn new skills and communicate with a community of people building projects that often have a global scope.
The best thing about working on Open Source projects is the freedom (and opportunity) to contribute to something that you believe in and think is going to be helpful to someone, somewhere.
Take PetaJakarta for example, the Twitter-based flood reporting platform is based on the open source software – CogniCity and has been a resounding success in helping the citizens of Jakarta. Another great example is the crowd-sourced flood map of Chennai that was built using open-source tools in a matter of hours to enable the people of Chennai to understand which areas need their immediate help.
In addition to these, it’s a great way to showcase your commitment to learning new things (and improve your programming skills). It’s a great way to gain attention of a company! The chances of being noticed are probably much higher if you fork a repo of the company and work on a few features rather than just sending your resume to a company via the application form online.
Alright, how do we do it?
As most open source projects are now hosted on GitHub, learning git and GitHub are an essential first step. Follow these (link) instructions to get started with these tools. The first steps are getting git installed on your computer.
As far as committing to projects, there are two main ways:
1. Finding bugs, request features, etc. and reporting an issue for a repository (https://guides.github.com/features/issues/). First search to see if your issue is unique to make sure you don’t replicate it. If it isn’t unique, chime in about what you’re seeing.
- Asking the core developers of a project if there are any fixes that can be contributed to. Starting with easy ones is a great way to learn the structure of the project and see who else is involved. Simple things like typo-fixes in docs is another easy way to get started. Small things can go really far when contributing to open source.
If you know what you want to contribute already, the basic workflow is like this:
- Forking a repo you’re interested in making changes to
- Creating a branch
- Making the changes you want/need to make
- Opening a pull request to have the changes merged with the main branch
Many projects have a directory of examples that will oftentimes serve as a starting point for building new applications.
If you’re not used to the command line, the barrier may seem steep. But once you get a handle of your terminal and learn a few git-specific keywords, you can start pull-requesting everything from trivial spelling errors in documentation to altering whole project frameworks. It’s an enthralling experience.
If not for anything else, give Open Source a shot just for sake of experiencing how software collaboration works on a global scale where the community enforces the rules and there is no central nervous system to regulate everything. After all It’s the software development equivalent of Wikipedia but only better 😉
Credits:
The article is the result of collaborative effort of myself and Andy Eschbacher, Map Scientist at CartoDB. We would be delighted to have your comments, feedbacks and ideas about the article.