>
Open Source

Two decades on, open source still earns the trust

After two decades of using both, I trust open source more than proprietary software. Not because it is free, though that is a real benefit for a small operation. The reason is more fundamental, and it took me a long time to put into words. The reason is that proprietary software asks me to trust a corporation’s promises, and open source lets me verify what the code actually does.

I am not a security researcher. I have never read the Linux kernel cover to cover. I cannot personally audit the code in the apps I depend on. But the fact that someone could, that thousands of people do, and that the code is available for the next person who wants to check, is the reason I sleep at night. Trust, in software, is not a feature. It is a foundation, and it is built on the option to verify, not on the size of the vendor’s reputation.

What “open source” actually means here

When I say I trust open source, I mean software where the source code is published under a license that lets me read it, modify it, and redistribute my changes. The Apache 2.0 license, the MIT license, the BSD licenses, and the GPL family all qualify. The license matters because it is the legal mechanism that turns “the code is technically on GitHub” into “I can actually use this code in my business without a lawyer calling me next week.”

In practice, what I get from open source is four things I do not get from proprietary software:

  • Auditability. The code is there. Anyone can read it, and many people do. Bugs get found, fixed, and reviewed in public. The Linux kernel has had thousands of contributors over its lifetime and the Apache web server has been hardened by more security teams than I can count.
  • Forkability. If the company behind an open source project shuts down, or pivots, or starts making decisions I disagree with, the code is still on my machine and the project can be picked up by someone else. The Wikipedia model. The Apache Foundation model. The Debian model. All of these are real, all of them work, and all of them give me a fallback that does not exist for closed-source products.
  • Operational transparency. I can see the dependencies, the build process, the test suite, and the release pipeline. When a security advisory comes out, the patch is usually public within hours and I can see exactly what changed.
  • Longevity. A surprising number of open source projects outlive the companies that originally funded them. The Apache HTTP server started at the National Center for Supercomputing Applications in 1995. The Linux kernel started as a student’s side project. Both are still in production use 30 years later. A closed-source product from a startup that raised a Series A in 2018 has a much shorter expected lifespan.

None of this requires me to be an expert. I do not personally audit the Postgres source. I rely on the fact that other people do, and that the people who find bugs are the kind of people who write good bug reports.

The incentive structure is the part most people miss

Proprietary software companies are not evil. Most of them are staffed by competent engineers who want to build good products. But the company itself has a business model, and that business model is not always aligned with my interests as a user. Vendors want lock-in, recurring revenue, and competitive moats. Those goals are sometimes in tension with my goal of running reliable, portable, affordable software for a small operation.

Open source projects, especially the foundation-backed ones, have a different incentive structure. The Linux Foundation, the Apache Software Foundation, the Cloud Native Computing Foundation, and the Python Software Foundation exist to steward projects, not to extract maximum revenue from them. The maintainers are paid by employers who have an interest in the project succeeding long-term, and the foundations are funded by member companies that want the project to remain vendor-neutral. This is not a perfect system. Foundation politics exist, corporate influence is real, and there are bad actors in every corner. But the structural incentives are different from a venture-backed SaaS startup whose investors expect returns measured in orders of magnitude, not percentages.

The practical effect: when an open source project makes a bad decision, the community can fork it. When Apache decided that one of its projects was drifting, the foundation created a new top-level project and the community migrated. When a cloud provider took a Kubernetes add-on in a direction the community did not like, the project forked and the fork became the new default. These are not theoretical outcomes. They happen regularly, and they happen because the code is open.

What “trust” looks like in practice

I run a small operation. The stack I depend on every day is mostly open source: Debian Linux, Postgres, Nginx, Redis, Prometheus, Grafana, Ansible, Python. Each of these is maintained by a different community, with different governance, and each one has a track record I can check. Debian’s release cadence is documented. Postgres’s security advisory process is public. The Prometheus and Grafana projects publish their roadmaps. If any of these projects went in a direction I did not like, I could hire a contractor to maintain a fork, or migrate to an alternative, or even just pin to the last version I trusted.

I cannot do any of that with my proprietary software. If the company that makes my project management tool decides to raise prices, change the data model, or shut down the product, my options are accept the change, migrate to a competitor, or do without. The data is in their format, on their servers, and the export tools are whatever they decide to give me. I have been on the receiving end of all three of these scenarios, and none of them were fun.

Trade-offs

Time is the biggest cost. I spend more time on system administration than I would if I paid someone else to run everything. Updates need to be scheduled. Dependencies need to be tracked. Security advisories need to be read. None of that is hard, but it is not zero, and the cost is real. For a team of one, it adds up to maybe two hours a week of maintenance work. For a team of ten, it adds up to a full-time systems role.

Deployment can be harder too. Some open source projects have notoriously bad documentation, hostile onboarding, or a community that assumes you already know everything. The first time I set up a Kubernetes cluster, I lost an entire weekend to a YAML typo in a config file the documentation did not mention. The proprietary alternative would have had a web UI and a sales engineer to walk me through it.

Security is not guaranteed. “Many eyes” is a useful heuristic, but it is not a guarantee. There are open source projects with critical unfixed vulnerabilities, and there are proprietary products with excellent security teams. The trust argument is about the option to verify, not a promise that someone has verified.

Documentation and onboarding vary wildly across the open source world. The Apache projects are famously well-documented. Some of the smaller community projects are not. The reality is that you get what you pay for, and zero dollars often means zero hand-holding. If you are not the kind of person who reads man pages for fun, factor that into the cost.

In my case, the time and complexity costs are paid back in the long run. I have migrated away from two proprietary vendors in the last five years, and both migrations were easier because the open source alternatives used standard data formats. The proprietary lock-in would have been much harder to escape. Your math will be different if you are a 50-person team that would need to hire a full-time DevOps engineer to maintain the open source stack. For that team, the SaaS subscription might be the cheaper option. The decision is not ideological. It is operational.

If you are a one-person operation with technical skills, the open source path is a clear win on cost, control, and exit. If you are a 50-person team without dedicated operations, the SaaS path is probably correct. The mistake I see most often is the 50-person team choosing the open source path because someone read a Hacker News thread, and then quietly hiring two full-time engineers to keep the stack running.

Bottom line

I trust open source because the option to verify exists, and because the incentive structure is different. None of this requires me to personally audit the code. It requires me to be the kind of person who pays attention to where the code comes from, who maintains it, and what the fallback plan looks like if the project changes direction. That is the foundation. The rest is just the daily work of running the software, which I would be doing either way.

If you only take one thing from this article, here it is. The next time you evaluate a piece of software, ask one question. If the company that makes it disappears tomorrow, what happens to your data, your workflow, and your team? If the answer is “we lose everything,” that is a real cost, and it is the cost open source was designed to avoid. The trust is not in the code itself. The trust is in the option to read it, change it, and walk away with it when the relationship no longer serves you.

Leave a comment