Keep it beautiful
Everything here is my opinion. I do not speak for your employer.
July 2009
August 2009

2009-07-29 »

No, you don't get to ruin my stuff anymore

I first wrote about the knowledgebase project I created, code-named GourD, almost exactly three years ago. At the time, it was one of my favourite achievements, aside from my company's main product itself.

...

Things have changed since then. What they've done to the product is kind of terrible.1 Worse, they paid my friends (former co-workers) to do it. But that's another story.

The short version is that, through this exciting learning experience, I now know the thing I hate most of all in the whole world. I hate it when people take something that has the potential to be good, and they make it bad. But most of all, I hate it when they do that to me.

I'm sure half my readers will unsubscribe just because I say this, but: one of my favourite books of all time is The Fountainhead.2 You have either already read it or you never will, so I don't feel bad in ruining the story for you. The climax is when the hero blows up a building he designed so that it can't be ruined in the name of popularity/fashion/etc. It's all a bit overdramatic - or so I thought at the time.

Today I found myself wishing that I had just blown it all up rather than selling it, and to hell with the consequences.3

I mean, really, truly, honestly. It would have been a global net improvement. The world really would be no worse off, and I wouldn't have to be ashamed to be associated with it anymore.4 Yeah, they'd probably sue the pants off me, and (unlike in the book) it's extremely unlikely I'd get a sympathetic judge. But who cares? At least that's one less steaming pile of crap in the world.

That was a really interesting feeling for me. Normally, I pride myself on producing stuff that will help the most people. If we have to mangle the software a bit in the name of marketability or so we can get it into the Giant Megacorp Marketing Engine, so that 10x more people will hopefully get to use it, isn't that better overall? What's the big deal?

Good question.

The answer comes down to integrity; I shouldn't have to write good software or have lots of people use it. If I do it right, I should write good software and lots of people will use it. Yeah, I know, that's not as easy as it sounds.

But from now on, it's good software5 first, people using it second. Sorry, potential customers. If you want crap, there are plenty of megacorps who will sell it to you. You don't need to buy it from me.

The rights to ruin my work are no longer for sale. You can fork and ruin my open source stuff if you want, but my version will still be mine.

Footnotes

1 Check out the part that says "Version 5.0x and earlier don't have this problem." That's because they switched the DNS server from (the secure and well-written) djbdns to (timelessly crappy) BIND for some sort of legal reasons. Shortly afterwards, say hello to a worldwide DNS poisoning attack. Bad luck? It's not bad luck when you bring it on yourself. djbdns and qmail: still no security holes. In history. Ever. (Correction: djbdns did finally have a security hole in March 2009, although it affected almost nobody.)

2 It's by Ayn Rand. So sue me. I'm always confused by people who hate Ayn Rand on principle despite the fact that either a) they didn't read her books at all, or b) they didn't understand them, and thus think she's in favour of extremist crazy libertarian capitalism. The Fountainhead includes a greedy guy who sells his soul for money and ends up committing suicide because it turns out money doesn't buy happiness; meanwhile, the story's hero lives in poverty, never becomes a success, is widely despised by most members of his profession, literally blows up his own construction rather than let it be ruined by its buyers, and ends up comparatively happy (sort of) despite having tanked his career. But yeah, sure, this is the philosophical basis for libertarianism.

3 Of course, in real life, both for software and for buildings, it's not so gratifying. Blowing stuff up doesn't accomplish anything. The character in the book is an architect - a word we stole for software, though for him it was physical buildings - and you can blow up software or buildings all you want. People can just make more copies of it, because they still have the blueprints. Architecture is just knowledge. Short of a Library of Alexandria scale event, knowledge just doesn't get destroyed so easily.

4 I don't want to give the impression that everything pre-acquisition was absolutely perfect and rosy. I suck too, but at least it's an honest sort of suck. The changes that have been made to the current system are ones that no sane person could possibly believe are an improvement. It's just the usual megacorp story: bureaucracy, make-work, and lawyers.

5 I've been working on a rewrite of GourD as open source. The new version is already as awesome as GourD in most ways, and in some ways even better. I'll write more about this when it's ready. If you really want, you can try a live version of it, albeit sparsely populated so far, in the EQL Data Knowledgebase. The source code for that, plus newer (not yet production) features can be found in my ekb source code on GitHub.

I'm CEO at Tailscale, where we make network problems disappear.

Why would you follow me on twitter? Use RSS.

apenwarr on gmail.com