Open Source Software (OSS) is the future of software development. Existing tools being taken and modified into better ones leads to the evolution of powerful and reliable software. Open source provides the greatest support to software developers in the form of accessibility to existing software which has been developed, debugged, documented and vouched for by a dedicated developer community.
Imagine what the world would be like if Tim Berners-Lee had not shared HTML code development with the world.
Probably the World Wide Web might not have been the way we know it today. Such is the power of Open Source. Tech giants like Google, Microsoft and many others have used this shared repository of knowledge to build many of their outstanding products. Google Chromium, VLC media player, Mozilla Firefox, Linux, etc are a few of the numerous Open Source Softwares widely used by individuals and companies for different intents.
For example, Microsoft built its cloud-computing platform Azure on Linux. Google used its own Chromium project to create today’s most widely used cross-platform web browser Chrome.
If you aspire to be a part of a community that builds and maintains such valuable source codes which are accessible to every developer in the world, contribution to Open Source will provide you with the opportunity and means. From being able to assess your software development skills to receiving guidance to improvise, you can hone yourself into being a fine software engineer and be part of creating software that adds value to the industry and society. Additionally, if you are a job-seeker and such contributions appear on your resume, they demonstrate your expertise and passion for software development.
Now, if your fascination for exploration has manifested, let’s dive into the details you would need to start your journey into Open Source Contribution.
Open source, as the name suggests, is a model or mechanism of software development where projects or codes are publicly accessible for free. To make a contribution implies active participation and collaboration with a smart and generous community of developers in building or enhancing software projects.
This contribution can be done in various ways. The most common way is by writing code. As a programmer, you can create your own project or be part of others’ projects on any Open Source platform. These projects must have practical applications in personal lives or professional fields. If writing code is not your forte, there are many tasks for non-programmers as well.
It might seem to be daunting or tiresome at the beginning. However, your contribution does not have to be tedious or time-consuming. Open Source projects flourish because software engineers with different abilities and varying levels of commitment make an effort, maybe minuscule or substantial, to complete the projects. These efforts result in building software of high quality and efficiency.
Anyone who wants to offer their services for the betterment of the software community can contribute to Open Source. All you need is the willingness to collaborate and work with strangers who are equally or more enthusiastic about giving back to the community.
Initially, Open Source was mainly used by programmers to write and exchange codes intended for the use of software development for various projects, academic or professional. While some wrote original codes, others edited and improvised on it. The modified code was part of Open Source as well, with all of its transition history available for any developer who wanted it. The combined efforts of like-minded people resulted in upgraded software code which could then be used for building more innovative and profitable projects.
However, today, as the number of IT professionals who want to get involved and contribute to Open Source has considerably increased, it has expanded to so many more responsibilities. It’s not just about writing code anymore. You can contribute to any other process of project development work as well. When you start on any platform, you can post on their forums asking for non-programmer tasks for beginners or choose one yourself if you are sure. where to start with.
Here are some roles that you will come across:
Programming/Coding: Coding is the primary sector where most of the Open Source community contributes. Choose projects that are built on a programming language or software that you know. If you are into coding, look for the ones that require small bug fixes. There might also be certain small enhancements you can do. You can start small by working with other developers on their projects.
Testing: Checking the quality of code is as critical as writing it. Every piece of code needs to be verified and validated. By understanding the requirements of the project, you can help in preparing the test cases, building test data and testing the code.
Writing: Documentation of a project is vital for it to be usable and reusable for other developers. You can volunteer to write documents for a project or translate an existing document. Software Requirements Specification document (SRS), test cases, code version control, user manuals, etc are all integral parts of any project. You can start small by proofreading others’ work, moving on to writing documents for smaller projects gradually advancing to major ones.
Assisting with UI/UX design: More than often, an outsider’s perspective gives a lot of information regarding the practicality of interfaces of many software products. Developers of such products seek assistance from people who have not worked on that project to provide feedback and suggestions with respect to the User Experience or Interface that has been developed.
Building a network and sharing: One should never shy away from opportunities to learn more and gather knowledge from this community. You can attend presentations or simply meet face-to-face with other developers and build your network. Who knows, you might end up suggesting new ideas or features.
When you share your experience and learnings on social media, say by blogging or tweeting about them, you might be able to influence other developers to join the Open Source community.
There are a number of platforms that host open source projects. Some of them are:
First Timers Only
Open Source Friday
You can use the resources available on these and many other platforms to decide where to start from. They have step by step tutorials on how to get started on their platforms. Their repositories contain various new projects or tasks associated with existing projects which are dedicatedly assigned to newcomers only, should they choose to work on them.
You can save the repositories on your local machine and start practicing there. Select your programming language and project. Make changes to it and test before syncing it up with the servers. If you do not want to code, check for other tasks on the platform. There will be explicit requirements specified for volunteers for tasks like fixing compiler errors, UI enhancements, design suggestions, testing, documentation of existing code or projects.
First Timers Only provides specific projects for beginners only, to get a warm reception to the world of Open Source Contribution. First Contributions guides new developers through the workflow of contributing on GitHub through various efficient hands-on tutorials. These platforms are built specifically for newcomers with dedicated projects and hands-on tutorials taking you through project workflows on GitHub respectively. In CodeTriage, you can subscribe to a GitHub repository of your choice and get assigned with work on a project daily in your email.
The Free Code Camp platform on GitHub hosts a multitude of projects for all kinds of developers, beginners or experienced. You can choose from the already assigned tasks or make your own requests depending on what kind of work or project you want to be part of. There are links to articles about getting started with Open Source contributions in general, version control, experiences shared by other contributors, etc.
The reason is simple. To make better software with a group of people who think like you. Better software enhances the quality of the IT industry as a whole.
It can be undoubtedly said that adding value to the software developer community also upgrades your skillset. You gain knowledge shared by other like-minded developers from across the world. Since, majority of the global companies now use Open Source materials for corporate interests, they are well aware that the contributors have established themselves as meritorious developers. They consider you worthy and potential employees.
In addition to that, with so many different responsibilities available to work on, one gets the opportunity to venture out of their comfort zone and upgrade themselves in a different set of skills. This is also a fantastic way to gain real-world experience.
It’s imperative to remember that in this community, every contributor started out as a beginner. All you need to do is to start somewhere. You will have to keep learning, practicing and delivering, keeping your mind and work open to review, rectifying your mistakes and shortcomings, improvising every day, striving to get better results the next day. Someday, you will be able to make yourself capable of imparting your experience and wisdom while taking some newcomer under your wing.