If you're not already aware, the Rust All Hands event, originally scheduled for March 16th–20th in Thessaloníki, Greece was cancelled in January. The All Hands' is one of our members' favourite events of the year and we were quite disappointed that we weren't able to pull off the event this year. In the interest of being transparent, as well as documenting for future events, we have written a retrospective about what happened, what we learned, and the future of the All Hands.

Timeline

Context

Both previous All Hands took place in Mozilla's Berlin office. Mozilla traditionally sponsored the event, providing the venue and catering, and also paying for the flights and accommodation of volunteers who didn't have a company or other person to pay for them. It was a good way to bring the entire community together for a week of planning, discussions, and camaraderie.

Still, after the last All Hands, it was clear that we couldn't do a third one in Mozilla's Berlin office. The Rust org was simply growing too big. The Berlin office didn't really have the space to accommodate us.

Finding a space.

As a group, our first step was to see if we could find other companies to sponsor a space. We followed a number of leads but ultimately never found anyone that had a space to offer at a suitable time. We started looking at other options, like private hacker spaces and universities. The University of Macedonia in Thessaloniki, Greece made us a quite attractive offer, and they had the right time available, so we decided to go for that.

Budgeting and sponsorships.

We in the All Hands group did our best to create a budget. Unfortunately we did not have access to any expense reports from the previous years. We had a survey we could use to estimate the number of attendees and a rough idea where they were coming from. We knew the costs of the venue. We added fudge factors. We thought we'd done a good job, though it would turn out that we were quite off in our calculations.

However even based on our estimated budget, it was clear that Mozilla was not going to be able to cover the costs alone. This seemed like a good opportunity to try and build relationships with some of the companies that have started to use Rust by approaching them for sponsorships. We weren't sure, though, how many sponsorships we'd be able to get, and so we hit upon the idea of using paid tickets.

Tickets

The idea was that people could purchase a ticket to the event, which would help to cover the costs, but that it was also okay to have a "gratis" ticket. Tickets have the advantage of being relatively easy for people to submit in their expense report if they are travelling with a company. We also found a number of companies who might be interested in a more traditional sponsorship.

Finding a bank account.

Still, we had another problem. The Rust organisation does not have a bank account we could use to collect and distribute money, and we didn't have an obvious entity to sign legal agreements.

At this point, we spoke to a company that might serve as a bank account. We had a quick call and went over a plan that seemed promising. Mozilla would contract with them for their services managing and organising the event, and this would serve as Mozilla's sponsorship. The other sponsorships and proceeds from ticket sales would collect in their bank account and we would manage distributions.

Pulling the trigger.

At that point, we sent mail encouraging people to book tickets, and we also started following up more with sponsors. Our expectation was that we would soon have a bank account for collecting funds, and we started collecting information to repay people who had booked travel.

In retrospect, it's clear that this was premature. It seemed like all the pieces were in place, and we knew that if people didn't start booking tickets, they never would. But the pieces were not in place, not actually, and we clearly should have taken this moment ask whether we were really going to be able to pull this off.

Realising it won't work.

This all started to unravel about a month before the event. In short, we encountered some logistical hurdles around finalising the business and legal aspects within the organisation's constraints that also prompted us to review the finances in more detail. This revealed that our estimates were off. Thus, we were faced with a tough decision:

If we continue with the event, there was the chance that the logistics would just fail to come together. That would leave attendees in Greece, out of pocket, and without an All Hands to attend.

Further, we might not be able to raise enough money to be able to pay for the entirety of people's travel and lodging as we had promised. This would be unfortunate, though perhaps something people could live with.

On the other hand, if we cancel, we have to deal with the fact that people had already started booking travel, and not everyone would be able to get a refund from their airline/hotel, and accept that there might not be an All Hands this year.

After much analysis and discussion with the Rust core team, we ultimately opted for the painful but ultimately safer route: cancelling the event. The cost to cover cancelling in January was relatively low, and even if it did come together we were worried about the high stress of pulling it off burning people out of the project.

Addendum Since we cancelled the All Hands, outbreak of the COVID-19 in Europe in the recent weeks, would have caused the event to be cancelled regardless. In a weird twist of fate, we were fortunate to cancel when we did.

Lessons Learned

Bound uncertainty and total cost. — Promising to cover all travel with no kind of upper limit was unwise. It had worked in the past, perhaps, but the event was growing, and that was partly luck. Organising an event is very complex and there are a lot of unknowns, and it was clear for some of them we didn't have the time or resources to resolve them adequately.

Location, location, location — It was hard to find a good location. While Thessaloníki was cheap and great in some ways, we encountered some logistical hiccups that made it less than ideal. For example; we found that the cost of a lot of the flights for our international members were quite high compared to other European cities.

Know your audience — Some companies weren't interested in sponsoring because the event wasn't sufficiently high profile, or because the "ROI" ("Return On Investment") didn't quite fit into the budgets and categories it would have to come from. We also had some uncertainty about how much "participation" to offer in exchange for sponsorship, since we didn't want to give the impression that anyone could just "buy their way" into the All Hands — at the same time, there is clear value to the Rust organisation in having sponsors participate.

The Future

Right now, we're currently organising with Mozilla reimbursing anyone who had purchased non-refundable ticket. We're also going to take the time to step back and re-evaluate what kind of event is possible, and what kind of event our members want to attend.

If you're a member of the Rust programming language organisation, you should have received an email containing a link to a survey asking you about what kind of All Hands you'd enjoy, and what you would want to attend. Once people have had enough time to respond, we'll publish the results on the "Inside Rust" blog.

If you didn't receive an email and you believe you should have, or you have anything you'd like to mention in private to organisers. Please email us at rust-all-hands@rust-lang.org.

It's very unfortunate that we weren't able to have the All Hands like we planned. We know that it's a lot of our members favourite Rust event, and we would like to thank everyone for reaching out and being so understanding.