Florida DrupalCamp 2010 Case Study
Two Days, 176 attendees, Two Grateful Organizations with New Sites
Florida DrupalCamp 2010 held just outside of Orlando was the largest Drupal-related gathering the Sunshine state has ever seen. The February 20-21 event pulled in more than 175 attendees from Florida and the US, more than $5,000 in sponsorships, and generated a lot of interest in regional community building throughout Florida. Anecdotal input and a formal survey indicate the weekend was an unqualified success. In the spirit of open-source, this case study provides other DrupalCamp organizers insight into planning and organizing a worthwhile DrupalCamp, from early planning through follow-up participant surveys.
Overview
FDC10 was the culmination of a strong effort by the Florida Drupal User's Group, local companies, and generous sponsors. It was unique in many ways, including the number and diversity of the participants as well as how the event was organized. The weekend was less of a "barcamp" style event and more of a mini-DrupalCon, with almost all sessions pre-determined, and several generous sponsorships covering plenty of food and swag for all attendees who paid a minimal registration fee of $5.
The weekend featured a full day of sessions divided into three tracks based on experience level, including one dedicated to beginners to introduce users to the Drupal platform and sow the seeds for growing the community. The second day was Coding for A Cause, a coding sprint among 40 volunteer developers of all skill levels that built operational sites for two deserving, PR-savvy, Florida not-for profit organizations.
Highlights:
- Ensure you have enough motivated volunteers engaged in your group to pull off an event
- Begin planning at least 6 months in advance: determine dates, venue, scope
- Engage a Not-For Profit organization to manage finances, provide volunteers
- Leverage existing relationships with potential sponsors to make introductions before the ask
- Charge a token registration fee to prevent no-show registrations
- Designate a Volunteer coordinator to list and assign tasks
Initial Planning: 6 Months Out
We learned from FDC 10 that the initial planning to secure the location, dates, and sponsoring organization can be managed by a little as one or two (motivated) people.
When, Where, How Many
This was our second DrupalCamp in as many years, so we knew that planning must start early. We got started during a user group meeting in the fall of 2009. We were lucky in that MindComet, the company that hosts our monthly meet ups and FDC09, was immediately willing to host another DrupalCamp.
We are extremely fortunate to have MindComet as a host. It saves us considerable time in finding a suitable, cost-effective location. We looked into several venues before confirming with them, including a university, a downtown theater, and local hotels, which could have added considerably to the cost of the event.
We worked with MindComet, considered other events, and the makeup of our own to determine the exact dates and set a maximum number of attendees. The community agreed that February is a great time to be in Florida. We narrowed it down further by considering the needs of our host and avoiding conflicts with nearby BarCamps, and larger regional and national events like the Daytona 500 and the Super Bowl. Adding another day to the event for Coding for a Cause also factored in to scheduling as well as cost. We decided then that the added benefits to the learning experience out-weighed needing an additional venue day, incurring more costs and finding more manpower. FDC10 was Set for February, with a cap of 150, 50 more than the 09 event.
Where's The Money
Perhaps the single best decision we made during the early planning stages was to partner with Central Florida Computer Society , a local 501(c)3 organization for help with the financial aspects of the camp.
Advantages of working with an established 501C3:
- provide tax exempt receipts to sponsors
- avoid sales tax on goods purchased for the camp
- help with the overall financial management of the event.
CFCS contributed greatly to the success of the event, and we are grateful for their financial and volunteer assistance. During planning and at the event, their help was invaluable. Had we not partnered with CFCS, we had discussed approaching other non-profits, perhaps in some sort of trade involving Coding for a Cause for assistance with the financial administration.
Four, Three, Two, One Month out: The real work begins.
Sponsors and Schedule
About four months prior, we realized that we had enough dedicated volunteers to pull off a pretty amazing event. We created committees early on, most consisting of a single person. None of these committees worked in a vacuum - right from the start groups.drupal.org/florida became the information hub for generating ideas and gathering information for each committee.
The committees included:
- Financial and Sponsorship
- Sessions
- T-shirts
- Food/Drinks
- Marketing
- Location
- Volunteers
- Rental Equipment
- Social Coordinator
- Coding for a Cause
Financial and Sponsorship
This person was responsible for creating and managing the budget for the event as well as contacting potential sponsors and working with our 501(c)3 organization's treasurer. We created and refined the budget during our bi-weekly planning conference calls by estimating everything we thought we would need, and refining the numbers as more information became available. From here, we set a goal for sponsorships. FDC09 secured about $1,000 in cash sponsorships and a bit more than that via in-kind donations. The initial goal for FDC 10 was $3,000 cash, but jumped to $5,000 once we added Coding for a Cause.
Someone in the group who has a relationship with a potential sponsor usually made the initial contact through an email introduction of the volunteer handling Sponsorships. The volunteer followed up with details of the event, outlined available sponsorship levels (we used $500/$250/$100) and explained the promotion/exposure the sponsor would get in return. If they agreed to be a sponsor, an invoice was sent along with a request for organization logos (color and monochrome) and an organization description for the FDC10 web site. We had an amazing response to our initial contact, with well over 50% of the potential sponsors we approached signing on (see our sponsor list on 2010.fldrupalcamp.org). In all, we secured $5,300 in cash sponsorships, and additional in-kind donations.
In addition to the sponsorships, we (agonizingly!) decided to charge $5 for registration for the event (waived for students and non-profits). We charged this token fee to dissuade people from signing up for a free event and then not attending. This approach was the best way we could come up with to manage registrants versus attendees considering the hard cap on the number of attendees. For FDC09, we had no registration fee, about 120 people register, and about 90 people actually show up - a 25% no-show rate. With the $5 fee, we had 150 sign ups (as well as another 40+ on the waiting list!) with 135 actually showing up - a 10% no-show rate. We didn't receive a single negative comment to the $5 fee and it added $670 to our budget.
Sessions
This person was responsible for creating the session schedule and finding suitable presenters.
Everyone agreed we needed a full day, dedicated beginner track that included installation, basic concepts, and community involvement. While we mostly succeeded, it would have been better if we had organized the presentations and prepared a better experience by having each presenter build on the previous sessions work to develop an entire (albeit simple) site by the end of the day.
In addition to the beginner track, we also had "intermediate" and "special topics" tracks. Obviously we had a little more flexibility with these sessions, and our local Drupal community presented on various topics including GIT, cloud hosting options, Drupal search modules, image workflows, taxonomy, theming, and Drush (see all of the sessions).
We also felt it was important to get a true Drupal rock star to deliver the keynote presentation. We determined that Addison Berry, the Drupal documentation lead and a member of the Lullabot team was who we were looking for. She quickly agreed (again, who can resist Florida in February?) and we had the icing on our Drupal Sessions cake.
T-shirts
This person was responsible for the design, production, and delivery of the t-shirts. The budget included a t-shirt for each attendees so this task was able to be planned right from the start. The t-shirts had the Florida DrupalCamp logo on the front with a sponsor cloud on the back. We made the mistake of not asking for registrant's t-shirt sizes on the registration form, so had to guess at the range of sizes to order (whoops!).
Food/Drinks
This 3-person committee planned, budgeted, ordered, and managed delivery of the food for the event. One volunteer worked with local restaurants to provide lunches on both days, and two bought and delivered drinks and snacks throughout the day. Day 1 lunch was a burrito buffet set up by a local Mexican restaurant (this was a big hit!) A sandwich shop delivered box lunches on day 2. We provided 10 gallons of Starbucks coffee on day 1 and 5 gallons on day 2 (we had about 75 people attend day 2), which was just about perfect. We overestimated what we needed for water, juice, soda, and breakfast snacks (we spent about $500 on these items). This committee also ensured that we had coolers, ice, napkins, and other food- and drink-related items.
Marketing
While all of the FDC10 volunteers contributed to spreading the word, we had two people dedicated to get the word via local mailing lists, Drupal blogs, event web sites, and anything else they could think of. In addition we set up an @fldrupalcamp twitter account that we used continuously to communicate with the community. We made a concerted effort to attract out-of-town members of the Drupal community by posting information about the event on blogs that go out on Planet Drupal as well as getting the event on the home page of groups.drupal.org.
Location
This person was responsible for working with the host organization to make sure that all their needs were met and that they were kept happy. Part of this for FDC10 was purchasing event insurance (approximately $350). By no coincidence, our volunteer happened to work for MindComet.
Volunteers
We didn't know we needed someone to be responsible for this until we realized that it was being taken care for us. CFCS, our 501(c)3 organization, graciously offered to help us by providing some volunteers to assist with registration and other tasks. We didn't realize how truly valuable this was until the event was in full swing. Having people dedicated to handle registration and swag distribution as people arrived and to spend the day helping as runners and with logistics was an amazing advantage, and proved to be the single most important thing we learned. Those of us who organized the event love the Drupal community and wanted to participate in the event by attending or presenting sessions as well as talking Drupal with anyone and everyone. The CFCS volunteers allowed us to do that while they took care of the more "procedural" tasks. Amazing.
Early on in the planning process we talked about the potential need two or three "runners" for small tasks and errands like buying more ice/drinks, emptying garbage containers, and setting up lunch. Initially, we were going to hire some volunteers (friends, family members, students, etc...) CFCS ended up providing eight volunteers to whom we are grateful beyond words.
Rental Equipment
While borrowing space from MindComet was a great advantage to us, it did mean a few extra tasks. We rented 150 cushy chairs , a lesson we learned from FDC09 where the number one complaint was that the chairs were uncomfortable. We also rented an large outdoor tent to serve lunch under, and about 50 outdoor chairs, coolers, garbage cans, and a PA system for our "large" room. MindComet generously let us use their folding tables and some other equipment. All totaled, the rental equipment cost us about $1,200 for the weekend, including delivery and pickup.
Social Coordinator
All truly successful Drupal events include a strong social component. The opportunity to interact and network is vital to establish the personal ties that keep our community strong. With that in mind, many of the organizers and attendees made an entire weekend out of the camp, starting with a dinner Friday night and concluding with another dinner on Sunday night. It's important to plan and post the locations of these social events in advance so that everyone can join in. The Saturday night event is usually the biggest, so we ensured that the location we picked could accommodate (and was warned about) the crowd.
Registration
A committee to manage the registration and check-in process was one that we did not create, but absolutely should have. We used EventBrite to handle the signups and payment (in conjunction with CFCS's PayPal account), but we underestimated all of the little tasks that cropped up during the registration period and at the event. It would have been much better for a single person to handle refunds, ticket swaps, name-tag generation, and check-ins instead of the seat-of-our-pants method we used.
Coding for a Cause
In the future, we will definitely have a separate volunteer and/or committee to plan this event.
Our plan was to create and post an application for Florida-based non-profit organizations to apply to be a part of Coding for a Cause, select one by committee, and finally create a new Drupal site in one day using a small army of Drupal developers of all skill levels. Clearly, we had an oversimplified view of the process from the start. A little more planning on our part would have gone a long way.
A singe volunteer created the application and made it available to the rest of the organizers for comments and changes. This went smoothly and we were all pleased with the result.
One step we failed to plan for (or execute very well) was getting the word out to eligible non-profit organizations. We should have had a single person dedicated to this task, rather than the buckshot approach we took. The application was made available about 2 months prior to the event, and we extended the deadline by 10 days to encourage more response, but still received less than 10 applicants.
We used the Webform module for the application, which allowed us to easily download and share applicant information. Once the applicant deadline passed, we scheduled a dedicated conference call among organizers to discuss and choose the organization. Everyone chose their top three, which we discussed and then came to an agreement. It is easy to see where a more quantitative method might be of use, in order to take out any emotion from the decision process. In the end, we chose two organizations to work with, as one was clearly a much smaller site and we felt we had enough resources to complete both sites.
Before we deemed the decision "final", we wanted to talk to each organization to be sure that they knew what they were getting into, and to gauge their level of excitement and commitment to what we were doing. We felt it was crucial for members of the organization to be present for day 1 of the camp in order to gain a background on Drupal and the local community. We also felt it was almost mandatory for multiple members to be present for the actual "Coding for a Cause" day to answer any questions and make any decisions that might otherwise hold up the production process. By the time this process began it was less than two weeks until the camp began - less than ideal. Asking people to give up their weekend to learn and participate in this type of project with little or no background information on us is a big leap. Again, we got lucky, and both organizations were more than willing to participate.
Clearly, we didn't start the application and selection process early enough to afford us enough time to do adequate prep work with our new "clients". Determining the "client" a month prior to the event would have been better - instead, we had one week. We worked with the client via phone, email, and a single face-to-face meeting in an attempt to understand their needs and gather the required information (content, design information, existing infrastructure, business logic, organization staff roles, etc...) Additional time would have allowed us to do more and better-detailed research and planning for the site.
Both of our clients understood that the goal was to build out their entire site in a single day. With the manpower that we had, we felt that we could build out 100% of the necessary functionality but that theming would be where the client would need to be flexible. Neither client had any issues with this approach.
Ideally, in future Coding for a Cause events, the following information will be obtained and approved prior to the start of the actual event:
- Information Architecture (content types)
- Wireframes (enough to plan for the necessary views and blocks to be generated)
- Site map
- Initial mockup(s)
- Content to be added/imported
- User roles and permissions structure
- Additional functionality descriptions
At the start of our event, we didn't have 100% information on any of these, so we lost some time early in the day determining the client's exact needs.
Finally, another task that could have been completed in the planning stage was the creation of the core Drupal install with some important contributed modules in a code repository and public development site. We waited until the morning of the event to get this all set up and it wasted valuable time. Ideally, when the army of Drupal developers arrives, the first step would be a brief overview/lesson on the source code repository system being used, and the necessary URLs and user accounts to access it.
Planning Lessons Learned
As the planning progressed, we often found ourselves scrambling to handle a variety of minor tasks that we didn't account for in our initial planning.
Signage
Internal and external signage was necessary for our camp in order to help people find the building as well as find the various rooms within the building. We purchased six political-lawn-type signs we placed strategically in the neighborhood of the building and generated numerous paper signs that we posted as necessary within the building. Having a single person in charge of this would have taken the pressure of volunteers, who were already busy with other tasks.
Swag
As sponsors signed on, we began collecting swag to be given out to all attendees. Again, with the size of our camp, this turned out to be something that should have been handled by a single person. As we collected more and more swag, my company (DrupalEasy) made the decision to increase our sponsorship by purchasing cloth bags to be given away to each attendee to hold swag, t-shirts, business cards, etc. We ended up stuffing the bags the night before the camp - a process that took 10 of us about an hour to complete.
Projectors
Since we had three tracks of sessions, we needed at least three projectors. While we didn't have much trouble finding people/companies to lend us a few, we had hoped to have additional projectors and computers available to display the session schedule and perhaps a twitter feed, but without someone dedicated to the task (including setup), it just didn't happen.
Giveaways
In addition to contacting sponsors for cash donations, we also asked them for items that we could give away during the camp. This was a great success, as we were able to obtain more than 50 t-shirts, 30+ books, and a handful of DVDs that we gave away randomly during the camp. With a little more effort, we could have been more creative in the method we used to give things away with someone dedicated to the task.
Video
Early on in the planning process, we had some brief discussions about recording the sessions and making them available online. We decided that since this wasn't a necessity, we didn't want to make it a very high priority. Luckily, a couple of our user group members volunteered to record, edit, and post video from all the sessions. Each of our three session rooms had a dedicated volunteer cameraman, and each speaker wore a laviler microphone to ensure quality audio. Each speaker's slides were collected by the video team and will be incorporated into the session videos and posted online at Drupal Maestro.
Power Management
A single volunteer in charge of collecting, organizing, and setting up the necessary extension cords and power strips would have been helpful. Again, we took a very informal approach to this and while we provided a significant amount of extra power access points, a number of comments in our follow-up survey indicated that we could have used more.
The Big Day, Part 1
The night before, about 10 volunteers completed the set up in about two hours. We stuffed the swag bags, arranged the tables and chairs in all three rooms, ran extra power cords and strips, and prepped the registration area and the food and drink areas.
The morning of the camp, several volunteers arrived more than 1 hour before the posted starting time to finalize the registration table, ensure the WiFi access points were working (thanks again to MindComet for providing access), and to put out drinks and breakfast snacks. The majority of our 20 volunteers arrived prior to the posted starting time to work on their tasks and provide help where it was needed.
Registration went surprisingly well, considering we were sold out and didn't have much of a plan for walk-ins. Because of building capacity limits, we could only allow walk-ins admittance as people showed up and informed us that they had extra tickets. Of the 150 tickets sold, 135 people showed up and approximately 10 walk-ins were admitted.
For attendees, the registration process was fairly easy. As they arrived, their names were checked against a master list, and then they received a name badge and a swag bag. The Yelp community organizer for Orlando was at the registration table as well helping out by answering questions and encouraging people to get more involved in our tech community.
During registration, a Drupal installation party was going on in one of the session rooms with a half-dozen volunteers available to help camp attendees install Drupal (we actually used Acquia's DAMP Stack Installer). This was extremely popular, although we did have consistent problems with the stack installer on Windows.
To help keep things running smoothly, volunteers all wore a special red shirt (attendees were provided with identical white shirts), which helped attendees find people answer their questions.
A general session for all attendees kicked off the camp by introducing the three tracks of sessions, the overall plan for the day, and our sponsors. We also provided an "official" hash tag for the event, fldrupalcamp, that people could use to post items on the various social networking sites.
The day flowed smoothly thanks to two volunteer "room managers" for each room whose only job was to keep the speakers on schedule. It worked remarkably well and enabled us to stay on schedule.
At the end of the day, an amazing 30+ volunteers and attendees stuck around to help us clean up and arrange the room for "Coding for a Cause." This enabled us to wrap things up quickly and go out for a group dinner at a local restaurant, followed by a some social and networking time at a local bar.
The Big Day, Part 2
Since this was our first try at organizing a "Coding for a Cause" event, we knew that it would in part be a trial run with some mistakes we can remedy for the 2011 edition. Regardless, we tried to anticipate potential pain points and do what we could to mitigate them, but as expected, while the event was a great success we learned several valuable lessons.
More prep work prior to the day of the event is key to avoid spending much of the morning gathering requirements from the client and getting our source code repository up-and-running.
The week prior to the camp, we sent an email to all registrants asking them to fill out a survey about Coding for a Cause, in order to gauge how many developers to expect as well as their skill level and areas of interest. In the end, all we really needed was the overall number planning to attend, as we didn't use the skill levels and areas of expertise data that we collected. Since we had no control over who was going to attend, we were going to have to make due with whoever showed up, regardless of their skill set.
As developers arrived the day of the event, we assigned them to teams depending on their skill level and areas of interest. While the teams were being organized, the folks from WebEnabled worked with several of our infrastructure team members setting up svn repositories and development sites on their servers. Each site had a small "infrastructure" team dedicated to installing and enabling modules and overall site configuration. There were also teams for theming, CCK/Views, and additional smaller teams for dedicated tasks (content import, generating Webforms, etc...) Organizing the teams the morning of the event worked well and didn't take too much time.
Each team had a leader who very quickly organized their developers and started assigning tasks. It went fairly well, with no major issues. As we had guessed, the theming teams had the most amount of work to do - with the highest ratio of newbie-to-seasoned developers. We very quickly realized that a little bit of prep work on the theme prior to the event would have gone a long way. Just setting up the base theme and initializing the subtheme and creating some empty templates and css files would have helped immensely. Combine this with a mockup or two and the theming teams would have had a much easier time.
While the other teams had their challenges, having the client on-site enabled us to get questions quickly answered so work could progress. We did have a significant number of beginners want to learn module development, but didn't really have any custom module requirements for either site. We managed to find something that we could (and did) improve with a custom module and that seemed to satisfy some of the thirst of module development training.
By the end of the day, we managed to complete just about 100% of both sites with the exception of the theming. Several volunteers were more than willing to work in the days following the event to complete the sites. Unfuddle was used to organize and assign the remaining tasks to willing volunteers. We also had several people offer to volunteer their services indefinitely to the clients for site maintenance and training.
Standby Training
Since we sold out day 1 of the camp and we didn't want to turn away anyone who wanted beginner Drupal training, we decided to offer a very informal "Intro to Drupal" workshop on day 2 of the camp at the same time Coding for a Cause was taking place. We invited everyone who was on the standby list from day one and invited them to the two-hour session on day 2. About 20 people showed up and the two-hour session more than doubled in time as multiple volunteers took turns teaching various beginner topics. Thanks to the generosity of our sponsors, we were able to provide swag bags, drinks, and lunch to everyone as well.
Post-Camp Follow-up
At the conclusion of both days of the camp, we asked everybody to be on the lookout for an invitation to participate in a Florida DrupalCamp 2010 survey. We incentivized people to take the time to fill out the survey by randomly picking one survey and sending the user 2 Drupal books provided by our sponsors.
Of the 176 completed registration forms, we had 49 completed surveys, a 28% sample size. For the most part, the survey results where extremely positive. Some quick results:
- Over 80% haven't attend Drupal events regularly
- Almost 70% have been using Drupal less than one year
- Over 35% traveled more than 100 miles to attend
- Almost half categorized themselves as a "Newbie" or "Beginner"
- Over 30% found out about the camp via word-of-mouth
- Over 60% attended at least one beginner session
- Almost 90% rated the sessions "Excellent", "Very Good", or "Good"
In addition, we collected feedback on each individual session and left plenty of room for people to provide comments. Not surprisingly, the most comments were very positive and will be invaluable when it comes time to plan next year's camp.
Conclusions
Florida DrupalCamp 2010 was a great success. Problems we had were minor in consideration of the size and overall benefits to the individual attendees and the Florida Drupal community as a whole. The most valuable lessons we learned from this year's camp included:
- Partnering with a 501(c)3 organization was a huge component of our success. Their help with finances and volunteers was a camp saver.
- Coding for a Cause requires a small group of dedicated volunteers to work with the client prior to the event to maximize the productivity of the actual sprint.
- An exciting result of the camp was the initial surge of planned future meetups throughout the state. Because Florida is a large state, a single meetup location doesn't even begin to come close to serve all of our members. Because of the momentum gained from the camp, we have meetups scheduled in several additional areas of Florida. This will strengthen our user group as well as the quality of our Drupal community overall.
- Charging a small fee for the event didn't seem to have any negative impact at all.