Cleveland GiveCamp: Report from the Trenches

This July I participated in the Cleveland GiveCamp, a first for Cleveland and for me. GiveCamps are weekend-long events where technology professionals volunteer their time to work on projects for non-profit organizations. When I signed up for the event, I admit I did so with a great deal of skepticism; I really had no idea what to expect. I found it hard to believe that over one hundred IT volunteers could show up, get assigned to random projects with complete strangers, and accomplish anything substantial in one measly weekend. I failed to see how this could be anything more than complete and utter chaos, but I was willing to give it a try.

There turned out to be quite a fair amount of chaos, but it was the kind of chaos caused by a high level of excitement and energy. Jon Stahl, Andrew Craze, Mark Schumann, and the rest of the organizing crew did a fantastic job of herding cats and keeping the chaos (barely) under control. I want to thank everyone who was involved with organizing the event. I don’t know how they pulled it off, but the entire weekend was surprisingly well-run. There were a few minor hiccups here and there, but there weren’t any crises. Since I was rather dubious going in, I wanted to share my experiences as a developer at GiveCamp in case it would help someone else who is thinking about participating for the first time.

This event took place at LeanDog, but there were too many projects and volunteers to fit on their boat. Fortunately, the people at Burke Lakefront Airport (which is right next door) were kind enough to allow us to use their facility for the weekend. I arrived at the boat a little before 5:00 on Friday and was informed that I was tentatively assigned to the Cleveland Tenants Organization (CTO) team. Since this was a completely volunteer event, the organizers had no way of knowing how many volunteers would actually show up. Many of the non-profits had been put on stand-by and had only been notified at the last minute that their project had been green-lighted. As a result, many things were a bit tentative as the event started up. I had some time to kill before the official kick-off meeting, so I milled around and chatted with some friends.

After the kick-off meeting they started organizing the teams. My name was called for the Cleveland Tenants Organization team, as expected. I met up with the rest of my team, and we headed off to dinner. Just as we were walking away I heard my name called again. I went back to check and, indeed, I had been assigned to two teams. Whoops! I was told to just find a way to work it out. As it turned out, a representative from the second non-profit couldn’t be located, so I caught up with the other members of CTO.

Over dinner we began discussing the details of the project. Like most of the other GiveCamp projects, our non-profit had an existing website which was a bit dated and hard to maintain, so our goal was to provide them with a more modern-looking and easier-to-maintain site. We quickly ran into a snag getting access to their existing site. We had FTP access, but no administrative access. After a few calls, text messages, and emails to various CTO employees, we decided to just set up a new account with a hosting provider. This worked out fine as it allowed their existing site to remain up and untouched while we worked, and it gave them the flexibility to flip the switch to the new site whenever they were ready. However, this is something I think could be improved upon for future GiveCamps, i.e. ensuring each non-profit representative brings with them all necessary information to access existing web hosting accounts. I’m sure an effort was made, but I don’t think all the reps fully understood what might be needed. Scrambling around to get this information can seriously delay a project.

Then we had to decide which development platform to use. Their existing site was static HTML that had been written with FrontPage. We discussed a few options, and then I went to the first stand-up meeting to report our status and hear how the other teams were doing. At the stand-up I learned that most of the teams were using WordPress, which is one of the platforms we had been considering. When I reported this to my team we decided to follow that lead, though no one on our team had any WordPress experience. None of us had enough knowledge to know if it was a good choice or not, but since everyone else seemed to be using it, it seemed like a good option. (In retrospect, I’m not sure it was.)

After we decided on WordPress, the next task was to come up with a basic layout for the site, so we began by browsing the plethora of free themes available. As we were scrolling through the various options, our representative asked a very simple question, “Are there any themes that don’t look like a blog?” It turns out, not really. Eventually we settled on a basic theme and then began working on customizing it. That was about as far as we got Friday evening.

Saturday was spent learning WordPress, figuring out how to make it not look like a blog, and then uploading content. Our team did a great job. Surprisingly, I didn’t end up doing a lot of development work. I helped out Saturday morning learning how to configure WordPress, but it seemed like most of my time was spent helping out in other ways. I reported for our team at the stand-up meetings, which were every few hours; helped secure some outside help from some WordPress gurus and a designer; provided Internet access with my phone’s WiFi hot spot because the wireless connection at Burke was overloaded; and various other miscellaneous things. I have to mention here the wonderful WordPress assistance we received from Heidi Cool. She really helped us out a lot. Thanks Heidi!

At Sunday morning’s stand-up, it was clear there were a few teams that were struggling. Our team had things well under control, so I decided to free myself up to help out. I left the calm, cool confines of the airport and headed over to the boat to see if I could lend a hand. Wow! The environment was quite different over there. It was loud, a little warm and a bit crazy. First, I jumped in and helped one team with some busy work breaking some long pages into shorter ones. But later I and several others were recruited to help out with another project. It was around this time that whole event seemed to find another gear. We were coming down to the last few hours and many people were coming off finished projects and jumping in to help others. The boat was buzzing with activity and it was kind of fun to watch. In some cases I think the extra push helped, but for the most part I think we only confirmed The Mythical Man-Month theory. Lesson learned.

In the end, I am amazed at what got accomplished in just one weekend. I think all but one of the projects were completed. That’s just incredible. All of the sites looked very nice and some were quite impressive. I’m happy I was able to participate is such a great event, and I will definitely be back next year.

Additional thoughts:

Something that I think would have helped out many of the teams would have been for the organizers to send out a message a month or so in advance saying something like “Just to give you a heads up, most GiveCamp projects end up being WordPress sites. So if you’ve never used WordPress, you might want to take a look at it before the event.” It would have been a big help for me. I’m not sure if all GiveCamps are so dominated by WordPress, but this one certainly was.

The spirit of GiveCamp is to spend the whole weekend on site, work until the wee hours of the morning and literally camp out, getting minimal amounts of sleep. While that certainly could be fun, I opted to go home at night. And as it turns out, so did the majority of volunteers. Our team, and many of the others, called it a day between 11:00 and midnight, and resumed between 8:00 and 9:00 the next morning. So don’t feel like you have to do the camp out thing if you don’t want to.

On Saturday, I really started to question whether WordPress was a good choice for what we were trying to do. I think WordPress is a great tool for what it’s intended for, but it’s intended for making blogs not web sites. I’m really not sure why this seems to be the tool of choice for events like this. It is easy to use, administer, and add content, but we had to fight with it a lot to make it not look like a blog. I’m sure it’s easy to do for a WordPress guru, but for people that have never used the tool before, there’s a lot of obscure tweaking that has to be done. I wonder if tools like Drupal and Joomla wouldn’t be better choices, since they start off with the assumption that you’re making a web site instead of a blog. I’ve heard WordPress 3.0 addresses this, so maybe it’s a better choice now. In any event, we went ahead with it. I think the final result ended up being pretty good, nonetheless.

GiveCamp will wear you out; it’s a pretty intense weekend. I strongly recommend planning ahead and taking the following Monday off. I did and it helped a lot, but it still took a couple days before I felt normal again.

It seems that every GiveCamp has a shortage of non-developer talent, e.g. designers, DBAs, copywriters, testers, etc. We need to work on recruiting these talents in the future.

I definitely plan on making the Cleveland GiveCamp an annual event. I’m also considering going to other GiveCamps in my region. Unfortunately, the next closest is in Columbus and seems to happen right around the same time. This year the Columbus event was the weekend before. Doing GiveCamps in back-to-back weekends is insane, and so is Greg Malcolm for doing it. 😉 It’d be nice if these events could be spread out a bit.

At the opening, a representative from each non-profit talked about their organization. The organizers told us that at the closing they wanted someone else from the team to do the final presentation. They wanted someone who had worked on the project to talk about what they had done. While I like the sentiment, I’m not sure it works in practice. Many of the non-profit representative usurped the final presentation because they really wanted to talk about what a fantastic job their team had done for them. And, I think that was a good thing. It felt really good to hear them talk about how much they appreciated all the work and how the site was going to help out their organization, either by saving them money or helping get their message out. So I say, let the reps do the final presentation.