Open Data Hackathon
How to Guide

October 2012

v 1.0


The Open Data Hackathon How to Guide by Kevin McArthur, Herb Lainchbury and Donna Horn is licensed under a Creative Commons Attribution 3.0 Unported License.


Contents

Introduction

Why “Hackathon”?

Why hold a Hackathon?

Preparation

Assemble a Team

Choose a Date

Choose a Venue

Choose a Time

Choose a Sponsor

Letting the World Know

Hackathon Toolkit

The Hackathon Day

Setting Up

Introduction

Agenda for the Day

Brainstorming

Pitching

Formulation

Lunch

Concentration

Show and Tell

Appreciation

Possible Challenges

Clean Up

After Event

Epilogue


Introduction

We wrote this Hackathon Guide for a few reasons.  First, after more than a year of monthly hackathons held here in British Columbia, we felt we had some experience to share.  If our experience could make it easier for others, then that’s awesome.  Second, we believe in open data and in the ability of hackathons to increase awareness and understanding of the value of open data and its ability to solve difficult problems.  We need you and others to take on organizing and holding hackathons in order to spread the awareness and make a greater impact.  Sharing our experience and approach through this guide is a way to help set you up for success and further your cause and other causes that are bolstered by open data.

We hope you find it helpful.  And, if you use the guide and want to let us know about your hackathon experience, we would love to hear from you at:  info@opendatabc.ca.

Why “Hackathon”?

The term “Hacker” has been somewhat abused by the media, such that many may now view it as a derogatory term.  It has often been used by media to describe criminals who infect systems and breach networks.  

The reality of the true Hacker, and of the Hackathon couldn't be further from this image.

Hacker. Noun. "A person who enjoys exploring the details of programmable systems and stretching their capabilities, as opposed to most users, who prefer to learn only the minimum necessary." - The Jargon File

The Hacker Ethic originates from the early days of the computer revolution.  To call someone a “Hacker” is viewed as a compliment.  The Hacker Ethic centers around the principle that information should be free [as in speech], and that people should have the freedom to repurpose everyday devices in new and unexpected ways.

Hacks are novel creations or solutions to problems and the purpose of a Hackathon is to create them.  Hacks are not always elegant, and may sometimes be little more than prototypes, but they can be transformative and expose new ways of solving problems or analyzing data.

The word “Hackathon” comes from combining the words ‘Hack’ and ‘Marathon’, and implies a long sprint to create something useful in a single event.

Why hold a Hackathon?

Before you run a Hackathon, it’s useful to think about the purpose behind it.  What are you hoping to accomplish?  Your goal can be as general as “increase awareness around open data” or more specific, such as “fix at least 10 bugs in software application X”.

As well, think about the stakeholders for your event, including attendees, volunteers, sponsors and third parties, and what they might get out the experience or how they might be impacted.  For example, you may want your attendees to be inspired or have them learn new skills.  You might want a third party, for example the homeless, to benefit.

And finally, it’s useful to think about what you will get out of the event.  Is it an opportunity to build your community?  Perhaps an opportunity to demonstrate leadership or to practice facilitation?

Paying attention to what your various stakeholders might get out of the hackathon and being intentional about people having a positive experience can greatly increase your likelihood of success.  Knowing what you want is a large part of getting it.

Preparation

Assemble a Team

People like to help out with causes that they believe in.  Involving others in the planning and running of your Hackathon is not only practical, it’s a way to give others an opportunity to contribute.  Here are several practical roles for people that will help your Hackathon run smoothly:

Facilitator

The person who manages the Hackathon process.

Ringer

A participant who understands open data concepts and the technologies involved and who can work on projects and help others to work on their projects.

Room Manager

The room manager is someone that people can go to when they are not sure what to do and would like some direction.  People who attend may have little or no experience with Hackathons.  The room manager is the go-to person for those who do not know what to do or how they can help.  

Social Media Manager

This person will Tweet and update Facebook and Google+ status for your event.  If your organization has its own Twitter or other social media accounts, you may want to consider giving this person temporary access so they can manage the social media tools for the event.

Active use of social media during your Hackathon lets others know that your event is happening and allows those who aren’t there in person to participate.  We recommend using a Twitter hashtag chosen by the participants for your event, such as #hack2012.

