Account Options

  1. Sign in
The old Google Groups will be going away soon.
Switch to the new Google Groups.
Google Groups Home
« Groups Home
CouchDB retrospective
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  1 message - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post will appear after it is approved by moderators
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Noah Slater  
View profile  
 More options Jul 14 2010, 10:49 am
From: Noah Slater <nsla...@tumbolia.org>
Date: Wed, 14 Jul 2010 15:49:28 +0100
Local: Wed, Jul 14 2010 10:49 am
Subject: CouchDB retrospective
At some point during the summer of 2007, I saw a link on Reddit to a project called CouchDB. It was billed as a RESTful document database, and one of my first thoughts was that it might be a better, and more simple, version of WebDAV. I was working on some publishing software for GNU at the time, and the issue of storing documents in a database had been plaguing me for year or two. Given that my software was designed for the Web, having a Web-based document database as a backend seemed like it was going to be a perfect fit. I hopped onto the IRC channel to ask some questions, and found Damien and Jan and a handful of other people. There were less than 20 people in the channel back then, compared to around 150 people you’re likely to find in there now.

My major concern was the youth of the project, and the lack of community around it. If I was going to base my own software on CouchDB, I wanted to make sure that CouchDB was going to stick around. I grilled Damien and Jan about it, to gauge how serious they were. After being convinced that this was a project borne out of passion, and that the two existing developers were committed to seeing it grow, I moved on to my next concern. If I was going to add this as a dependancy, I wanted it to be easy to install. And for me, at that time, that meant it having a Debian package. I was a Debian developer, and having a Debian package was my criteria for judging if software was popular enough. I don’t think that any more, and I don’t even use Debian, but it was enough at the time to motivate me to do something about it. The original CouchDB build system was functional, but it was a custom job and would have made it hard to port to many systems.

I made a proposal to Damien and Jan that I rip out the existing build system, and replace it with a standard GNU Autotools one. That would enable me to package it for Debian with a lot more ease. They agreed that it sounded like good idea, and I set about my work. It quickly became apparent that I’d taken on more work than I realised, and I ended up taking a week holiday from work to finish the build system full-time. This was also the first time that CouchDB got the “couchdb” command we still use today, as well as the daemon scripts, and other operating system integration stuff that is now taken for granted. It was a lot of fun, and by the time we released 0.7.2 in November 2007, CouchDB finally felt like a "proper" project for me.

What had happened during that time didn’t really occur to me until some time afterwards. I had, unintentionally, become CouchDB’s third contributor, and an integral part of the community. The whole thing felt a lot different back then. There was no mailing list. Instead, we had a pretty cruddy discussion board. We used a bug tracker called BugShrink. Jan had written it with CouchDB as an example of “eating your own dog-food.” This was a matter of contention between us, and I argued that we should focus our limited time and effort on CouchDB proper, instead of trying to re-invent the wheel for the purpose of demonstrating the software. I was quite bolshy back then, and I remember a huge argument me and Jan had about documentation. He was planning to write a book about CouchDB, and I was banging on about how it should be freely licensed. Funny how that one turned out in the end! It was also around this time that Christopher Lenz joined the project, and built the incredibly awesome Futon interface.

It was clear that I had joined CouchDB on the cusp of popularity. The whole thing felt like a runaway train. The IRC channel started to swell up, and I had to nag Freenode to grant me Group Contact for the channel so that we could operate it properly. I got my name in the IANA port number document after registering port 5984 for CouchDB. Reddit and Digg and all the other social news sites were regularly bringing us new users, and we were becoming increasingly talked about. I still remember the first couple of times I was recognised for being involved with CouchDB by complete strangers, which is a great feeling! And then the decisive event that really helped catapult CouchDB was when Sam Ruby got interested in the project and approached Damien about donating it to the Apache Software Foundation. A few months later, and I had my apache.org email address, and CouchDB had it’s first release as part of the ASF incubator.

Joining the ASF was an interesting experience for me. I had come from a free software background, and proudly wielded my gnu.org email address around. At some point along this journey, I gave up on my publishing software. There was no other reason for my continued involvement with the project, beyond the fact that I loved being a part of the community. It was, and remains, so vibrant and positive. All of the aggression, and trolling, and arguments I had become used to on the free software lists just didn’t exist. It was comparatively idyllic! It slowly occurred to me that free software misses the point, and so does open source. It isn’t about enforcing freedoms and political agendas. It isn’t about more eyes for shallow bugs. It’s about community. Without a throng of decent, friendly people who are open to new ideas, discussion, and who enjoy collaborating and helping each other, a project like this is nothing. A good community can make up for poor documentation, and lack of features. A good community can make up for anything!

I love CouchDB, but I love the CouchDB community even more. I think we made the important decision to cultivate community right from the start. One of the key components in getting that right turns out to be the concept of a community gatekeeper, or steward. Someone to guide things back in the right direction when they get off-track. Someone to set an example. On the very few occasions someone has threatened the atmosphere on the lists and in the IRC channel, it has been nice to see people defend it with passion and with humility. When those people see how things work here, and how committed we are to keeping the grass green and not letting the project become mired by useless arguments and petty aggression, they either adjust or they leave.

That kind of self-sustaining community attitude is really refreshing, and if it ever vanishes, I probably will too. Though, it wouldn’t be without a fight. CouchDB has been very kind to me, and I owe her a huge debt of gratitude. Through my involvement with this project, I have met a tonne of new people, learnt a tonne of new things, published my first book, hired people, and been hired. Thanks, everyone!


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »