Categories
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.)

Categories
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

Categories
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 http://windows.github.com/: 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.