Having a dedicated person managing your social media and creating status updates also makes it easy for others to retweet and publicly endorse your event.  This spreads the word and increases your impact.

You might have other roles that you want filled, as well.

Choose a Date

Choosing a good date for your Hackathon can have a significant influence on how well it is attended and how much impact it has.  Hackathons take concentrated effort over at least one day, so community Hackathons are typically held on weekends when most people are not working.  Make sure you choose a date far enough in advance to allow yourself time to promote it to attendees.  

In addition, we recommend that if possible, you avoid the following when choosing your date:

  • holiday weekends
  • politically significant dates, such as elections, especially if you are organizing a  government open data Hackathon
  • religious holidays
  • summer months if possible (it can be challenging to gather together attendees, especially in smaller cities.)
  • weekends with events already scheduled that will compete with your event for attendees (other Hackathons, ChangeCamps, conferences)

Choose a Venue

The venue you select should be the right size and style for your event.  Hackathons can be held in many different venues, such as pubs, coffee shops or restaurants (if they have a separate space), rooms on campuses, or work areas or boardrooms provided by sponsors.  

Choose the right style of venue for your event.  For example, choosing a pub for a Hackathon where some of your desired participants are underage will not work well.  

Choose the right size of venue as well.  Asking for pre-registration can help in choosing an appropriately-sized venue.  It is not always a reliable indicator as some folks do not like to commit or are reluctant to share their email addresses.  That said, asking them to register beforehand will give you some idea of how many will attend.  You can use a web service such as EventBrite, or you can simply use a Google spreadsheet.

It should be possible to find a venue that you can use for free, although this is not always the case.  The venue should be located somewhere accessible for most of your attendees.  Ideally, it would also be free of access controls (e.g., locked doors). Where this is not possible, make sure that you have clear signage or greeters to make sure everyone can access the venue.  You could post your cell number on the signage so your participants can call to be let in.

The venue must have a solid Internet connection, preferably with both wired and wireless networking. Where possible create a event specific SSID and Password for the wireless network that is simple to type and write down. A good example would be SSID = hackathon, Password = sponsor2012.

Visit the venue ahead of time and make sure the room and network specifications are up to the challenge. Wireless networks are especially troublesome, so ask to see the access point -- if it looks old/cheap, enquire if you can configure your own more suitable equipment. Ask about outgoing firewalls or network restrictions that could cause problems for developers as they will use ports and network services that may not be used normally. Ports 22, 80 and 443 outbound are especially important to ensure that they are free from blocking/filtering or proxying.

Consider where food will go (best in a separate area), and the location of trash bins, tables, etc. Will everyone in your group be able to sit at a table with their laptop, have access to power, talk in groups, and eat?

Choose a Time

It’s important to choose a timeframe that works for your expected audience. If your Hackathon will run from 9am - 5pm and targets working developers, it may be best to host it on a weekend. This will minimize time conflict with your participants’ employment.

Make clear the schedule of your event to participants in advance. If you choose a 9am start time, expect 20% to show up at 10am. Having an itinerary published at event signup will help make sure you can get started earlier. Schedule reception type activities at the beginning of the day to allow for some late arrivals.

Choose a Sponsor

Unless you have a budget for Hackathons, you will want to find a sponsor for your event to cover your costs.  Costs include those for a venue (if you are unable to find a free option), and food.  Your sponsor may be able to provide you with a venue for your event.  

In addition to providing a good working space for your attendees, it’s a good idea to provide plenty of food.  Not only will your attendees appreciate the gesture, but you want them to be able to focus on their projects without the distraction of leaving to get food and drinks.  For a one-day event starting in the morning, be prepared to provide coffee and pastries in the morning, a nutritious lunch with beverages, and snacks, water and cold beverages through the day.

From our experience in various cities in BC, we had 30 attendees on average.  We have had as many as 60 and as few as 12.  Plan on spending $300 to $400 on food and beverages, depending on the number of attendees to your event.

When you talk to prospective sponsors about your event, they may have never heard of Hackathons.  They will want to know what to expect, so be prepared to explain a bit about Hackathons as well as about your cause.  

Before you go to talk to your prospective sponsor, think about how they can benefit from your Hackathon so you can explain to them.  Benefits may include:

  • positive exposure from the event
  • being associated with open data
  • being able to meet and talk with the Hackathon attendees
  • having attention paid to their particular business area
  • exposure for their open data efforts
  • having prototype apps created using their data

