Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open collaboration vs. open source post #98

Merged
merged 14 commits into from
Jan 27, 2014
64 changes: 64 additions & 0 deletions _posts/2014-01-20-open-collaboration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
title: Open source, not just software anymore
layout: post
comments: true
excerpt: "What we've been calling open source, may in fact be something else, especially when we start to use those workflows to collaborate on things beyond code."
---

Open source is collaborative, or at least, I thought it was. What modern hackers have been calling open source, may in fact be something else, especially when we start to use those workflows to collaborate on things beyond just computer code.

## Open source as a philosophy

> @benbalter The internet has noticed that you tried to define "open source"

Not an email that you receive every day. As part of an effort to lower the barrier for getting started with GitHub, I published [a glossary of common GitHub jargon](https://help.github.com/articles/github-glossary#open-source), which included the term "open source". We defined it as:

> Open source refers to a philosophy of collaboration whereby others (publicly, or within an organization) are encouraged to fork, modify, discuss, and contribute to an ongoing project. Open source software refers to software with source code that has been made available to others.

For me, that's always been what open source is. It's a collaborative model, not a rights regime or political philosophy, and when you describe open source to non-developers, you don't lead off by talking about copyright assignment. Apparently, however, such a viewpoint was [the minority](https://twitter.com/kfogel/status/386259984817717248).

## Open source as permissionless modification

[Karl Fogel](http://www.red-bean.com/kfogel/), who *literally* wrote [the book](http://producingoss.com/) on producing open source software, and whom I admire greatly, argued in a series of emails, that since its inception, open source had always been about the right to modify, not the right to contribute.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A bit of a run-on sentence... try removing the comma after "emails", at least.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How is it a run on? The "that" makes the second clause a dependent clause? Although I'll give you way too long and awkward comma placement. 😄


> Open source refers to material (often software) released under terms that allow it to be freely shared, used, and modified by anyone. Open source projects often, though not always, also have a highly collaborative development process and are receptive to contributions of code, documentation, discussion, etc from anyone who shows competent interest.

That struck me as odd for a few reasons. Granted, I have a somewhat skewed viewpoint, but it exposes an important edge case. Especially in government, we see the source code for an application being made available, but with no intention of (or often mechanism for) the agency to accept community contributions, an arrangement that many would not traditionally label a truly open source effort.

## Open source in a less license-centric world

I've only known a world where open source has already won. When I think open source, I don't think "*is this thing licensed under a Open Source Initiative blessed license?*" Today there are increasingly fewer fights over the rights one receives with software, and more over seeing it released in the first place, or once released, over exposing process. Developers today could [care less what the license is](http://opensource.com/law/13/2/post-open-source-software-licensing). We just want to hack on cool things.

There are a lot of reasons for that deemphasis. For one, technology has made it easier to work together, than alone, and therefore, has shaped at least what I think it means to be open source. As Karl noted:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Trim this sentence a bit, i.e.

For one, technology has made it easier to work together than alone, which has then shaped what I think it means to be open source.


> Pretty much all open source activity (whether software or otherwise) happens online... if it's not online, it's hard for it to be effectively open source, practically speaking.

But among the biggest reasons for this shift, I'd argue, is that unlike when the open source movement was originally taking shape, today, there is no "source" and "binary" distribution to drive a wedge of imbalance. With web-centric, high-level languages like Ruby, Node, and PHP, it's really hard to distribute the software in such a way that you don't have everything you need to modify it, at least not in terms of code.

## Open source <del>software</del>

Today, the idea of open source as it is seen outside of software is much more than just rights to "source code". What happens when there is no source versus binary? What does open source data look like? Open source content? Open source law? What happens when there is no OSI-approved license, because the thing I'm sharing simply isn't code. In [trying to distinguish open source from open source *software*](http://haacked.com/archive/2012/02/16/open-source-and-open-source-software-are-not-the-same.aspx/), I argued:

> Open source is more than just publishing. Seeing how the sausage is made is necessary but not sufficient. Discussions in the open, ability to fork and modify, pull requests... collaboration is a key.

Think about it in this context: I'm a government agency, and I publish a plain-text blog. Is that open source? As a government work, I have the right to use and modify the "open source" content as I see fit. Same with government data in the form of a spreadsheet. The "source" in both cases... what's necessary to rebuild the final intrinsically valuable thing from scratch is not the compiled letters or figures that are published, but exposing the underlying process through which that final product can be recreated.

So long as the publisher doesn't provide a mechanism to receive those improvements, or worse yet, if there's an imbalance of information between those publishing and those contributing, that thing, be it code, text, or data, is simply published. It's not open. In software we'd call that "disclosed source". In government, we call that publishing a PDF or simply throwing data over the firewall, but the one thing we wouldn't call that is open source.

## Open source behind the firewall

My understanding of open source differed from the traditional definition in a second distinct way: scope. For me, open source wasn't absolute.

> Open source ≠ public. A project can be open source, even if not *everyone* has access to the code. You can open source within your organization, within your team, with your friends, so long as the philosophy is there.

At GitHub, we like to think of GitHub.com as an open source project. We use GitHub to build it, anyone in the company can see the source code, open an issue, or submit a pull request. In all senses of the word it's open source, except not everyone has access to the code.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think of GitHub as acting like an open source project within the company, though I would never call it "open source". This is the reverse the "Open source behind the firewall" points you were making above: it has the collaboration, without the availability/transparency.


What percentage of the world needs to have access to something before we can call it open source? 90%? 51%? What if I print out the source code and make it available via snail mail to anyone who asks? What if I don't tell anyone that that's an option? What if I send the source to ten friends, and then leave a copy on a flash drive at the south pole? The list goes on. Rights are nothing without workflow.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would probably call these cases "provisional open source". Just because more than one person can see the code doesn't make it open, either.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, what I'm getting at, is how many people need to have access, and what constitutes as sufficient access? Surely, posting on GitHub publicly suffices, and giving it to one person falls short, but where are the intermediate granulations of that spectrum?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ben Balter notifications@github.com writes:

Right, but I'm getting at, is how many people need to have access, and
what constitutes as sufficient access? Surely, posting on GitHub
publicly suffices, and giving it to one person falls short, but where
are the intermediate granulations of that spectrum?

Are we sure there are intermediate granulations?

If all sentient beings have the right to make copies and do what they
want with them, and they have some reasonable way to actually physically
obtain a copy (you know, "within epsilon of zero marginal cost", that
kind of thing), then it's open source. If they don't, it's not.

Because even if someone posts code in an inconvenient way in an
inconvenient place, as long as the license doesn't discriminate, then
someone else can always make the inconveniences go away by posting a
copy in a better place. This is what

http://conservatory.github.io/

is all about, in fact :-).


## The case for open collaboration

> There is no such thing as "government-only" or "academic-only" or "within-our-company-only" open source

I think that's true. At least, the idea of someone calling something "governemnt-only open source" scares me. But what do we call the millions of developers that adopt open source workflows for their closed-source software? For non-software collaboration? How do we divorce ourselves from a rights-centric viewpoint and the holy wars that go with it (I'm looking at you GPL)? What do you call something that's developed in the open with community involvement that may or may not be software?
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Misspelled "government" in the first sentence.


Dropping "software" from "open source software" apparently isn't enough. Perhaps what we need is a new word that better describes what we're really doing? @haacked went through the same existential crisis and [landed somewhere near *crowd sourced*](http://haacked.com/archive/2012/02/22/spirit-of-open-source.aspx/), but for me, that implies a hub and spoke model with a highly centralized power structure, not the egalitarian web we often think of open source to be. Perhaps what I've been talking about all along is not really open source, but is in fact "open collaboration".