When building technology, one never starts from scratch. Especially in the modern age, all new tech is built on a mountain of pre-existing technology – modern computer hardware, mobile phones, programming languages, TCP/IP, the web, email, SMS, etc. Technology companies and programmers are largely synthesizers – we take many disparate existing technologies and combine them in a new way to create something entirely new, or to improve the experience of something that already existed.

As such, one is constantly faced with the decision of what technology to use in the synthesis of a new product. There are often many viable and competing options for a single subsystem, and it’s up to the company and developers to decide what is best. In the case one is faced with the decision to use a closed source subsystem vs. an open source version, what should one do? In this article, we’ll take a look at that question from the side of open source, and explain why open source is often the better option for privacy, resiliency, customizability, and talent acquisition.

What is Open Source? What is Closed Source?

Open Source Software (OSS) is a software system in which the public is given access to the source code of a software system. Programmers can read or change the code as they wish.

Closed source software is software systems in which the public does not have access, or has highly limited access, to the source code of a software system. Closed source systems don’t allow any programmer access to read and change code as they wish, they only grant this right to programmers connected with their organization.

Privacy

As a business in the information age, we probably don’t need to explain why privacy is important. If you handle **any** kind of sensitive data – emails, names, messages, sensors, images, etc. – then you need to ensure that you are handling, transmitting, processing, and storing that data in a way that respects users’ privacy. This is important on many levels – leaking information can hurt the trust of your business, cause users to switch to competitors, and, worst of all, negatively affect the lives of many people and their families.

Privacy often involves trust. When your users utilize any kind of system that is not fully auditable by them, they are putting their trust in you – trusting you will properly handle their data and make sure that it doesn’t fall into anyone else’s hands. This trust is so important, and consumers don’t quickly restore their trust after it’s broken.

You, as a business, also place trust in others. Every closed-source service, API, server provider, etc. that touches your users’ data is another avenue in which data can be mishandled. We’ve seen, in recent years, a number of blunders from many of the biggest technology companies in data handling. These blunders are so important and devastating often because of their scale – as large-scale service providers, they are a funnel through which millions of other smaller businesses’ data flows.

When a service you use is closed source, even if it’s running on your own servers, there is always the possibility of data being handled in a way that does not align with your and your users’ values. Service providers may store data they shouldn’t, “phone home” when they weren’t expected to, etc., and the closed-source nature of their software means it’s often impossible to know that this is going on. On the other hand, open-source code is open for your engineering and product teams to review exactly what it’s doing at all times. You can compile the code from the source to ensure that the program you’re getting is exactly what it claims to be. This truth about the open source can increase your confidence in the privacy-preserving nature of the software you use.

Now, it’s worth pointing out that closed source isn’t always bad and isn’t a privacy violation every time closed source and proprietary code and services are used. Closed source is an important part of the technology ecosystem, and we don’t expect that to change. We simply are pointing out the privacy benefits of open source systems and encouraging you to explore the open source options, especially when privacy is critical.

Resiliency

In software systems (and engineering in general), there are always bugs. There’s always an edge case that the creators didn’t think about, extreme cases, or totally mundane things that just break and were missed. The lifecycle of a software system necessarily includes the introduction of new features, with every change introducing new avenues for bugs to find their way into the system. As such, the lifecycle of a software system also necessarily includes the discovery of new bugs by testers and users, bug fixes, continuous testing, and repeat.

Linus’s law, coined by ESR and named after Linux creator Linus Torvalds, is the assertion that “given enough eyeballs, all bugs are shallow“. Wikipedia further clarifies this law by saying “Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.” This second elucidation is important as it points out that a large testing base is just as important as a large developer base – identification of bugs is just as important as fixing bugs, and a large number of users who have full access to use the software is the best way to identify bugs quickly.

