This post is the second in a series of three posts about hackathons at Cobalt. Read the first one "Why We Do Hackathons at Cobalt".
Twice a year, Cobalt arranges a hackathon for all employees. Since the start of the COVID-19 pandemic, Cobalt has been remote-first, and hackathons are therefore also remote. Even if there hadn't been a pandemic, Cobalt’s employees are at this point spread all over the world, so we must support remote collaboration the best we can. Like a lot of other product development, it's often beneficial for colleagues to be collocated — at least during certain key moments of a project or cycle. But if we are able to overcome a few impracticalities, I believe there are more pros than cons in a remote-first world. Let's look at the different components.
How to Run a Company Hackathon
1. Keeping information together
We start by creating a board in Jira (or whatever ticketing system your company uses). On this board people can post their ideas (I may refer to those as "tickets" or "issues" below), indicate their interest in joining teams, form teams, and eventually work together. The issue is the central place for each idea. Some issues turn into hackathon teams/hacks, and the issue is also where the team uploads artifacts during the live Hackathon.
The Jira board is then connected to a #hackathons Slack channel in our Slack organization, so that those with interest in hackathons notice when ideas are posted, teams are formed, and someone comments. Linking a Jira board to a Slack channel is obviously not anything new, but little things like this help to emulate the interest, discussions, and energy that you would otherwise have at an in-person event.
2. Picking the right date
Once we have updated Jira, Slack, and created a specific page in Confluence for the Hackathon, we decide on a date for the event. We like to give at least 2-3 months notice so that people can block the date in their calendars. It's important for the hackathons to not take place at the end of quarters or overlap with other important company events. This allows not just people from product development (Design, Engineering, Product Management) to join, but it really also encourages colleagues from other departments, such as Sales and Marketing, to participate.
When a date is decided, we add it everywhere (Confluence, Slack channel topic, etc.), we broadcast it on Slack, and we create a sign-up form (Google Form). Of course, this is not a legally binding form, but it reminds people of the hackathon, it gives us organizers a general idea of the participants, and we have a list we can use for reminders and sending swag.
3. Promoting the event
Whenever we mention the hackathon, send invites, and write about it, we make sure to remind people that they are all invited—and I mean everybody. We also speak to Management and remind them that they must encourage their team to join. It’s important that Executive Leadership and Management show their support and tell their reports that Cobalt’s hackathons are important, that employees are encouraged to join, and that the employees can clear their calendars for the two days of the event. We also highly encourage Leadership and Management to join, even if their calendars are so busy that they can just check in with a team a few times during the hackathon.
4. In-sync check in
At remote hackathons, we’re missing the in-person buzz and energy that boosts excitement and motivation. We have tried two things, but so far neither has worked out well. First, we tried creating Zoom-meeting links for each Jira ticket. We asked the teams to always have calls on that Zoom-link, so that anyone interested simply could listen-in on those Zoom-meetings. The per-ticket-Zoom-links didn't work well for us, and it's also not really apparent to others when a meeting between team members is ongoing.
We later tried one of these virtual office/event tools such as Teamflow or Gather. We created a virtual hackathon space with rooms for each team/hack/Jira-issue. This definitely improved the transparency on who is working right now and what’s going on. Virtual by-passers could get some notion without having to plan a meeting — sort of a virtual poke-your-head-in. It is definitely not as natural as stepping into a real room to listen in, but it beats a bunch of Zoom links that have no indication of “liveliness”.
I believe there will be a day when these virtual office tools can make it work (and obviously not just for hackathons) we're just not there yet. Perhaps with a separate device where these tools are running. Let’s see this space evolve as the remote-first culture grows. Feel free to tweet at me (@chrhansen) if you have any suggestions.
We invite the whole company on the Monday following the Thursday-Friday hackathon. We tell all teams that they have a maximum of 5 minutes to pitch, and that they should focus on convincing people of the following:
- the problem they are attacking
- demoing their solution
- what’s next
Each team tries to do all of that in a way that gets as many as possible as excited as possible about the hack and their work. The 5-minute hackathon pitch is similar to pitching at a startup accelerator or maybe even some short investor pitches. You don't need to have solved all the problems and know all the answers. But you do need to convince the listener that the problem is real and big, and that you and your solution — given some time — can be a big hit.
The short pitch is crucial, as it keeps the energy and excitement throughout the pitch-event. If teams think they need more time, it's probably because they need more focus on what they want to demonstrate, or they need to work more on their messaging.
6. Voting and Winners
At the end of all the pitches (that we do in one big Zoom-meeting) we share a poll in Zoom and give participants a few minutes to vote. We have three categories:
Maybe there's a B2B startup waiting to happen: A SaaS tool for organizing hackathons for companies.
Note: We've written a "hackathon handbook" (3-4 pages) with all the steps we follow to organize our hackathons. Contact us if you think it would be helpful.