Sentry's Open Source Values
This is the 25th year of the Open Source movement, and as with any social enterprise there is a constant effort to maintain and at times renegotiate the meaning of terms and the values behind them. Open Source is a child of the Free Software movement. It uncritically inherited its values and philosophy from its parent, but are those still sufficient today? Almost like a teenager growing up, it seems that after 25 years it might be time for Open Source to develop a set of values and a guiding philosophy of its own.
Sentry was born and bred in the Open Source community, and we very much think of ourselves as part of it today. We value software freedom for users to an extent, but we don’t think of it in the same strident terms as the Free Software movement. We think of freedom primarily in terms of access to technology and knowledge to improve efficiency for developers. What’s more, it’s not the only thing that matters to us. We also value sustainability for developers. The two are often in tension. We aim to find and maintain a good balance between them.
This is a long post about our self-understanding as a company in the Open Source community, our history and values. If you have a similar story and share our values, we invite you to join us in discovering how to move forward.
David Cramer first published Sentry in 2008 as a non-commercial, public, license-less side project (cf. “POSS”). The next year he licensed it under BSD-3. In 2012, David founded a company with Chris Jennings to commercialize Sentry, and together with hundreds of others over the years they have built a successful business around the project. Sentry is what GitHub has called a “single source” project:
A ‘single source’ open source project is where a single, for-profit, company dominates the project roadmap and maintainer status as its main revenue generator[.]
By 2019, Sentry was successful enough that other companies wanted to sell hosting of our product. This was great for them because they bore none of the cost of building Sentry over the previous 10 years. That is, the BSD-3 license allowed them to undercut us on price without giving anything back. It was an existential threat for our company, and therefore the project. We relicensed a few core repos to the “eventually Open Source” Business Source License (BUSL-1.1) in order to protect Sentry from a tragedy of the commons. It worked.
By 2021, we were successful enough that we were able to return full circle and start systematically giving lots of money to non-commercial projects in the Open Source community, especially those we depend on. We are now in our third year of running this annual, industry-leading program.
By 2022, we were successful enough that we could acquire Codecov. Because we’re an Open Source company, we took their closed-source product and published the source code. Of course, we used the BUSL-1.1 license for a few key repos. We hit a snag, though. We infelicitously announced that “Codecov is now Open Source,” and had to take a step back. As much as we self-identify as an Open Source company, we have to acknowledge that BUSL-1.1 is not an Open Source license—it says as much itself! Codecov is … something, but it’s not quite Open Source, in the widely accepted use of the term as it stands today.
That was a month ago. In the vibrant conversation that followed, one suggestion rang particularly true. Here’s how Adam Jacob expressed it:
I think the way forward here is to make what I suspect is a loose confederation of folks using non-compete licenses to actually get together and draft their own set of values. To then brand that. And stand behind it proudly.
Adam wasn’t the only one. Matt Wilson called for “a shared vocabulary.” Lefteris Karapetsas said, “Perhaps we need [a] new name for this.” Long-time Sentry employee Armin Ronacher pointed out that “source available” is not sufficient. Adam and David brainstormed possible alternatives. The felt need is not new, either. Nadia Asparouhova identified a similar problem way back in 2016, when she asserted that “we are long overdue for a new term.”
These aren’t nobodies, either. Adam created Chef. Matt was one of the first Red Hat employees and is now a VP/Distinguished Engineer at AWS. Lefteris was an early Ethereum core dev. Armin created Flask. Nadia was the foremost researcher of Open Source over the past decade. If their perspectives are converging, there’s probably something worth paying attention to here.
The Free Software movement started in 1983 when Richard Stallman (RMS) announced the GNU project. He founded the Free Software Foundation (FSF) in October, 1985 to steward the movement. The Open Source movement started in 1998 when Eric Raymond (ESR) and others used the source code release of the Netscape web browser to promote an open, collaborative software development process. Concerned with the ambiguity of the word “free,” they settled on “Open Source” instead. ESR and Bruce Perens founded the Open Source Initiative (OSI) in February, 1998 to steward the movement.
The Free Software movement is deeply philosophically grounded. The heart of its philosophy is the Four Freedoms. The Open Source movement has no such depth of its own. Its focal point is the Open Source Definition (OSD), a practical rubric for OSI to approve certain licenses and reject others according to whether they “provide software freedom.” Indeed, the OSD is a very lightly edited version of Bruce Perens’ Debian Free Software Guidelines (DFSG).
To better understand the Free Software philosophy, let’s go back to the beginning, to the creation myth of the Free Software movement, the parable of RMS and the Printer.
Xerox gave the Artificial Intelligence Lab, where I worked, a laser printer, and this was a really handsome gift, because it was the first time anybody outside Xerox had a laser printer. It was very fast, printed a page a second, very fine in many respects, but it was unreliable, because it was really a high-speed office copier that had been modified into a printer. And, you know, copiers jam, but there’s somebody there to fix them. The printer jammed and nobody saw. So it stayed jammed for a long time.
RMS and his friends in the AI Lab community wanted to modify the printer software to tell them when it jammed, so that someone could fix it promptly. But Xerox shipped a binary, and declined to share the source code with them.
And we just had to suffer with waiting. […] But the thing that made it worse was knowing that we could have fixed it, but somebody else, for his own selfishness, was blocking us, obstructing us from improving the software. So, of course, we felt some resentment.
And then I heard that somebody at Carnegie Mellon University had a copy of that software. So I was visiting there later, so I went to his office and I said, “Hi, I’m from MIT. Could I have a copy of the printer source code?” And he said “No, I promised not to give you a copy.” I was stunned. I was so… I was angry, and I had no idea how I could do justice to it. All I could think of was to turn around on my heel and walk out of his room. Maybe I slammed the door. And I thought about it later on, because I realized that I was seeing not just an isolated jerk, but a social phenomenon that was important and affected a lot of people.
This story establishes a guiding moral conflict between the AI Lab hacker community and the Xerox corporation. The community is good, and the company is bad. Xerox is oppressive (“we just had to suffer”), and anyone who colludes with them is a “jerk,” worthy of righteous, door-slamming anger. This moral conflict between community and company animates the Free Software movement. I did a sentiment analysis of the 218 philosophy articles on gnu.org. Such things require much squinting, but the analysis suggests that these articles are four times as negative about companies as they are about community.
RMS constructs a narrative that those who are committed to Open Source are merely pragmatic, only concerned with the business benefits of the software produced, whereas those in the Free Software movement are about ethics, higher concepts of right and wrong, justice and injustice. That’s not Sentry’s Open Source narrative. We believe in Open Source for ethical reasons, including values of freedom and community. Software is a powerful tool for having fun and solving problems together. It sucks when technology doesn’t work and we can’t fix it. It’s inefficient and frustrating at best, dehumanizing and dystopian at worst. We feel for RMS and the other people in the AI Lab community in this story.
We also feel for the people at Xerox. They donated a printer to the AI Lab, “a handsome gift,” by RMS’s own admission. That printer took a lot of effort to develop and manufacture. Someone wrote the software that ran it, someone with a life and a family and friends. Someone who, let’s imagine, took pride in their work, enjoyed their job, and was excited to learn that management had arranged to donate one of the machines to MIT. The hackers in the parable seem rather ungrateful to this person and their colleagues.
Computing proceeds via abstraction, by encapsulating data and processes into components that others can use to build higher-order systems. Calculators free us up to spend our time going so much further than we could with long division by hand. Software is a tool for efficiency, but becoming an expert in every line of code ever written is not only inefficient, it’s impossible.
Much else also proceeds via abstraction. A software engineer at Xerox depends on the abstraction of their job to provide a stable economic foundation for their life. As consumers, we depend on the abstraction of a brand to form impressions of what to expect from the goods and services we purchase. The company behind both the brand and the job is an abstraction, a group of individuals working cooperatively together to participate in and contribute to the economy.
No, companies are not the only way for individuals to organize. Yes, we are all so much more than employees and consumers. Yes, there is a lot of inefficient, frustrating, dehumanizing, and sometimes even dystopian crap that goes on with companies. But companies can also be awesome. They can be magnificent abstractions of people serving people with fulfilling work and amazing goods and services and generous donations of printers.
This brings us back around to the Free Software movement’s deep mistrust of developers:
With proprietary software, there is always some entity, the developer or “owner” of the program, that controls the program—and through it, exercises power over its users. A nonfree program is a yoke, an instrument of unjust power.
Companies are abstractions over people, just as is “the community,” and “non-commercial software project.” The Free Software movement goes too far in dehumanizing the people at companies like Xerox and Sentry. We are not “some entity” exercising “unjust power” over our users by choosing to license Sentry and Codecov under BUSL-1.1. Yes, user freedom is important, but it’s not the only thing that’s important, and it’s not a one-size fits all. As Nadia said in 2016, it’s time for the conversation to shift, “from protecting the rights of a user to adopt the software as they wish (now the norm) to protecting the rights of the author or community that stewards the code (still TBD).” We need both. The Free Software movement is not more principled than Open Source, it is not principled enough.
Sentry is a company. We are a group of people working together to produce application monitoring and code coverage products that enable you to build better software. If our company doesn’t exist, we can’t do that. Therefore, our first Open Source value is sustainability, both for ourselves and for others. We want to be able to continue to develop Sentry and Codecov as single source Open Source projects (maybe single origin? single malt?). We want non-commercial projects in the community to thrive as well, especially those we directly depend on. We love giving away lots of money to Open Source projects, and investing in overarching efforts such as FOSS Funders, and this whole question of advancing the conversation about Open Source that this post is a part of.
Our second Open Source value is access, by which we mean two things. First, access to technology, enabling the efficiency and evolution cycle, building ever higher-order calculators. Second, access to learning and knowledge. As developers we don’t want to waste time repeating the past, inefficiently reinventing the wheel. This is related to the Free Software movement’s concept of software freedom, but is limited because it’s in tension with our value of sustainability. Instead of an absolute value, then, we are trying to get at the real value to individuals that we want to enable. When an individual starts a company, that’s a different story.
These values are the driver for why we use BUSL-1.1 with permissive licenses. On the one hand we reject both open core and copyleft, because in our view they both overly restrict access to tech and knowledge. On the other hand, the maintainer of a product like Sentry needs protection from economic exploitation. We need a healthy boundary.
Are you building an Open Source software company? Do you share our Open Source values and want to work with us?
Join our Future of Open Source: SaaS, the Final Frontier virtual event on September 7 to continue this conversation with the CEOs of three Open Source SaaS companies: Cal.com, ODK, and Codecov.
We would also love to hear from you on GitHub as we start exploring options to move Open Source forward along these lines.
If all goes well, some of us can start converging in the “loose confederation” that Adam proposes, to work on building a brand together that stands for sustainability for maintainers and access to technology and knowledge for developers.