Lessons learned organizing EuRuKo 2009

So, EuRuKo 2009 is over and it's time to begin organizing EuRuKo 2010! We've set up a little document to pass the Krakovian team some lessons that we learned along the way.

As this information might be of interest to more people out there organizing conferences (hello Satim!), we thought it would be better to post this on the blog. So there it goes:

Start early, move often

We started to talk and move things many months before, using our mailling list fequently. We think this helped a lot to sum up ideas, avoid mistakes, and have a clear target. We went public and set up the international list two or three months after we started our internal discussions. Once you go public (after choosing the venue is a good moment) people like to have reports often about how is everything going.

Conference outline

The first thing you need to do is to agree in the format of the conference. This is up to the organizers, but EuRuKo is traditionally a small, cheap, community-oriented, one-track conference. And we personally found out in Barcelona that Matz prefers to preserve that format, he likes it.

Our conference had 250 people, 30 euros, one-track, ... those are just our choices. You can do 230 or 180... is really up to you.

Also you didn't feel much of a sponsor pressure right? No sponsored talks, no sponsors in the t-shirt... Those were choices we did.

Venue

The venue is the most important thing you need to figure out. Stuff started to flow after we closed the deal with the venue, until then you don't really have a mental model for the conference. That's fine there's plenty of time.

Once you've decided the format of the conference you have the most relevant constraints for the venue. Like number of rooms and approximate room size.

The venue is very important, if you find a venue that eases chatting and makes for a charming place that's ideal. Because, you know, these conferences are about the people. Talks are very important of course, but people is the supremum. Let them feel at home, you're hosting the conference for them. Leave room for breaks, we all love having a coffee somewhere and join a group of people.

Equipment: wifi, sockets, projector, audio... Streaming and recording are desirable, but this is a cheap conference (if you decide to do it so), thus it really depends on budget. Something may go not so well here... in our case wifi worked like a charm (instead of sucking which is the normal thing :) Try to get a venue with preinstalled wifi, because ad-hoc wifi installements never work. On the other hand, mics for whatever reason didn't work perfectly. Sometimes that is just out of your control, aka shit happens :).

Date

Next thing is date.