Be sure to let them know that you’d like to thank them publicly for their support, both on your Hackathon web page and via your social media.  Sometimes event sponsors are happy to help out but are not comfortable with the more public forms of gratitude such as Twitter and Facebook, so be sure you have their permission to mention them in social media.  You want to show thanks in a way that works for them.

The types of organizations that are often happy to help out are:

  • Information Technology vendors
  • local and provincial governments
  • local businesses
  • software development firms
  • trade associations
  • educational institutions

In some cases, you may find an organization that would like to provide the food, but doesn’t have a venue.  In other cases, you may find someone who is willing to provide a venue but not a budget for food.  It works fine for you to have two (or more) sponsoring organizations and and recognize them both.

Part of the benefit of using sponsors is of course covering the costs.  Another benefit is to increase the exposure for your cause, or associate your cause and organization with other organizations.  Remember the reputation of your cause and organization will be affected by the host and sponsor you associate with, and vice versa, so choose organizations that are well respected and easy to work with.  Be respectful, gracious and professional in your interaction with them.

Letting the World Know

You will want to promote your event effectively so that you get the mix of attendees you want at your Hackathon.  

Your Hackathon attendee list will likely develop organically, which is a good approach.  However, if there are particular groups you would like to have attend (public servants, citizen advocates, developers, students), you will want to think about where best to reach out to them to be sure they know about the event.  

There are some tools you could use to promote your event, including:

  • Twitter - if you are established on Twitter and your Hackathon fits with your normal identity and audience, then use your Twitter account to let the world know.  It may be desirable to create a new account and get help from established and relevant Twitter id’s to help you with promotion.  For example, if you are organizing a community Hackathon to benefit a community cause, connect with the Twitter mavens in your community and ask them to retweet you and otherwise spread the word.
  • Facebook - you could create a Facebook page to promote your event.  
  • Blogs - if you are a blogger, then write a post about your event.  Brief and succinct are usually good rules of thumb, to be sure the key information is read.  Link to registration or other relevant sites from your post.  You can also ask others who are connected to the cause for your event to blog about it.
  • Mailing lists / google groups
  • Websites
  • Map
  • Hackathon web page
  • Word of mouth
  • Other organizations
  • Government officials and representatives

Hackathon Toolkit

There are several things to bring with you on the day of the hackathon, including:

  • Power bars - so that everyone is able to connect to power with their laptop
  • Extension cords - to run from the wall outlets to your tables and power bars
  • Network cables - for use if the wifi is spotty
  • A quality wifi router - this is a backup if the venue wifi is poor.  Do not rely on cheap home gear, as the router will not be up to handling the number of clients at a hackathon.  Choose a router with at least 64MB of ram, and a quality simultaneous dual-band radio.  If the venue is large (like a conference hall), consider wireless extenders.
  • A projector - attendees can connect their laptop and show off their projects at the end of the day.  Consider bringing an apple connector if you are expecting lots of Macs in the room.
  • An extra laptop or two - for the use of any attendees who don’t bring one
  • Wide painter’s tape - for taping down cords
  • Water
  • The link to the web page for the day and relevant materials
  • Signs for doors - to help your attendees find the venue and contact you if needed
  • Photo release forms - if you are planning to take pictures, you will want to get permission from your attendees and have them sign a release.

The Hackathon Day

Setting Up

Ideally, you will have a technical person helping you convene the event. Have them arrive early and double check all the critical components.

Your technical person will want to complete the following tasks, long before your hackathon is due to begin (the night before, ideally, or at least early enough in the morning to troubleshoot any problems that occur):

  • Check the Network
  1. Determine who is available to support the network. If it goes down, who is available to fix it?
  2. Run a couple basic internet speed tests and make sure there is sufficient bandwidth available.
  3. Make sure there are no HTTP proxies in place, and that the network is unfiltered.
  4. Test that SSH, FTP and any other applications can connect externally.
  5. Make sure quality networking equipment is in use for wifi and get any wireless login credentials. Try to avoid networking configurations that are set up with a web-based login system, as these can cause technical issues. If this is the case, see if you can get a clean line and set up your own wireless router.
  • Arrange the work tables
  1. Try to allow for enough spacing to allow both laptops and food/drink at the tables.
  2. Make sure there are enough power outlets (powerbars) at each table.  As well, preferably enough wired network jacks at each table in the event they are needed.

While the technical details are being sorted out, another organizer will want to be setting up the reception table, food, coffee and snacks.

Signage is important. Make sure there are signs that let the participants know that they are at the correct building and that they’ve found the right room. There should be contact information on these signs and if there are access controls (security, locked doors, etc.) in place, someone should be actively monitoring to make sure no one is stuck outside. Don’t rely on a ‘call us when you get here’ system because not everyone will have a mobile phone.

Inside the room, use signs, a whiteboard, or a flipchart to communicate relevant information to your attendees, such as the wifi access credentials, website urls, Twitter hashtag for the event, etc.  Use text large enough that it can be read across the room.  

Introduction

As people arrive, welcome them and direct them to the area where you’ll be working and where they can find coffee and snacks.  If you have a photo release form, this is a good time to hand it out, ask them to sign it and return it to you.

People will arrive at various times regardless of the official start time for your hackathon.  We recommend that you start the event on time, only delaying if you don’t think you have enough people to get started.  Don’t delay the start more than 15 minutes in order to honour the people who arrived on time.

When it’s time to start, you[1] should get the attention of the room and give a brief introduction, being sure to cover the following topics:

  • your name and why you organized the hackathon
  • the title and the theme of the hackathon
  • a thank you to the participants for attending, and an assurance it will be a fun day
  • a thank you to the hosts and sponsors for providing food, space, etc.
  • an introduction to open data
  • an overview of the day

Optional: Depending on the time available and the number of participants, it is useful to have participants introduce themselves.  Ask them to state their name, something about themselves and what brought them to the hackathon.  This breaks the ice a bit and gives people some context as to who is in the room with them.

Finally, ask the participants if there are any questions before you get started.  Hackathons are a new concept to many people, just as open data is a new concept.   People may not know exactly what they will be doing, but at least you can give them some idea of the format, so that they can relax and focus on the next task.

Agenda for the Day

We recommend a certain flow to a hackathon.  The main components for the day (and the approximate timing) that we recommend are as follows:

9:00 am         Introduction

9:30 am         Brainstorming

10:30 am        Break

11:00 am        Pitches

11:30 am        Breaking into Groups / Idea Development

12:30 pm        Lunch

1:00 pm        Solution Development

4:30 pm        Show and Tell

5:00 pm        Close

We have provided an overview of each of the major components below.

Brainstorming

People often approach problems with preconceived ideas about what’s possible, based on what they know and their experiences to date.  This approach is great for survival, but ignores the the realm of knowing called “what you don’t know you don’t know”.  The job of the facilitator in this phase is to expand the realm of what’s possible so that participants can generate ideas that they may not have otherwise allowed themselves to contemplate.

There is a tendency to be realistic and come up with small, or practical solutions.  While this is fine, and simple solutions are often the best solutions, you want to encourage participants explore everything that’s possible to minimize the impact of the self-imposed limitations they walked into the room with.

You will want to provide a form or a shared spreadsheet to collect the generated ideas.  Google spreadsheets are perfect for this purpose.  Explain to the participants that they can enter their ideas into the spreadsheet if they want to, but that they don’t have to.  Sometimes people don’t want to record their idea in a public forum, and that’s fine.  The form should have descriptive information in the fields that help people think about some of the attributes and potential effects of their idea.

Here is an example of what your form could look like:

Field Name

Description

Title

Project Title

Description

Brief description of project

Audience

Who would benefit from this project and roughly how many people would this represent?

Data

What data is needed?

Where

Where is the required data?  Past URLs into the data if known.

Skills

What skills are needed to further this project?

Considerations

Are there any other considerations? (threats, risks?)

Similar

Is this project or a similar project being done elsewhere?  Provide URLs if possible.

Collaborators

Who is working on this project? (names, twitter IDs)  If you prefer not to say, that’s okay too.

Here is a link to the OpenDataBC form: http://goo.gl/Ye3DR  .  Please feel free to use this as an example; however, if you want to actually use it, be aware that your ideas will end up in the OpenDataBC ideas spreadsheet (and, we request that you only use the OpenDataBC spreadsheet if your event is an OpenDataBC sanctioned event).

