Thank you to Oleg Romanyuk for coauthoring this article.
Years ago, when we first considered the idea of setting up a software development company, we knew for sure why we would do it. Most tech companies were profit-driven and isolated from the outer world. We strove to change this tendency and to create an ethical company.
Yet, ethics is much more than eco-activism and honest attitude to employees and partners. One of the essential elements of our ethical dimension is open source software development.
Many developers are fond of open source, and that is for a reason: they use it every day to speed up their work. There are a lot of successful examples of open source software solutions, such as Linux – an operating system, or React – a JS library. It is often well-crafted, and it is a pleasure to work with that kind of high-quality code.
It is an honor to be a contributor of some widely-used open source software project. At KeenEthics, we support a widely-used Botpress open source chatbots framework. We are also active GitHub contributors. We open source even the project of our official company website. Besides, we conduct a local Hacktoberfest event, the idea of which is to support the open source community of developers.
So, let’s have a closer look at what is open source and what is good or bad about it.
What Is Open Source?
The term “open source” was coined within the software development industry denoting something that the public can inspect, modify, and share. It is 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 somebody’s 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. The 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. The 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. Surely, 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. Yet, the intrinsic motivation is the primary reason for people to engage in this activity. You should not underestimate the importance of personal benefits – the feeling of being helpful and self-accomplished.
Scientists and doctors share their experience by writing scholar 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 different and miss their opportunity to get recognition?
When running open source projects, you get quite a few community recognition benefits, such as a great GitHub-profile and participation in events like Hacktoberfest. You might also get discounts, free admissions to events, and a well-developed infrastructure to run your projects. Not only it saves your money, but also it inspires you to use all the greatest tools in your development.
If you or your company actively participate in the life of the open source community, you earn a great reputation. This way, if you a sole 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 do they work on some commercial projects but also they provide value to the wide developer community by working on open source projects. By granting your developers the feelings of sense and value, you keep them interested in working with you. The same is if you are a developer. Engaging in open source software development process will make your work meaningful, and you will not grow to hate it with the passing of time.
The open source code is alleged to be of a higher quality. A piece of software created by a team of developers definitely loses in quality to the piece of software developed by thousands of developers from all over the world with experience in different technologies, industries, and projects. Furthermore, bugs in open source software are identified very soon as the code is being constantly reviewed by multiple developers.
Even the code written by a single developer is promised to be of a higher quality if it is open sourced. If you write a code that only you or your close colleagues will see, you may not care much about code style. If you write a code that everyone will be able to see, you will do all you can not to look like a code monkey. What may also help here is the fact that you get reviews, contributions, and refactoring from the community.
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 product owner has to fix in order not to face public dissatisfaction. In turn, if there is a security flaw in a proprietary software product, nobody is going to know until someone falls victim to this threat. Also, open sourced products cannot misuse and abuse users’ data intentionally like some proprietary software does. The community will discover it inevitably, and the reputation of the software and its owner will be ruined.
Developing open source software is developing an easily customizable software. While 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, with the help of which developers can easily create custom chatbots. KeenEthics developers as Botpress contributors feel delighted for making 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.Sergey Gornostaev Full-Stack Developer
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. Eventually, 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.