By: Glen Semino, Senior QA EngineerThis is the first in a series of Valor Water Analytics blog posts about open source software. In April, our team held an internal hackathon to explore what is open source software and how one can either contribute to or create their own open source project. Inspired by the hackathon, this article will take you through the steps to start your own open source journey. By the end of it, you will have a good understanding of what open source software is, what things to consider before starting your journey, where and how to start, how to continue your journey and lastly how to get others involved in the open source community
What Exactly is Open Source Software?Let’s first define what open source is. According to Wikipedia, open source software is defined as a type of computer software in which source code is released under a license in which the copyright holder grants users the right to study, change, and distribute the software to anyone and for any purpose. Open source software may be developed in a collaborative public manner. To summarize, open source software means the software can be used, modified and even shared with anyone and for any reason as well as developed with others. Now that we know the full definition of open source software we can better understand why some companies and individuals use open source software.Why Companies and Individuals Use Open Source Software Using open source software has quite a lot of benefits for companies and individuals. A few of the benefits of using open source software are:Open source software can take care of some functionality in a companies or individuals application at little to no costIf you use open source software in your application, you have the ability to modify the software to fit your needsAs a company, if you use open source and contribute back to the open source community, it can help you to spread the word about your companyOften times open source software that is backed by a large community is well documented and supportedAs an individual or company if you use open source software you can help improve the open source software over timeThese are just some of the advantages of using open source software. Our team uses open source software to help us accomplish a variety of development related tasks. Aside from using open source software there are also benefits to contributing to open source projects. Reasons to Contribute to Open Source ProjectsContributing to open source projects can help you in many ways. You can sharpen your skills in a programming language that you want to learn or become better at a programming language that you already know. By helping a community of developers improve/create a piece of open source software you will gain a sense of accomplishment. It can inspire you to start your very own open source project from scratch or help an open source community grow. Overall you will gain a lot in terms of your own knowledge and maybe even grow your own network within the open source community.
Things to Think About When Starting your Open Source JourneyNow that you know what open source software is, the benefits of using and contributing to open source software, you are almost ready to start your journey. As with many good journeys, some pre-planning will make the results that much better. There are various things you will want to consider before starting which are:What type of project do you want to contribute to?Projects might have different goals such as growing a new programming language or toolProjects that help improve another existing open source projectProjects with already established developer communitiesProjects that are just starting and need more contributorsDo you want to contribute with code or another way?Besides programming you can contribute to a project in other ways such as moderating the forums, reviewing code contributions or helping build the developer community to name a fewConsider what programming languages the project usesYou can pick a project with a programming language you know or want to learnYou can pick a project that uses an emerging programming languageUnderstanding open source licensesTake a look at this concise guide to understand how licenses work and how they could affect contributing to an open source projectHow popular of a project should you choose?Less popular projects you could help grow but might be less activeMore popular projects maybe harder to contribute to in the beginning but have a larger communityOnce you have thought about and considered the above you will be ready to start your open source journey.In conclusion, you now know what open source software is, why individuals and companies use open source software, reasons for contributing to open source projects and things to consider before starting your open source journey. With this knowledge in hand you will be ready to really start your open source journey. In the future we will follow up with additional articles discussing how to start your open source journey and getting to know an open source project. Helpful Links:Most common programming languages used in open source projects:https://www.techrepublic.com/article/the-10-programming-languages-developers-use-most-in-open-source-projects/Ways to contribute to open source projects:https://rubygarage.org/blog/how-contribute-to-open-source-projectsGuides on everything related to open source projects:https://opensource.guide/