The date of the conference is constrained by

  • The availability of the venue (that's why venue comes before).
  • Avoiding clashes with other Ruby/Rails European conferences.
  • Availability of key speakers, notably Matz.

EuRuKo is traditionally held on weekends.

Talk proposals

In order to receive talk proposals, what we did is set up a blog with SimpleLog at https://2009.euruko.org and then post the call for papers there. We asked people to send talk proposals to talks@euruko2009.org, and there were two of us (Jaime and Juanjo) reading this account, answering back to confirm we received it, and writing the proposals on a shared google document, in order received, so the rest of the group could read all of them.

It was a bit of a bottleneck. I think it would be faster and easier for you if you set up the application Fernando built (https://2009.euruko.org) that you can find at http://github.com/fguillen/euruko_app/tree/master and on the call for papers you tell people that in order to submit a paper, they need to first register on the app, and upload the description there. This way you'll have all of this already stored on the app, and from there you can approve them as you see. Maybe you want to hide this app until all the talks have been approved. Or maybe you prefer to make this public since the first day and set up a voting system so attendees can vote for the talks they'd love to see. We didn't do this, we took an opinionated approach, that is:

Deciding which talks to accept

There will be more talk proposals than you can fit reasonably in 2 days. So you have to decide which ones to choose. What we did for this is using a shared google spreadsheet, one row for each proposal, a column for each member on the organization team, and each one could vote each proposal with a -1, 0 or +1. Then you calculate the sum of all votes, order it and you have the best talks to include.

You can also talk about why some talks will be better than others and try to find a balance, cover different topics, etc., but this simple voting system was very helpful to us. If you talk everything you can get stuck on an eternal debate.

Sponsors

We set up a 3-levels sponsorhsip plan that you can find linked on the web.

  • Gold => 5000 €
  • Silver => 2000 €
  • Micro => 200 €

We couldn't get any gold, it was too expensive for these times. We did get silver sponsors, but most of the sponsors went for the 200 € plan, including big companies that would have been able to pay much more.

Why was that? We now think we underevaluated the power of banners on web sites. That is, it seems like the important thing was having a banner on the website: everybody will see it, people coming and people not coming. And it lasts longer there. Flyers, vynils or whatever was on the Citilab would only last 2 days and be visible only to the people coming.

Microsponsorship is a nice idea anyway: there is a big percent of small companies in the Ruby ecosystem and many of them can make a small effort to show their involvement with the community - 2000€ would have been too expensive for them.

Catering

We gathered information from catering candidates some months before the conference, but we were forced to delay our decission until a couple weeks before, because some sponsorships took too much time to be transferred and we didn't actually know how much money we will be able to collect and considered catering a secondary target.

The most important tip here is: be sure to negotiate precise amounts of food and don't rely on the catering company estimations. We were dissapointed with the Saturday's dinner - the ticketing system worked like a charm though.

Tools we used:

  • Public blog, simplelog at https://2009.euruko.org
  • Registration app, at https://2009.euruko.org, code can be found at http://github.com/fguillen/euruko_app/tree/master
  • Official twitter, at http://twitter.com/euruko
  • Twitter bot, at http://twitter.com/eurukobot, code can be found at http://github.com/jaimeiniesta/hashtagretweet_bot/tree/master (note: don't query twitter faster than once every 3 minutes or you'll get temporary bans, that happened to us at the beginning). So put a sleep(180) instead. Or what I did is just removing the infinite loop and call it with cron every 3 minutes. I'll pass the code and twitter password to you later, when we've finished our post-conference jobs (announcing videos, invoices, etc.). If you prefer I can just keep the bot on my server running as it is, no problem.
  • Mailing lists on google groups. A public mailing list and an internal one, just for the organizers.
  • Google docs for sharing docs and spreadsheets, internal use only.
  • Invoicing web service, http://facturagem.com to generate, track and send the invoices, internal use only.

Legal stuff

We founded SRUG as a non-profit association. It took some bureaucracy but it was the right move: everybody works like a team, there are no companies or personal interests involved and the money management is crystal clear.

We opened a bank account and two members were authorized to manage it: the association accountant and the assoc. president just in case. Once the money started to come in, the accountant informed periodically about the pending payments, account status and so on. We hired professional assesment to deal with taxes and legal tasks.

The conference tickets were payed through the Paypal gateway, and then we transferred them to the bank account. We left around 300€ in the Paypal account because we suspected that somebody would need a last-time refund if they finally couldn't attend, which was the case.

To gain some agility, some small payments (<300euro) were made by staff members, who asked for invoices at charge of SRUG. Once the invoice was received by the accountant, he transferred them the money back from the bank account. Higher payments were always transfered directly from the bank account. This way every payment has an invoice so they are easily traceable.

The sponsors money was bank transfered and invoices were made for all of them - note that some international transfers took ~10 days.

No attendant invoices were made before the conference as there can be last minute changes. Once the conference was finished, people could ask for invoices in the mailing list or invoices@srug.org. Attendants filled their invoicing data when they registered in the webapp, so it's easy to generate invoices and send them by email.

Expenses

The main expenses were (aprox):

  • t-shirts: 770€
  • t-shirt prints: 700€
  • taxes (there will be another payment later): 150€
  • Citilab: 3500€
  • Matz's hotel, flight, etc: 1500€
  • Paper prints, badges, tickes: 450€
  • Dinner: 3000€
  • Catering tickets: 1000€
  • Hosting, domains: 200€

Of course YMMV.

Provide information about the city where EuRuKo is located in

It can be so useful because maybe people wants to visit something if it's closer enough to visit during a talk which they are not interested in. City maps, where to go, where to eat, what to eat, tube maps, bus lines and timetables, etc.