GitHub Is Anarchy for Programmers

1 October 2011

I finally got to see Zach Holman give his talk, How GitHub Uses GitHub to Build GitHub. It was awesome. Zach is a great speaker, and the slides don't do it justice. I highly recommend catching it on video or in person sometime.

Anyway, there's something that I found really interesting about GitHub's 'process': it's basically anarchism, applied to software development.

If you're not familliar with anarchism, check out "What I believe in". It's a pretty decent introduction to a complicated topic. Ultimately, anarchism is fairly simple, but it requires dismantling a lot of beliefs that Americans in particular hold about society, power, and control. We're quite happy in this country to be slaves to the rich, but that's another blog post. ;)

Another excellent post on that blog is "A Digression On What It Means to Be An Anarchist. I'm going to use it as a framework to point out my comparison to GitHub. The first sentence is stolen from TFA, but the second sentence is my GitHub comparison.

What anarchists oppose

What anarchists stand for

How anarchy would work

All abstractions are leaky

Just like when 'lean' was a concept that applied manufacturing techniques to software development, I don't think that 'anarchism' is a 100% fit with GitHub's process. I do think that it's close enough to hold a lot of value, however, even to the point that Zach had to write a blog post about scaling, which is something that always gets leveled at people talking about anarchism. I see GitHub in the same way that I see anarchist Catalonia or the Free Territory in the Ukraine. It's a place where ideals are actually working in practice. Let's just hope that the communists don't betray them when the fascists show up.

Damn leaky abstractions.