Have you ever tried to solve a problem that is completely, utterly, ridiculously impossible?
Welcome to our world! We’re the team running the Chaos Communication Congress ticket sales, and we want to follow the good example set by the content teams, and explain a bit of our work.
Now, from the outside, our problems may not seem all that impossible. In fact, you may think we have very little problems indeed: We run the presale of a conference that is notoriously sold out, and that’s generally what you want when you organise an event, right? Well, yes and no. Our primary goal is neither to sell every last ticket nor to increase our prices knowing that we’ll be sold out anyways – our goal is to invite participants in a way that is consistent with the values represented by our event and our community.
The Chaos Communication Congress is first and foremost a community event. Its unique beauty as well as its unique challenges originate in the fact that we are a huge distributed anarchical group of unpaid volunteers who manage to build an event for over 16000 people, every year. To make matters even harder, our completely self-organised decentralised structures work without a single point of authority. If you think that this cannot possibly work, you’re not alone: It’s hard to explain to people on the outside, and when we try, we’re usually met with a blank stare or disbelief.
None of our Congresses would work without two overlapping, vaguely-defined groups of people: The teams who spend inordinate amounts of time before and during the event organising and working, and the local groups and hackerspaces who do a lot of great work throughout the year that has nothing to do with Congress at all. Without the people tinkering in hackerspaces, running smaller events, creating awesome new hacks, educating people, visiting schools to talk to kids, running workshops, discussing positions and organising protests … we wouldn’t have the vibrant community that turns Congress into an event without its like.
Consequently one of our goals is to make sure that both organising teams and active people from other groups have a chance of attending Congress – but at the same time, we don’t want to limit ourselves completely to people who have already done their part. We’d be completely caught in our own filter bubble, and therefore we also want Congress to be accessible to new people.
This is a tough one. Fundamentally, there cannot be a perfect solution: We sell less tickets than people want to buy and our community grows larger every year. Period. Which means that some people will not be able to buy a ticket, no matter how much they want to, or how good a fit they’d be for the event.
Possible solutions to this are manifold: We could turn the event into a private event only for people who are already part of the community. We could just increase our ticket prices until the demand balances with the available tickets. We could go by “seniority” within the community, or by capability by introducing artificial technical barriers (a quiz? a hidden ticket sales server via ssh?). We could insist on a personal recommendation from a trusted person, or expand this into a dystopian voting system where only people with a sufficient number of votes get in. We could set certain quotas by demographics and then distribute tickets according to age, gender, social status, income, text editor, or hair color. We could make ticket sales entirely random (more on that later), or just sell as many tickets as we can, ignoring the problems that start when you let a community grow faster than it can support itself. But we don’t think any of these are a good idea.
Our current solution works like this: We don’t sell all tickets to the general public. Instead, we start by handing vouchers to all dedicated volunteers from last year’s Congress, so they can buy a ticket for this year if they want to. Simultaneously, we also give vouchers to local groups, like hackerspaces, and some activist groups. Their vouchers spawn new ones once they have been used, so that these groups can distribute the vouchers among themselves. Roughly half of our tickets are sold to somebody with a voucher. (The truth is slightly more complex, and if you like reading rule books, you can read up on them in our documentation).
Once the tickets reserved for the active community are used up, we turn to the remaining tickets, and sell those in three open presale days. They are notoriously gone within minutes, if not seconds. The technical challenges of serving several thousand requests per second in an attempt to sell tickets is interesting in its own right, but we’ll leave that
as an exercise for the reader for another post.
Obviously, this is not an ideal system and it fails in a variety of interesting ways. For example, local groups may have questionable priorities when distributing their vouchers. People may have broken mailservers and will never receive their voucher. People who use a reproducing voucher may take a long time to pay, blocking people who wait for their replicated voucher. If you have very slow internet or slow reflexes or are not aware of the urgency, buying a ticket in the open presale is nearly impossible. It’s frankly heartbreaking to talk to people who will not be able to attend Congress.
And that’s a significant part of what we do: As the presale team, we answer all emails sent to our address, usually within a day. Last year, we received a total of 2690 emails and sent 1764 in 1623 threads, so roughly 10% of attendees contacted us. This excludes spam, but includes bounces – because we look at those, and try to figure out if there was a typo in the mail address, or if we know somebody who knows this person and can get in touch with them. If you write us, you don’t receive a canned response either – every response is more-or-less lovingly created by one of the four of us.
Other than that, what do we do? We usually deal with requests for vouchers from various groups, which has served to expand our knowledge of geography. Occasionally we help settle local conflicts when one group won’t talk to the other – it’s the Chaos *Communication* Congress, after all. To keep our workload at an unreasonable-but-possible level, we try to send vouchers to only one place per city, region, or thematic community. We also help people who found one of several tempting ways to make errors in their ordering process (typos in email addresses or payment references are the favourite). We help with payment difficulties and supply people with documentation for their visa application. We prepare the on-site ticket checkin – scanning this many tickets is a challenge of its own, of which we have written more here. We also administrate the servers, which is especially challenging when preparing for the open presale days, which can see request spikes of more than 16.000 requests per second, and requires a bit of careful planning. Before the presale starts, we negotiate conditions with the local public transport company, and help determine the ticket prices and what average ticket price we need to reach – you can always see the chart of average ticket prices here.
We’re also constantly looking for ways to improve the presale. Every year we make some minor changes and adjustments that go mostly unnoticed (which is good!). We have experimented with simulating parts of the presale, to get a feeling for the results that we would introduce with different replication rates, spawn times, and distribution mechanisms. This also involves talking to lots of people to help us balance the needs of different groups: Within Germany and from abroad, from within the community and newcomers, marginalised groups and people who have been around for most of CCC’s history, people who cannot participate in a regular presale for health reasons, and so on.
We’re nearly always happy to discuss your ideas, and we only have two requests if you want to let us know what you think: First off, please assume that we’re trying our best – because we are, and people who send us very angry mails about our malice or our incompetence just make us sad, but won’t improve the presale process.
Secondly: Please do not suggest that we try a lottery. We know, it’s tempting – it’s the first solution that springs to mind to solve this problem, but it’s also just not going to happen. The short explanation is: Any lottery that can’t be cheated easily will require us to check people’s IDs at the entrance, and that’s not something we are willing to do – both due to the logistical challenge of slowing down the entire check-in process extremely, and because we follow the principles of minimal data retention. We don’t care about your official names, we don’t want to check your ID, and we run screaming when thinking about the implications of this level of data aggregation.
A last note: While we have seen a lot of bitter, or angry, and occasionally hateful messages, we have also seen plenty of support, humour, and good-natured snark, which makes the whole effort more than worth it. Thank you!