It is high time to give back to the people who enable you to use the Internet!
So, let’s have a closer look at what open source means and what the pros and cons are for working with open source projects.
What Is Open Source?
The term “open source” was coined within the software development industry and refers to something that anyone can inspect, modify, and share. It represents a specific approach to creating computer programs which celebrates the values of collaboration, transparency, and community-oriented development.
Open source code is written by developers and for developers.
To protect all the parties engaged in open source, the project owner can use a Creative Commons license. A Creative Commons (CC) license enables everyone to share, use, and build upon your work.
Open source software is usually a free software product, where developers have access to the source code. They can enhance the program’s performance, add some features, and fix errors. Some examples of such software are LibreOffice, Mozilla Firefox, and Chromium.
By contrast, there is proprietary software, also called “closed source software”. The source code of such a program can be inspected or altered only by its owners. Some examples of proprietary software include some products of Microsoft, Adobe, or Apple.
Some companies see open source software as the norm, while others prefer developing closed source software. And to be sure, the open source model has its pros and cons.
What Is Great About Developing Open Source Software?
If I say that open source developers are driven by altruism and the desire to help others, a lot of people reading this article may smile in disbelief. But this intrinsic motivation is the primary reason most people work on open source projects.
Don't underestimate the importance of personal benefits – those feelings of being helpful and self-accomplished.
Scientists and doctors share their experience by writing scholarly articles and participating in scientific conferences. UI/UX designers share their experience on Behance or Dribbble. Writers print their books or share them via online platforms. Musicians and moviemakers share their work with the world via different streaming services. Why would software developers be any different and want to miss their opportunity to get recognition?
When working on or running open source projects, you can get recognition from the developer community in a number of ways, such as creating a great GitHub-profile and participating in events like Hacktoberfest.
You might also get discounts, free admissions to events, and a well-developed infrastructure to run your projects. Not only does working on open source projects save you money, but also it inspires you to use all the greatest tools available to you in your own projects.
If you or your company actively participate in the open source community, you can earn a great reputation. This way, if you are an individual or self-employed developer, it will be easier for you to find a job as a freelancer or a full-time employee. If you represent a software development company, it will be easier for you to find people willing to work for you, partners willing to cooperate, and clients willing to request your professional services.
This is why developing open source software creates a perfect advertising opportunity – a win-win situation both for developers and development agencies.
Sense of value
No need to hide the truth: job burnout plagues developers’ work and software vendors’ HR strategies. If you are a company owner, by motivating your employees to participate in open source development, you show them that their work has value. Not only will they be working on your commercial projects but they will also be providing value to the wider developer community by working on open source projects.
By helping your developers achieve these feelings of purpose and value, you keep them interested in working with you.
The same is true if you are a self-employed developer. Engaging in open source software development will make your work meaningful, and you will not grow to hate it as time passes.
Open source code is often higher quality. A piece of software created by a team of developers can be lower quality than that developed by thousands of developers from all over the world with experience in different technologies, industries, and projects. And bugs in open source software are identified very quickly as the code is being constantly reviewed by multiple developers.
Even code written by a single developer is often higher quality if it is open sourced. If you write code that only you or your close colleagues will see, you may not care much about code style. But if you write code that everyone can see, you will do all you can not to look like a code monkey. Reviews, contributions, and refactoring from the community are all helpful here.
You should use open source software for application development because it is more secure. The community promptly finds and reports security flaws which the software owner usually fixes right away.
In turn, if there is a security flaw in a proprietary software product, nobody is going to know until someone falls victim to the threat it poses.
Also, open sourced products cannot misuse and abuse users’ data intentionally like some proprietary software companies do. The community would discover this abuse, and the reputation of the software and its owner would be ruined.
Developing open source software usually means you are developing an easily customizable software. Since the source code is open, a developer can easily add changes to the functionality of the interface.
For instance, Apache CloudStack is an open source software that facilitates cloud computing. Another example is the open sourced platform Botpress, which allows developers to easily create custom chatbots. KeenEthics developers who are Botpress contributors feel delighted when they're able to make somebody else’s life simpler.
Open source is about gaining and sharing experience. Sometimes, you see that an open source software project is lacking something and you fill this gap by contributing your code. Other times, you understand that you could do something better. Open source helps you deal with boredom and earn recognition from peers.
What Is NOT Great About Developing Open Source Software?
Miscommunication and misunderstandings
You can expect requests to improve your product or to help with something, but you might have to deal with different kinds of people. Some may expect you to react to their requests 24/7. Others might open PRs improving your product, but you will have to explain the rules on how things should be prepared and how they get merged into the mainline.
In the end, there is no guarantee that the community contributions will not turn out to be of lower quality. This is why there is a high chance that you end up refactoring someone's code and leaving people disappointed by not merging their changes.
The threat to the core business value
You should never open source anything that has a core value to your business. If there is a trade secret – an idea or a way of its implementation that makes your business unique, you should not open source it so that it does not become available for your competitors. Yet, if you have ideas and tools that can be used by the public without any loss for your business – open source them.
Why Open Source Is the Right Thing to Do
If you are an Internet user (and you definitely are), you inevitably use an unbelievable amount of free software open source. The Internet inventors designed a huge share of it as open source projects, and anyone using it today reaps the fruits of their effort. For instance, cloud computing is largely based on open source contributions.
Besides, a survey by Tidelift and The New Stack states that 84 percent of software developers use open source in their professional routine. Making use of somebody else’s experience and knowledge, why don’t you share yours?
If we enjoy the benefits of open source, giving back to the community is the right thing to do.
Participate in Open Source Development!
How to start? Open your GitHub repository to the public and tell the world about it via your blog, social media, or developer forums. Register on Hacker News as there are a lot of open source contributors hanging out.
Open sourcing makes you grow faster as a developer and brings a useful result to the entire community. At the same time, you should try not to harm the community that gives you all these great open source things. Contribute wisely and help others by answering questions you can help with.
Do you have an idea for a project?
I would also like to say thank you to Alex Pletnov, CTO @ KeenEthics, for inspiring and contributing to the article.
If you have enjoyed the article, you should definitely read another one: Agile Testing: How to Ensure High Quality Software.