Code Camps are *great* because you get to take a Saturday and go "all out" diving into the fun side of software development. It brings lots of people out that wouldn't normally come to a user group meeting. If you haven't had one in your neck of the woods yet, I recommend getting a few friends together and get the momentum going!
You may be surprised at how many people will volunteer to speak, that is if you approach folks with the right kind of excitement and ask them to get involved. Largely the challenge becomes two major pieces: getting all the logistics together, and advertising. For the event itself you'll want to find a place with at least three rooms, preferably more, up to around ten. Each room needs a good projector, and it's also nice if it has a whiteboard. A place with Internet connectivity is preferable. Having about half of the rooms configured with 10-25 person capacity is good, and then you'll need a few larger rooms with 35-100 person capacity. Setting up chairs in a gymnasium and bringing in a projector is an option if you can't find a theater. Whatever you can do to have at least one room that is large, because some stuff will be quite popular and draw a bigger crowd. Often private university campuses are perfect for this because it is effectively free advertising for the school.
I can't stress enough about how much effort you will need to take in order to reach everyone you want to attend at your first camp. If you have the right kind of zeal then probably around 15%-20% of all developers that you talk with will show up. But don't limit your reach to just developers because some systems folk may want to learn about code also. And when you tell folks about the event, specifically ask people to invite other folks they know.
In terms of advertising you'll want to start by getting to know the various user group leaders in your area. Stop in and say hello at every programmer-oriented user group you or your friends can attend. Linux, PHP, Perl, .NET, Java, Ruby, MySQL, Flash, etc. Everyone. Whoever is having a meeting in the near future, make sure you have representation. This is lots easier if you have a team of 3 or 4 people to go and talk up your code camp.
When you go to talk with a user group, bring up these couple of items:
1. Hand out a flyer detailing the Date / Time / Place for the Code Camp, with a few extra copies that people can give to their friends.
2. Ask what topics do you think would be fun to have at Code Camp. Perhaps even surf to the site and fill out a few areas for sessions, if your chosen website allows for this. This allows people to build a picture in their mind of what kinds of topics they can expect if they attend, and allows some in the crowd to drive the direction that the camp will take. It's a community event. Let the majority of the decisions about topic come from community members themselves.
Once you have introduced yourself in-person to the various groups and hopefully found a few speakers that will get the ball rolling for each technology, it's time to get listed on every technology-based newsletter or email list you can find. Many corporations have email lists for programmers, and if you can find people to get the word out there it's very valuable. Have a prepared message to share with people. Here's an example that we used:
What could be more fun than learning cool new programming tricks with 400 of your friends on a Saturday? We thought it sounded like fun, so a few friends and I have been planning a Code Camp for the Phoenix area! Mark your calendar for Saturday May 6th from 8am to 6pm for the first Desert Code Camp, to be held at UAT.
We're looking for people passionate about programming to deliver sessions. Response so far has been impressive, and we expect to fill the UAT campus to capacity. You can contribute to this exciting event both by suggesting sessions, and also signing up to teach them. Here is the website:
We look forward to your participation!
For websites some folks just use a simple wiki or a forum engine like Community Server. I've got a site I wrote for ours, and there's another pretty slick site that Jason Mauer put together.
Okay, so now that we've covered advertising, on to the second big challenge: logistics. Much of this planning will occur at the same time as your team is still busy advertising everything, so it's important to be able to multi-task and have good communication throughout the team. We've already covered what kind of facility to find, and here is an assortment of other small things that will be important.
It's great to have a "welcome area" where people are greeted, handed a schedule, and can ask questions. Having the schedule printed on a large board where you can note any changes the day of the event is also good. There may be a few freebies you want to give out there as well.
So you can best plan everything, it's important that you somehow judge how popular each given session will be in advance. Hard to get this part perfect, but there are some code camp sign-up tools such as the one I wrote which allow for this. Schedule the popular stuff in the middle of the day, between 10:00am and 2:00pm.
With some facilities insurance is something you will have to worry about. It costs us around $400 for insurance for the average 350-person events we run.
It's great if you can get a company to sponsor lunch. We had that luxury for our first camp and it was great; we just set up a bunch of boxed lunches and had people grab what they wanted. But you can't always get a sponsor. Our second time 'round we sold tickets to people so they could get a couple of slices of pizza. Didn't work so well because pizza takes time for people to pick out what they want and cut up the pieces and such. The line was long. If nearby options for lunch are available then just go with that. But if your facility is more remote then it's best to offer individual boxes / bags with sandwiches, burritos, whatever. Something individual so that the line goes fast. Another annoyance with food is when a vendor over-promises. We had that for our last run where the pizza place thought they could get everything to us on time, but they were like 20 minutes late. We had to tweak some things in the afternoon schedule to recover.
It's very nice to have a speaker's meeting before the event, usually the night before at a nice place for dinner. You may have some speakers flying in, so picking a place close to the airport may be good.
On the day of the event, have some extra equipment on hand like long DVI and VGA cables, wireless mice, speakers, and VGA converters for people with laptops that don't have an old-school 15-pin analog output. And if possible an extra projector just in case. Being able to accommodate the interests of your speakers means lots better satisfaction for them, and they're actually the most important people to me as a camp director. Sure, the attendees are also important, but if you keep the speakers happy every way you possibly can, then they will keep your attendees very happy! Also if the speakers have a good experience then they will do amazing things to help advertise your next code camp, and also probably present again in the future. So: treasure your presenters like gold. They are the life and blood of your event.
About one out of every 25 sessions will unexpectedly not run for one reason or another. Make sure you tell people that the schedule is subject to change, and be prepared if something dogs to go into that classroom and list off the other stuff happening during that same timeframe. This unexpected snag is just the nature of any un-conference. Hopefully it won't happen in any of your large rooms. For the popular sessions, make sure you get to know the presenter a little, and cater to their needs. You can then know if there's a risk of them not coming through and presenting, and plan better leading up to the event. Or you can set up a co-presenter for popular sessions, and if the main presenter fails then you've got that understudy that can pinch-hit for you.
You will be pestered by some people that want to run a session to advertise their product. Try hard to make sure sessions have value that can be implemented immediately, without having to buy a third-party tool. For our camps we recognize that people will promote their product during the sessions. That is just going to happen in some cases. So we give them a limit of 5 minutes per hour-long session to do just that. Local training companies sending instructors, evangelists for third-party technologies, etc. Let them have their say for a brief window, and let the majority of the time be focused on more universal code. Interestingly if you tell folks they have 5 minutes to talk up their product or service, they usually take only about one, and then they dig right into the fun stuff that everyone came to see. So this probably won't be that big an issue.
Don't think that you have to scramble to put together any presentations yourself. If you're inclined, present, but only a maximum of once during the day. There will be so many other details to tend to that will keep you hopping. Overall if you get the logistics together then all the technology guys come out of the woodwork and make it a success. Running a great camp is much more a question of advertising and logistics than anything else.
For those that are dedicated to both the community and technology enough to press forward and run your first camp, you'll find that it's quite rewarding. Let me know if there's anything I can do to help you out!