© 2005 Jamie Zawinski <email@example.com>
This piece has gotten a lot of attention over the years. I have heard a lot of people saying that they had been "inspired" by it. I fear that what they meant was that they were inspired by the one pull-quote that people tend to quote from it, and ignored the rest. So if someone has linked you to this page, or if you've googled that pull-quote and ended up here, let me give you some context. I wrote this in 2005, which was more than a year before Facebook was open to the general public.
The world was different then.
When I hear people say that they were "inspired" by this, I fear that the result of such inspiration was most likely to cause them to participate in the construction of the Public-Private Surveillance Partnership. These people told themselves that they were building tools to "bring people together" when in fact what they were doing was constructing and enabling the information-broker business models used by companies like Facebook and Equifax, where people are not the customers but rather are the raw materials whose personal details are the product.
I was talking about decentralization and empowerment of the individual. They went and build the exact opposite.
It's not a great feeling to think that someone may have read your words and then gone on to construct the dystopian hellscape that we're now living in, where Twitter is the prime enabler of actual Nazis and Facebook's greatest accomplishment has been to put a racist rapist in the White House.
If all the people who claimed to have been "inspired" by this piece hadn't been, and had just kept writing middleware for banks or whatever, the world might have been a slightly better place.
I wish I had never published this.
Today Nat announced this new calendar server project called Hula, and I've got a funny story about that.
Nat was in town, and he stopped by to say hi and chat, and he said, "So we've got this big pile of code we're going to release, and we're going to build an open source groupware system! It's going to be awesome!"
And I said, "Jesus Mother of Fuck, what are you thinking! Do not strap the 'Groupware' albatross around your neck! That's what killed Netscape, are you insane?" He looked at me like I'd just kicked his puppy.
See, there were essentially two things that killed Netscape (and the real answer is book length, so I'm simplifying greatly, but)
To do this, they bought a company called Collabra who had tried (and, mostly, failed) to do something similar to what we had accomplished. They bought this company and spliced 4 layers of management in above us. Somehow, Collabra managed to completely take control of Netscape: it was like Netscape had gotten acquired instead of the other way around.
And then they went off into the weeds so badly that the Collabra-driven "3.0" release was obviously going to be so mind-blowingly late that "2.1" became "3.0" and "3.0" became "4.0". (So yeah, 3.0 didn't just seem like the bugfix patch-release for 2.0: it was.)
Now the problem here is that the product's direction changed utterly. Our focus in the client group had always been to build products and features that people wanted to use. That we wanted to use. That our moms wanted to use.
"Groupware" is all about things like "workflow", which means, "the chairman of the committee has emailed me this checklist, and I'm done with item 3, so I want to check off item 3, so this document must be sent back to my supervisor to approve the fact that item 3 is changing from `unchecked' to `checked', and once he does that, it can be directed back to committee for review."
Nobody cares about that shit. Nobody you'd want to talk to, anyway.
If you want to do something that's going to change the world, build software that people want to use instead of software that managers want to buy.
When words like "groupware" and "enterprise" start getting tossed around, you're doing the latter. You start adding features to satisfy line-items on some checklist that was constructed by interminable committee meetings among bureaucrats, and you're coding toward an externally-dictated product specification that maybe some company will want to buy a hundred "seats" of, but that nobody will ever love. With that kind of motivation, nobody will ever find it sexy. It won't make anyone happy.
Ok, I said it was a funny story, but obviously that's not the funny part, unless sad is funny.
Anyway, I babbled at Nat along these lines for a while, predicting that, while I was sure that anyone he talked to in a corporation would tell him, "free groupware, yes, awesome!", there was really no reason to even bother releasing something like that as open source, because there was going to be absolutely no buy-in from the "itch-scratching" crowd. With a product like that, there was going to be no teenager in his basement hacking on it just because it was cool, or because it doing so made his life easier. Maybe IBM would throw some bucks at a developer or two to help out with it, because it might be cheaper to pay someone to write software than to just buy it off the shelf. But with a groupware product, nobody would ever work on it unless they were getting paid to, because it's just fundamentally not interesting to individuals.
So I said, narrow the focus. Your "use case" should be, there's a 22 year old college student living in the dorms. How will this software get him laid?
That got me a look like I had just sprouted a third head, but bear with me, because I think that it's not only crude but insightful. "How will this software get my users laid" should be on the minds of anyone writing social software (and these days, almost all software is social software).
"Social software" is about making it easy for people to do other things that make them happy: meeting, communicating, and hooking up.
I said, instead of trying to build some all-singing all-dancing "collaboration server" where you're going to throw in all kinds of ridiculous line items like bulletin boards and task tracking and other shit, let's suppose you narrow your focus to just calendars.
The first thing you want to do is make it trivially easy for someone to publish their calendar, allowing other people to check their schedule (and, for example, know when our target user has classes, when he's planning on studying at a cafe, what nights he's thinking of going to a movie, and what concerts he intends on seeing). Right now people can do that by publishing .ics files, but it's not trivial to do so, and it's work on the part of other people to look at them. If it's not HTML hanging off our friend's home page that can be viewed in any browser on a public terminal in a library, the bar to entry is too high and it's useless.
Then the next thing you want is an invitation manager like Evite but that doesn't suck. Evite sucks because they're spammers, and because it's more important to them to put advertising in front of your eyeballs than to be useful, so the mail they send out doesn't actually include any information, in a lame-assed attempt to drive hits to their web site. So what you want next is a free replacement for Evite -- but more to the point, one that doesn't require any kind of server running anywhere.
And if it doesn't work with webmail, you've lost before you've even begun, so don't do something dumb like requiring a plugin. The trick you want to accomplish is that when one person is using your software, it suddenly provides value to that person and their entire circle of friends, without the friends having had to do anything at all. Then, later, you pull the friends into the fold: if one of them starts using the software, they become their own hub, and get the benefit they have already witnessed from a distance.
And then Nat went back to whichever flyover state Novell is in, and a few days later he said to me, "wow, you really bummed me out, because the dozen other people I had talked to before you were all like, `a free groupware system, that's an awesome idea!' Then you depressed me, and I came back here and told the other guys what you had said, and they were all, `Oh, fuck. He's right.'"
Wait, was there a funny part? Ok, maybe not. Nevermind.