Closed-source software has a major weakness in this regard. As we pointed out, all software systems will have bugs, whether open-source or closed-source. Closed source systems are built from code that is only available, visible, editable, etc. by a limited size cohort of engineers within a single company. The “number of eyeballs” in terms of both developers and testers is therefore low relative to the size of many open-source communities. Thus, according to Linus’s law, open-source software projects get bugs identified faster and solved better.

Don’t just take it from us – and Linus – take it from third-party reviewers who asses this stuff for a living. The Coverity Scan Open Source Report makes it its job to assess code bases for resiliency and reliability by looking at how many bugs appear per 1,000 lines of code. They have found that the density of code defects is significantly smaller in Open Source Software than in proprietary systems.

Why does this matter to you? Because fewer bugs lead to a better experience for your users and your company. Bugs can increase downtime, which costs money and man-hours to fix. Bugs can give a bad user experience which causes your customers to switch to competitors. Bugs can hide in the background, causing your service to be slower or less reliable than it otherwise could be. At every turn, bugs can bite into the success of your company, so choosing the software that is most resilient to bugs is the best decision for the success and profitability of your company.

Reduce Software Costs

One of the most redeeming qualities of OSS, is the fact that is free. Whether you are looking to replace the Microsoft Office suite with free Office alternatives or save thousands of dollars in Microsoft licensing costs by switching from a Windows Server to a Linux Server, open-source solutions are available. For many organizations, Windows and Microsoft Office are typically the de facto go-to solutions for software. The German state of Schleswig-Holstein is planning on converting its public sector machines to the Linux and Libre side of the force by 2026. This includes over 25,000 workstations which should save taxpayers in Germany around half a million euros each year.

Several other federal government organizations in Germany have already become users of open-source software, including the German Parliament, Federal Tax Office, and Federal Office for Information Security, as well as numerous other state and local government agencies, such as the city of Munich and the city of Schwäbisch-Hall.

Customizability

Things change very quickly. What was acceptable for your product yesterday is not always enough today. Users understand the malleability of the world around them, and constantly ask for new features, modified interfaces simplified UIs, etc. As a company, you have to keep up with users’ needs and make changes to maximize the positive experience for users.

If you build your software stack on top of closed-source software, this can sometimes be very difficult or impossible. If what you want to change goes beyond the feature set built into the software, you now have to rely on your software partner to listen to your feedback and implement your changes. This often is a slow process at best, and at worst might not lead to any changes at all if your software partner does not see your request as important. Else, you are left coming up with a hacked solution and your own custom code to try and make the closed-source software do something it wasn’t designed to do.

Enter open-source software. The ability to read and edit code means that any and all functionalities of the system are entirely open for you and your engineering team to modify. User’s want a different interface, faster load times, or new features? You can modify the code to implement these features and provide users with what they need. After making changes, you can also make a “pull request” to the open-source software – a suggestion that they adopt your new changes. This leads to respect in the community, trust from tech-savvy users, and attention from talented developers in the community, which will help you obtain and retain talent.

Talent

A technology company often “makes or breaks” based on talent. Especially in the age of labor shortages, being able to find and retain talented individuals who can build, modify, and support software is critical to business success. A technology company with a great vision and passionate team won’t go anywhere without engineers and technical people who can make it happen with technology.

Open source software inherently fosters a community of people who are passionate about it – if it doesn’t, the project is not successful, because it’s a community of people that build the project. That community doesn’t just code – they write tutorials, film videos, host conferences, talk with others, mentor juniors, etc., all about the open-source projects that they’re involved in. This leads to a large population of people who are talented in using, building with, and deploying that open-source software project – whether it be a web framework, embedded systems operation system, design library, etc.

While there are certainly practitioners of many closed-source, proprietary systems, these communities are often much smaller. The top 10 programming languages and top ten web frameworks are all open-source. So, if you want to grow your team and get the best talent to build out your systems, building on top of open-source software is the right move.

This has been an overview of why open-source software is often the best move for you and your business. Here is some example of other open-source alternatives to popular mainstream software…

Let us know your thoughts and anything we missed, in the comments below.