Since Code4Lib came up so often as we talked about the future role of a DLF program within CLIR, we decided to take a closer look. I attended Code4Lib 2010 in Asheville, NC, and offer this "first look" at a Code4Lib meeting.
One of the founders of Code4Lib told me, "I don't like to think of Code4Lib as an organization. It is people." Their wiki defines Code4Lib like this: "The Code4Lib community is a group of computer programmers and library technologists who largely work for and with libraries." Note it defines a "community" rather than an organization. This un-organization shows itself over and over in Code4Lib. The event is highly social as well as intensely technical.
Code4Lib started as a mailing list (firstname.lastname@example.org) in 2003 and quickly expanded to include an IRC channel as well. IRC (Internet Relay Chat), is an instant text messaging service that allows groups of people to participate in a single ongoing "chat." This conversation takes place inside a "chat room" and is, essentially, never-ending. The Code4Lib community began the IRC chat room so that they could interact with one another as they worked, both asking and sharing technical advice, and trading social tips like the music they were listening to or the score of the latest hockey game. The ethos of an IRC chat is deeply engrained in the Code4Lib DNA.
The Code4Lib community now also sponsors the conference which I discuss below, a journal, an aggregation of blog feeds from around the library/technology community, a music channel, and more. It manages this without a single paid staff member or even a permanent bank account.
The meat of the Code4Lib conference is the program. It is designed to be a conference where coders can really learn how their peers are getting things done. More than that, it is designed to be a place you can actually work and play together, whether that is hacking on some communal code or playing a game of werewolf.
In February 2006 the first Code4Lib conference was held in Corvallis, Oregon, hosted by Oregon State University (an institution which was denied DLF membership soon after that). It was envisioned as an Access USA with a broader technological bent. This fifth annual conference in Asheville had over 240 registrants.
Code4Lib is quite male, by library standards. 26% of those registered were women, compared to the 45% women registered for the last DLF meeting. This week it was described as, "the first library conference where men have to line up for restrooms and women don't." Organizers have made efforts to address this, including a gender diversity scholarship. Women made up about a third of presenters this year and were a vigorous presence in the IRC backchannel and discussions.
The schedule included 12 pre-conference sessions, two keynotes, 22 20-minute talks, over 30 5-minute lightning talks, and a number of breakout sessions. The vast majority of these talks are given on a single track. Aside from the pre-conference and breakout sessions, everyone is at the same meeting. The presentations are quick, for the most part 20 minutes or less. At this meeting, though, the room is so big and the schedule so tight that there is only limited question and answer after each talk. A new innovation to get the room talking was an "ask anything" session that had the whole room both asking and answering questions.
The talks are, for the most part, very strong. Easily equivalent to the typical content of a DLF Forum talk, though usually a bit more willing to dive into the weeds than would be typical at DLF. They are a bit less about "look at the cool thing we did" than they are about "here's how we did what we did and what worked and what didn't." Some of the sessions were about tools, such as SOLR, Blacklight, OCLC Web Services, Drupal, Puppet, or Google Wave. Other sessions are about technique: improving relations between system administrators and developers, integrating testing into development, or applying agile development processes to library priorities. A few sessions are about new directions, ideas, or collaborative opportunities, including a proposal for a Cloud4Lib, and OCLC's announcement of its Innovation Lab, which OCLC Research authorized Roy Tennant to roll out at Code4Lib because this is exactly the kind of community OCLC wants to reach with this new effort. The lightning talks offer an even wider array of glimpses into the accomplishments, lessons, and techniques by giving any attendee an opportunity to share through a manageable five-minute slot.
Outside these presentations the expectation is that some serious work will go on. People gather in the hospitality room and hack together, or take part in pre-conferences where they have an opportunity to get their hands dirty installing and learning how to use new tools. The premium, at Code4Lib, is on doing. The talking is only a byproduct or a precursor to the doing, it is not the goal in itself.
Even during the presentations the environment is set up so that attendees can do things. The last few years the venue has been set up with tables for laptops, though pictures of the first conference show a high laptop/attendee ratio even without tables. With power and networking present, you can tune into sessions you care about, and work through those that are peripheral to your interests. Even while tuned in, the community is percolates. In just one day the conference generated nearly 4,931 IRC messages from 167 participants. Contrast that with the 550 tweets generated by 55 participants during the whole of the DLF Fall 2009 Forum. Code4Lib drives you to participate, ask and answer questions, tease one another, share links even if you are not up on stage. It is a very active forum.
Of course, 5,000 messages a day don't just focus on the meat of the presentations. The intensity of Code4Lib is supported by a vital foundation of social relationships. The conference is as much geared to tending those social bones as it is building the muscles of ideas and code. These social relationships build the trust and camaraderie that become partnerships and contributions to future efforts. This is the blood factory, and clearly shows its roots in the IRC chat that birthed this community. In fact, sitting in the same room while chatting with each other over IRC is a common activity at Code4Lib, even outside the big meeting rooms.
This year breakfast and lunch were provided, as were a number of break-time snacks throughout the day. While dinner was not provided, considerable planning went into communal evening activities such as a newcomers dinner (for which over 70 people signed up), a BBQ (over 70), and a veggie dinner (over 30). Organizers also provided a hospitality suite at the hotel that was open late into the night with music, laptops, and people all humming along together. This year there was even a community game of Werewolf one night.
To some extent the intensity of the technology focus is matched by the intensity of the social community. The whole hotel hums with Code4Lib in a way that feels quite a bit different from the relative calm of CNI or DLF. This can make it a bit daunting for a newcomer, there are a lot of inside jokes and apparent traditions to get up to speed on. The very un-organization-ness of Code4Lib can be confusing.
Who is in charge? Who is running this thing? There is no staff to turn to, the shared leadership of the meeting (rotating emcees, and such) make it hard to identify any particular go-to person for questions. This lack of staff, directorship, or authority leaves you looking in a new direction: at each other.
You are encouraged to trust the group, to trust your peers, to trust, even, yourself. This takes some getting used to for most of us. We are all likely familiar with the condition of being given responsibility for something without the authority we need to get it done. A typical conference removes this discomfort by at least removing the responsibility, which can feel a bit like a break from "work." At least we don't feel the lack of authority so keenly.
Code4Lib is very different. What you begin to realize is that though there is still not a great deal of responsibility (you can come and go from this meeting like you would almost any other), in fact you have authority. I had two visceral experiences of this that can serve as examples.
In one case a speaker was having technical difficulties. As he struggled to get his machine to project properly I realized what the problem was, a particular piece of software which I had also once used was interfering with the screen's brightness. I called out a few times, "it's Shades." After I did this to no avail, my neighbor asked me if I knew what was wrong. I said I thought I did. "Well, go up there then," he said. Click. I had been waiting for some other authority to help this speaker fix the problem. That's not how Code4Lib works. There is nobody but us in this room, we have to fix our own problems. I walked up, helped the speaker turn off that software, and the show went on. There was no particular celebration of this minor contribution on my part, it was just the way things are done.
In another instance I wondered on the IRC channel whether there was an evaluation survey that the attendees would be asked to complete so that future planners could make use of their feedback. Someone shot back, "no, because you haven't organized that yet." I dug in, and over the next day put together an evaluation that could be offered online and linked to the conference wiki. I was a newcomer at my first Code4Lib, but trusted to contribute nonetheless.
As an attendee you get a sense of this even before arriving at what longtimers will sometimes refer to as the "(urn)conference." The first hint is that registration, which involves money, is handled by an organization on behalf of Code4Lib, not Code4Lib itself. Then you learn that most activities are being organized on a wiki and you are expected to edit that wiki to do things as simple as sign up for a dinner or get onto the lightning talk list. Code4Lib tends to rely on the simplest tool that can get the job done, and often that is the wiki. Luckily, most people who consider attending have enough technical skill to handle this freeform style.
Unlike CNI and DLF, two other conferences that cover some of the same technical territory, it costs real money to attend Code4Lib. There is no organization, so there are no "member institutions" paying dues to cover the costs. The positive side of this coin is that anyone is welcome to attend. You just have to register in time!
This year participants paid $120 registration and mostly stayed in the conference hotel, costing another $130/night. The conference also received substantial corporate sponsorship. This year sponsors included platinum sponsor OCLC, silver sponsors Equinox, ExLibris, and Brown University, and bronze sponsors ProQuest, Serial Solutions, Oregon State University, Lucid Imagination, Princeton University, Index Data, Talis, and CrossRef.
Building a community of trust
There is no director of Code4Lib. No staff. On the agenda of the first Code4Lib was a session on making Code4Lib a 501c(3), but it isn't that either. The meetings are organized year to year by volunteers. An open Google Groups discussion (code4libcon) allows anyone to join in the discussion of ideas, presentations, and plans. Key decisions (where to site the next conference, which presentations to fit into the limited number of slots, what design to put on the t-shirt) are voted on via the Code4Lib web site. Other decisions are left to self-selected teams or individuals who throw themselves into the breech, though always staying in touch with the community via the list or IRC channel. Code4Lib develops your sense of authority, it helps you choose to take responsibility, it encourages your sense of trust in your colleagues. Being part of the Code4Lib community develops the very mental talents you need to build community code and solutions.
These first comments were in response to an earlier draft of this report. They offer great insights into Code4Lib, though, so I have left them as they are. You may also want to check out these other write-ups of the conference.
(Comments have been closed.)