Ethics Open Source

Value Neutrality and the Ethics of Open Source

2019 was the year of the “ethical source” licenses – or ‘open source with a moral clause’ licenses. It was also the year many in the open source movement labeled any attempt at adding moral clauses to open source licenses not only made them not open source licenses, but were a dangerous attack on the core principles of open source.

The Ethical Source movement, exemplified by the Hippocratic License, the Anti 996 license etc, has created a deep rift in the open source community; between those who aim to protect the core values of open source ideology as defined by the Four Freedoms, and those who believe granting open source creators the capability to impose moral clauses on the use of their software is essential to ensure software is not used for evil. 

The rift has opened because adding moral clauses to a license is effectively limiting the use of whatever the license is applied to, which stands against the core idea of open source as absolute freedom for the end-user.

The Tenuous Position of Value Neutrality

From my perspective this rift exposes what I’ve long felt is a central flaw in both open source licensing and open source ideology: The Four Freedoms concern themselves only with software freedom – as in the freedom of the software itself – but are in reality imposing value neutrality on whatever is licensed under them: The Four Freedoms protect the freedom of the software itself, and do not concern themselves with what the software does or how it is used. As an ideological platform, they are too narrowly scoped to hold the weight of our societal responsibilities as the designers and builders of modern reality.

Let me explain:

If evil people use open source software to do evil things, there is nothing the creator can do about it. Because doing something about it would be limiting the freedom of the software which goes against open source ideology.  And in the view of many open source ideologues, it would be morally wrong for a creator to do anything about it because limiting the use, modification, and distribution of software is in itself morally wrong. 

This ideological view stems from the original GNU Manifesto:

“‘Control over the use of one’s ideas’ really constitutes control over other people’s lives; and it is usually used to make their lives more difficult.”

“When there is a deliberate choice to restrict, the harmful consequences are deliberate destruction.”

The GNU Manifesto

These quotes capture two central ideas of the GNU Manifesto, one I think most of us agree with, another I think most of us take issue with:

The first idea is that creating something and releasing it into the world changes the lives of ourselves and of others. That is what we design and build software, and that is why being a creator means taking on a moral responsibility for how we change the world.

The second idea is that imposing any restrictions on anything is inherently harmful. This is neither true nor how the world works. Though restrictions can be harmful, they are mostly introduced to prevent harm. The restriction on how loud your headphones can be or the permitted level of toxins in food-safe plastics are in place to prevent harm, and removing the restrictions could in itself be harmful.

I think it is in the tension between these two ideas – creation as a moral act and restriction as a moral wrong – we find both the current dilemma of open source and morality and a potential path forward.

The weight of responsibility

When I publish anything under an open source license, be that GPL or MIT or any other license ratified by the Open Source Initiative (OSI), it takes on a life of its own. It can be used and modified and distributed by anyone for any reason, with or without my involvement, but I cannot restrict it. That’s the whole point of open source ideology.

The problem is this effectively abdicates me of responsibility for my own creations: By releasing software with an open source license I relinquish control over who uses my software or what it is used for. Thus I cannot be held responsible for the software or its consequences. And if I can’t be held responsible there is no incentive for me to make sure my software, when used or modified or distributed by others, doesn’t cause harm or can be used to cause harm.

This is what I mean when I say open source licenses imply value neutrality. And it is here I think the Ethical Licensing movement found its root.

From this perspective one can argue closed source (proprietary) licenses hold the moral high ground over open source licenses because closed source licenses imply responsibility: If a company knowingly releases software that can be used for harm, they can be held liable because they are the only moral actor capable of modifying and distributing the software.

Moral clauses to the rescue?

The big question then is if adding moral clauses to open source licenses can help solve this problem. As much as I hate to say it, I think the answer is no, for two reasons:

First, like the Hippocratic Oath in medicine, breaking a moral clause in an open source license does not have any consequences. Doctors swear to uphold the code of ethics defined by the Hippocratic Oath, but if they cause harm their actions are judged through the legal framework of medical malpractice. A “do no harm” clause in an open source license carries moral weight, but without enforceable consequences and mechanisms to appeal a judgement of harm being caused, it has no teeth. 

