I got a chance to deeply learn about OSS (Open Source Software) while I was doing my Master's degree in 2016. I've been researching open source development since then, and I fell in love with its collaborative nature and the way of writing and using software. Since then, I've been advocating for open source projects, and supporting the OSS community in many different ways. What strikes me the most about open source development is that its collaborative nature allows innovation at a fast pace and I believe that it can result in many future discoveries.
Although open source is very popular now, it has been defined as an actual term in the late 70's and early 80's. For those who are not familiar with the term, open source is a technology development and distribution model, where everything is done in public - from setting a roadmap to develop new features, fix bugs, code review to source code, to name a few. Normally, there is a governing board, usually formed by hobbyists, a company, or a foundation, that publicly manages the project.
Open source is everywhere! From the smallest embedded systems to the computers, cellphones, and infrastructure of the companies we engage with every day. When you stream Netflix on your home, for example, you fire up Amazon web services, most of which run on Linux, one of the biggest open source projects. If you have an Android cellphone, then you use Linux in your everyday life. Despite that, many applications in the next generation of technology are open source. For example, Google open sourced its artificial intelligence engine called TensorFlow in 2015.
Surprisingly, open source is now embraced by big tech companies. For example, IBM plans to pay $34 billion for the open source company Red Hat, and Microsoft paid $7.5 billion to acquire the code hosting and collaboration platform GitHub. Finally, Walmart has just released its own open source software [1].
So, at this point, you might be asking yourself why would a company open source their projects?
For a lot of reasons. Let's take the aforementioned Tensorflow as an example. When Google open sourced Tensorflow, it not only enabled companies, researchers, and hobbyists to build applications using the technology the tech giant uses to do translation tasks, for example, but also to have outside developers to make their software better and adapt it to each person's needs. Currently, more than 1,300 developers outside Google have worked on TensorFlow.
And in this case, what is the advantage of open sourcing Tensorflow? It's pretty simple! By open sourcing the tool, Google helped TensorFlow to become one of the standard frameworks for developing AI applications, which can boost other tech fields that depend on AI. Additionally, open source serves as valuable marketing. After Google has open sourced Tensorflow, Dropbox and Airbnb have used TensorFlow to recognize text in documents and photographs.
Another example is the Chinese tech giant Tencent that has open sourced its microservices framework TARS. TARS now is an open source foundation and it is helping to build a strong community of microservice open source software. After TARS has become open source, not only has TARS grown in terms of the number of functionalities developed by developers all over the world, but it has also helped the project to attract and retain technical talent.
I hope that at this stage I have convinced you the many advantages when open sourcing a software project. So, let's take a look at the main reasons why you should either open source your project, use open source software or contribute to open source development.
Vendor neutrality
Open source software enables vendor neutrality. That means that no matter if you are a user, a company, or a country, you are not locked in to another company's technical stack, road map or licensing agreements [2]. Soon in the future, chip designers won't be locked into Intel or ARM with RISC-V. Thanks to the OpenRAN project, 5G network builders won't be forced to buy from Huawei, Nokia, or Ericsson, for example [2].
Security
You might be thinking that by open sourcing a project, it becomes more vulnerable to attacks. The fact is that when exposing the codebase publicly, security experts have easy access to test it and improve the technology security. The operating system Linux and the cloud container orchestration system Kubernetes are good examples for security in open source.
Collaboration & Sharing Leads to Innovation
Community is the core of open source development. Contributing in a diverse and innovative environment helps to create an innovative organization for three reasons. First, developers will need to work with other people, explain how things work as well as ask for help (especially if you are a newcomer in the community :-) ). The acts of learning and teaching can bring a lot to everyone involved [3]. Second, open source communities have people with different skills, experiences, nationalities, and gender. By valuing an inclusive environment and having a lot of diversity, teams may become more innovative. Finally, open source has practices around transparency, reduction in hierarchy, and open communication, which encourage motivation and an innovative mindset.
To conclude, open source development depends on a passionate community of developers. To succeed in open source, I believe that there must be a continued collaboration between users, developers, and companies. Although open source development might have its issues (as every thing in life), the pros are more than the cons. Diverse team builds better projects, and better software is what open source is about.
About the author:
Isabella Ferreira is ambassador at TARS Foundation, a cloud-native open-source microservice foundation under the Linux Foundation.
References:
[1] https://www.wired.com/story/wired-guide-open-source-software/
[2] https://www.wired.com/story/opinon-the-future-of-american-industry-depends-on-open-source-tech/
[3] https://opensource.guide/how-to-contribute/