Important: Let participants know that the spreadsheet is public on the internet.  If they don’t want to make their idea public, they may not want to use the tool.  Using the tool is not a requirement, it’s just a tool to help develop ideas and record them for those who want to do that.

Once you have described the brainstorming process, invite participants to start coming up with ideas.  The more ideas, the better, so if a person has more than one they should record them all.  Also encourage them to discuss their ideas with their neighbours.

Let them know that the brainstorming will take place over the next 30 or so minutes.  Remind them that there is coffee and snacks and that at the end of the brainstorming session you will be inviting them to talk about their ideas with the room.

Once they have started, ask your room manager to help you wander around the room and chat with people one-on-one to see how they are doing.  Different people engage differently when given an opportunity to brainstorm publicly.  Some will jump right in and will engage with others around them.  Some will want to work on their own.  Some will want to work with others but may feel awkward or shy about getting involved with others.  The hackathon team members can help by simply going around from team to team or person to person and checking in with them, asking how it’s going, if they have thought of something, etc..  Sometimes a suggestion that people work together or for someone to join a team is all it takes to make someone’s experience of the day much more engaging.  A little bit of one-on-one can work wonders for people to get more out of the process.

The brainstorming session will often take longer than expected.  It takes awhile for people to warm up and for the ideas to start flowing.  Remind people to record their ideas and give periodic reminders about how much time they have left.  Usually, 30 to 45 minutes is sufficient for folks to be ready to move to the next step.

Pitching

In the pitching phase, you invite participants to stand up at their tables one by one and share their idea with the room.  Remind them that the purpose is to introduce their idea so that they can attract other people to work on their idea with them (hence, the name of this component of the hackathon ‘pitching’).  They don’t have to end up working on that idea for the day, but they should pitch it in such a way that others get the value of their idea, and are inspired.  

This is an opportunity for you to inject some fun into the hackathon day, as you encourage your participants to do a really great sales pitch for their ideas.

Encourage people to ask questions about the ideas.  As facilitator, you should ask questions about ideas if you think of any that might help bring out the value of the idea or that might answer any obvious questions.  If people have more than one idea, encourage them to pitch as many as they want.  Also, if their idea requires a particular skill to implement (such as graphic design, writing, or data entry), let them know that this is the time to let potential collaborators what’s needed.

In addition to deciding which projects to work on for the day, the pitch session is a chance for participants to interact as one large group.  People are often nervous about standing up in the room and pitching their idea.  It helps if they see other people do it first so the facilitator should have one or two ideas to pitch and any other team members, especially the Ringer, should be prepared to pitch.

When everyone who wants to pitch their idea has had a chance to do so, it is time for you as the facilitator invite people to vote with their feet.  This means they pick up their belongings and move to the table where the person who pitched the idea they like best and that they want to work on, is sitting.  Encourage people to move around and work on the idea they liked.  If someone wants to work on their own idea, then they can just stay where they are.  Let people know it is okay to work alone if they wish, or in a group.

Formulation

When people move into their groups, they will be tempted to jump right in and start working on the project.  Remind them that they should spend some time thinking about and developing the idea itself before diving into working on it.  Suggest that they work on the whiteboards or on paper as a team to develop the idea for an hour or so, perhaps until lunch arrives.  The facilitator can also suggest that they focus their idea down to its core so that they can have something to demo to others by the designated show-and-tell time near the end of the day.

This stage is a bit chaotic as people find places to work, and that’s fine.  The facilitator should  walk around the room and watch for folks who are not getting into groups and check in with them to see if they need some encouragement.  Some people choose to work alone, and that’s fine, and some people are shy or nervous about getting into a group of strangers and just need a bit of encouragement to do so.

Once your attendees move into groups it’s a good idea to encourage them to spend some time thinking and rethinking the proposed idea, now that there are more people involved.  This is also when they can split up the work so that everyone has something to do and the project progresses as quickly as possible.

Lunch

At some point during this stage, lunch should arrive.  The facilitator should encourage folks to keep talking and working through lunch, and remind them that they have until 4:30 (or whatever your time for show-and-tell is) to work on their projects.

Concentration

Concentration is the stage where people are actively working on their projects.   Once the teams are working, members of the organizing team can wander around the room and check on the teams, answer questions, and work on their own projects.