Second, applying moral clauses to a license does not solve the problem of value neutrality because it is a problem of ideology, and the license is merely a manifestation of that ideology. 

If we want to go down the path of the Hippocratic Oath, we need a Code of Ethics for Open Source and a framework for enforcement and adjudication of breach of those ethics. That’s a huge undertaking, and not one I see bearing fruit any time soon.

Toward a New Ethos of Open Source

If we want to take on the issue of ethics in open source on a shorter timeline, we need to take a hard look at the ethos, the core ideals, of open source ideology and ask some tough questions about where the ideology comes from and whether that picture of the world meshes with our lived reality. Open source aims to grant everyone the capability to use, modify, and distribute software. That does not mean open source ideology cannot also embrace the moral and societal responsibilities of the creator, the user, and even the creation itself. To get there we need to broaden our ideological platform, consider what “freedom” means in our current context, and work together to figure out how the Four Freedoms can become part of the larger spectrum of rights and freedoms afforded to us.

Cross-posted to LinkedIn and

Open Source

Walking Away and the Ethos of Open Source

Every time we contribute to an open source project, in any way, we are answering an important question:

Why don’t I walk away and start a new fork?

I’ve been working in and with and around open source software for the better part of 15 years, and over that time I’ve seen the rise of amazing ideas, powerful communities, valuable ecosystems, and massively profitable companies. Which is great. Open source is eating the world by giving everyone a chance to contribute and use software and technologies without being beholden to expensive proprietary licenses. I’ve also seen a slow and systemic erosion of the principle of walking away. Which is not great. Actually, it very bad.

Some time ago I posted what I called the “Open Source Serenity Prayer” on Twitter.

 My intention was to remind open source contributors of what I believe is the core ethos of open source: the ability to walk away and make something new. Yet when I posted this text, a chorus of concerned friends and acquaintances chimed in with the same refrain: “Walking away? If I walk away, I lose everything.”

This is a problem. This keeps me up at night.

Asking for clarification on people’s concerns, I heard variations over the same theme:

  • My job depends on the success of this particular version of a project.
  • My skills are tied to this particular version of a project, I can’t succeed anywhere else.
  • A project is too big / too dominant for a fork to be successful.
  • A project is no longer a tool; it has become infrastructure.

In other words, some open source projects have turned into monocultures – the exact opposite of what open source was meant to create.

This is why walking away matters, maybe now more than ever before.

The Ethos of Open Source

At the core of open source ideology and practice lies the powerful concept of “forking;” taking what already exists (a “branch”) and making a new copy (a “fork”) from which new branches can grow. Very much like cultivating a garden. This is the proverbial “standing on the shoulders of giants” made real: You take something that works, often the work of countless other contributors like you, and build something from it. It may be a slight variation on the same theme, or something entirely new and different. Then someone else can take this new thing you built, fork it again, and build something new and different from it.

Forking and branching gives open source communities the freedom to explore a plurality of ideas without starting from scratch, and individual contributors the capability of choosing every day to do work they find meaningful and valuable without any expectation or obligation of future commitment or their work being wasted: If you create something which you find valuable, and the project you want to contribute to does not want to include your work, you can create a fork and build your own vision of the future. All the while, the maintainers of the original project and anyone else can copy or build from your new work to make further works, with or without your involvement. Everything is connected to everything else, and everything builds on and learns from everything else.

Contribution to open source and the open commons is in a very real way the giving away of your work without direct remuneration or reward. Your work may be funded by someone, and you may get status, or praise, or even power from your contributions, but these are secondary. Once contributed to the commons, the work becomes the property of everyone, from which new forks can be made.

Thus, every time we contribute to an open source project, in any way, we are saying to ourselves “I believe in this fork, I believe in the future it builds, and I am going to give away my time and work to it today to move it forward.” We are also saying “today I choose to stay with this fork, to not walk away and start a new one.”

The important things here are agency and capability: The choice of continuing to contribute to a particular fork, or to walk away and create a new one, must be a real choice. When a project becomes so powerful, or dominant, or such a monoculture that the choice of walking away becomes unfeasible, or a significant risk, or even impossible, the effective capability of forking the project is lost. And with it we lose what makes open source valuable to begin with.

Walking away