One of the most important tasks of the facilitator and the organizing team is to make sure everyone who wants to participate gets the opportunity to participate.  Sometimes at this stage there will still be a few people who are not participating.  This may be because they don’t feel they have anything to contribute, or because they are there to watch and don’t want to participate.  It’s worthwhile having a quick conversation with them to see if they are in the first camp.  If so, you can connect them with one of the groups so they can be part of the project, even if it’s just for idea generation and discussion.  

If they are in the second camp, where they don’t really want to participate, then let them know it’s fine to observe.  

Show and Tell

The Show-and-Tell section is pretty straightforward.  It gives people an opportunity to show what they have worked on and get some feedback from the larger group.  

In preparation for this stage of the hackathon, you will want to have the projector set up, and accessible for people to easily connect to with their laptop.

When the show-and-tell time arrives, ask folks to finish up with what they are working on and ask for volunteers to show their project.  Have your projector ready, and ask folks to come up to the front of the room one by one (or group by group) and show what they have worked on.  The facilitator should encourage questions and be prepared to ask some questions of their own.

People are often keen to show what they have done but again, it’s totally voluntary.  If someone has worked on something but isn’t comfortable showing it the facilitator can offer to show it for them, but since most projects have been worked on by teams, there will often be at least one person in each group that is comfortable and willing to show it.

Show-and-tell can take 30 to 60 minutes depending on the number of attendees.

Appreciation

At the end of the hackathon, you have the opportunity to:

  • thank participants for their generosity - especially if your hackathon is a weekend event, and they have given up personal time to be there
  • thank the host and sponsor for providing the space and food (or whatever applies)
  • thank any data providers
  • thank any special guests
  • make your closing remarks

For the closing remarks, you can mention the cause that brought you together (“open data” for example) and any upcoming events.  Also, let people know where they can get more information about the community.  If you have a mailing list or web site, now is the time to let them know about it.

Lastly, declare the hackathon complete.

Possible Challenges

Sometimes people come to hackathon events to “headhunt” or recruit people for their companies or projects.  If they mention this as their goal, you will likely want to ask them to wait until after the hackathon is complete so they don’t disrupt the work in progress.

If a social event is planned you can suggest that as a better venue to engage to folks about employment opportunities, etc..  

Sometimes, you will have participants who are very chatty, and you may find a lot of talking is not conducive to productivity for some of your groups, particularly if tricky developing is underway.  If you have more than one space, or a large enough space where separation is possible, you can organize the room(s) to draw the chatty participants away from the developing teams.

Clean Up

Unless you and your host have an alternative agreement, be sure to leave the room in as good or better condition than when you arrived.  Doing so is important for your reputation, your sponsor’s reputation, your cause, and the willingness of your host to allow future events.  You may want to ask one or two people before the event begins if they can help, or alternatively, ask for volunteers at the end.  Usually, there will be a few people willing to lend a hand in restoring the space.

Post Event Social

Depending on when your event ends, you may want to plan to go for a social beverage after the event at a local establishment.  This can be a great opportunity for your participants to talk some more about their projects and the new possibilities they have invented.

After Event

Even after your event is technically over, there are still opportunities to connect with your participants.  In doing this, you can let other folks who were not able to attend know what happened (and make them wish they hadn’t missed it!).  In addition, it’s another opportunity to thank your participants, recognize what they accomplished through their participation and demonstrate progress toward the overall goals of your cause, in this case, open data.

Follow up actions we have found successful are:

  1. follow up email summary of the event to the larger community
  2. follow up tweets
  3. follow up blog posts, by yourself and other attendees
  4. demonstrations of hackathon projects in talks and presentations

Epilogue

We hope that you’ll find this guide useful.  Hackathons can be a lot of fun and at the same time, do much to further the cause of Open Data.

Please feel free to send us feedback or suggestions about this Guide to:

        info@opendatabc.ca

If you use the Guide for an event, we would love to hear about it!

Please visit us at:

        http://www.opendatabc.ca

The Open Data Society of BC is a member driven registered non-profit society.  We welcome all new members.  To join, please visit our membership page.


[1] in this guide, we are assuming that you are the facilitator for your hackathon.  However, you may want to choose a someone else with strong facilitation skills to fill this role for you.