Open source ideology started as a revolutionary counterculture fighting monopolies, monocultures, and corporate control. Choosing open source was an active walking away from the default models of expensive and restrictive proprietary licenses. Inherent to the open source ideology is the freedom of agency, autonomy of contribution, and the capability of walking away and starting a new fork when the work is no longer meaningful to you, or you have a new vision of the future, or you disagree with where the project is headed. This, the capability and willingness to walk away and start new forks and new projects and new versions and futures, is what made open source so successful. If we don’t embrace this, if we don’t actively cultivate the plurality of ideas which brought us here, we’ll fall victim corporatization, monopolization, and the creation of monocultures. Which is what I’m seeing everywhere I look.

When an open source leader says their project is “not a grain, it is the soil” and implies a single fork should become the infrastructure for everything, it may be time to find the strength to walk away and start a new fork to keep our open source garden from succumbing to monoculture.

Cross-posted to LinkedIn.

Note: This article was inspired by Cory Doctorow’s book “Walkway” in which he explores a future where citizens literally walk away from “Default” society to live and work in a new society founded on open source ideals and values. I think this book should become essential reading for open source ideology and open source contributors (it’s also a very good and entertaining book, so there’s that.)

Open Source

On the Corporate Takeover of the Cathedral and the Bazaar

Originally posted as a Twitter thread.

We need to have a conversation about Open Source and equity. Particularly, we need to talk about how “decisions are made by those who show up” should be amended to read “decisions are made by those who can afford to show up” and what that means for our industry.

The origins of the Open Source movement are rooted in equity + distribution of power: Rather than large corporations controlling both the product, the tooling, and who gets to work on either, the user has full autonomy to create, contribute, distribute, and maintain everything.

This is built on an underlying assumption that everyone has equal ability and availability to actually take part in the Open Source community. From this stems the idea of open source software/hardware being built by the people who use it. That’s no longer true in my opinion.

When the Open Source movement began in earnest, it was a fringe movement – a pushing back against large corporations who controlled everything.

When I went to university in the late 1990s, professors and students alike said Open Source software was little more than a blip on the radar favored by academics and fringe communities. “Open source will die a slow and irrelevant death” said my TA during a Unix class.

When this was true, Open Source truly was built and maintained by the people who used it. That was then. 20 years later, things have changed. A lot.

Today, Open Source rules the web, the internet, and most of the connected technology space. Large companies like Tesla make a point of releasing their software as open source because it turns out the Open Source model actually works.

And therein lies the problem: As Open Source wins the battle for license supremacy, corporations are slowly taking over control over Open Source through the very structural models that made Open Source possible in the first place.

Many Open Source communities stand proudly behind the banner of “decisions are made by those who show up.” But like I said, this really means decisions are made by those who can afford to show up. Those who cannot are left to fend for themselves.

Who can afford to show up? To a larger and larger extent, the answer is big corporations. Looking around various Open Source communities you’ll see core designers and developers being snapped up by corporations to do “Open Source Contribution” full time.

That sounds good on the surface, but what it actually means is those corporations are consolidating power under their corporate umbrella. And no matter how much they say their workers are not swayed by corporate interests, the reality is they are, to a significant degree.

You can see this plainly in an open source project like Android which is now completely dominated by Google and Samsung. Sure, you can contribute all you want, but if you try to steer the project in a direction which doesn’t benefit one of them, you’ll likely get nowhere.

To put it bluntly, successful open source projects are ripe for corporate takeover. And in most cases this means the equitable ideal of Open Source goes out the window.

Who can afford to make significant contributions to open source projects? By and large employees at large corporations. Who can afford to speak at Open Source conferences? The same people. Who sponsors Open Source projects and conferences? The same corporations.

To put an edge on it, big corporations are buying out all the space of both the cathedral and the bazaar.

The inherent problem, as I see it, is our failure to put real actionable value to open source contribution: You can’t buy food or clothes or a roof to cover you from the elements through GitHub contributions. You need someone to pay you for those contributions.

The privilege of working for a company which pays us for open source contribution changes our status as contributors in a significant way because we no longer have to weigh contribution against paying for childcare or food or a visit to the dentist.

If we want Open Source to stay open and equitable, and not become the domain of corporations, we must face up to the reality of contribution and the value it creates.

For Open Source to stay open and equitable, we must find a way to reward contribution with real value. What exactly that looks like I’m not sure, but I hear there’s a thing called “money” which can be used in exchange for good and services.

For the past 20 years the Open Source community has faithfully invested its blood, sweat, tears, time, resources, family, and friends to build something amazing. Now, large corporations are reaping the benefits, refining the work and exchanging it for money.

The only way forward is to build an Open Source economy which promotes equity and shifts our mantra from “decisions are made by those who can afford to show up” to “decisions are made by those who are most impacted”.

I want Open Source to be a place where my 2 year old son can work when he’s old enough. I want it to be open and equitable, and I want it to be rewarding beyond props and GitHub status boards.

I want Open Source to be the community from which our future leaders emerge, from which our future societies are built. For that to happen we need to find a way to reward contribution outside the corporate coffers.

What do you want?

Update: After publishing this article, two relevant writings – one old and one new – have been brought to my attention. I’m appending them here for reference:

The Ethics of Unpaid Labor and the OSS Community
Ashe Dryden, November 13, 2013

The Internet Was Built on the Free Labor of Open Source Developers. Is That Sustainable?
Daniel Oberhaus for Motherboard, February 14, 2019

GitHub Open Source

GitHub for Windows changes everything

If you’ve spent any amount of time in the web development world or lifted the lid on the code behind your own or someone else’s website, you will at some point have encountered a site called GitHub. GitHub is the home of millions of open source code repositories that are in constant flux and evolution, and GitHub is where you will find the bleeding edge of innovation when it comes to code on the web.

The challenge with GitHub, at least for Windows users (so the majority of the computer literate population) is that there has never been a good Windows-based interface for GitHub. As a result, Windows users have been relegated to using GitBash or another command line based interface. And though this isn’t a solid non-starter, it is rather intimidating and hard to wrap your head around if you’re not used to using command line.

Those days are gone. Yesterday GitHub released GitHub for Windows at A graphical user interface (GUI) that allows you to manage your GitHub repositories with ease using familiar point-and-click behaviors. And it’s designed with Metro principles to boot. Though this may seem like a small deal for Git affiliations and Mac Dogmatics it is in fact a groundbreaking very big deal. And here’s why:

The Democratization of Code

As I alluded to earlier, previous Windows solutions related to GitHub have been command line based and therefore unapproachable to say the least. And in today’s world, that is a serious problem. Though people like me who grew up in the dark ages of computing with MS-DOS as our operating system, the modern computer user is not familiar with command line and finds it hard and cumbersome to use. As a result, services like GitHub have been relegated to the selected few who have the skills to user command line or use other operating systems. In other words, GitHub has been the domain of the coding elite.

Because the web runs on code, and code has been relatively hard to learn and understand, it has been the purview of a select group of people who can read, write, and understand code. But in the last several years this bar has been lowered substantially by the introduction of rock solid Content Management Systems like WordPress and user interfaces that make it easier to use and understand what happens behind the scenes. The result of this democratization of code is that now anyone with a computer and an internet connection can publish and customize their own websites and take control of their message online. That is the very definition of a revolution.

In the past several weeks there has raged a debate in the development community over an initiative called “Code Year” which claims that the ability to code is so vital to the modern world that everyone should learn how to code. The (not so) surprising thing about the debate is that the detractors by and large argue that “regular people” don’t have the ability to learn how to code. In other words, the elite is afraid that their pedestals will shrink and they will be brought down to the level of everyone else.

It shouldn’t come as a surprise that I sit firmly on the other end of that argument: Not only do I believe that everyone should learn how to code; I believe that everyone can learn how to code and be good at it too.

GitHub for Windows (again)

Which brings me back to GitHub for Windows. The reason I am so excited about this release is not that it makes it easier for Windows users to use GitHub but instead that it makes GitHub available to all Windows users regardless of skill level. That is an important distinction and one that will be felt almost immediately in the GitHub community. What was once the purview of the coding elite has suddenly become the playground of anyone with an aspiration to use, collaborate, or publish their own pieces of code.

Revolutions usually start with a single spark. I believe this is one of them. Go download GitHub for Windows and be part of it.