Some hackathon lessons learnt

Just yesterday I came back home from the first Europeana Hackathon!  I’m still a little bit buzzed… The event went off on Friday and is the first of what I hope will be a few more this year. I thought I’d share some of the lessons I feel I’ve personally learnt when it comes to arranging a hackathon (or hackday) and how I see how the hackathon fits into our product marketing strategy. Please feel free to add comments, corrections and sage advice!

Europeana Hackathon #eurohack

At the Europeana Hackathon at Mediapark, Hilversum, Netherlands. Photo: Ton Zijlstra.

When the first version of the API was developed in late summer last year we (our little API-team consists of myself and my colleague Milena) ran a closed beta phase where we approached member organisations, the ones we hoped were likely early adopters, of the Europeana network to develop pilot applications based on the API. The reason we did this was that we wanted the launch of the API to the full network (about 1700 GLAMS and other organisations) to be accompanied with a number of in production applications or prototype applications. In turn, the reason for that was that we were aware of how abstract and vague the notion of APIs were to many stakeholders and decision makers within the network. So we wanted to the potential rewards of a Europeana API to be tangible and clearly outweigh the risks.

During the Europeana Open Culture Plenary in October last year these beta applications were first presented to the network. The results of the beta were positive so we decided to go live with the API early this year. And so it did, after some delays, in February with a “pre-populated” applications gallery.

At the Europeana Hackathon at Mediapark, Hilversum, Netherlands. Photo: Ton Zijlstra.

We had also decided last autumn that we wanted to host a hackathon focused on the API and coinciding with the launch. Our thinking was that this would provide a maximum of buzz for the launch. For various reasons we weren’t able to accomplish that and instead the hackathon was held now just about a month after the launch. I still think that holding a hackathon coinciding with a launch or a major upgrade of an API is a really good idea. Not only for the buzz, the enthusiasm, and the resulting prototypes, but also because a hackathon really puts your API through its paces – ruthlessly revealing flaws in both design and implementation. As I learnt to some embarassment during our recent hack!

Despite deciding we wanted a hackathon none of us in our little hackathon team (myself, Milena, Vanessa and Dasha)  had ever attended one, even less so arranged one! So we did our (web) research, went to two hackdays as observers and also interviewed Ton Zijlstra who’s organised a number of Open Data hacks. Based on that we planned our hackathon. Some of the guiding principles are listed below.

Some practical do’ s we managed to stick to (I think!) in planning and execution:

  • Location, location, location: Choose a venue both practial and inspirational. The Sound and Vision Archives in Hilversum were certainly that!
  • Use your informal networks to invite developers
  • Pay special attention to developers and organisations you’ve identified as potential high-priority API clients
  • Keep the number of non-developers low
  • Set an informal and open atmosphere
  • Have a competition and prizes, but keep it all in good fun!
  • Provide some gifts for all participants, no matter the competition
  • Encourage the developers to team up
  • Keep the developers sugared and carbed up!
  • Provide some optional and inspirational lightning-talks and other small breaks in the “hacking”. Some, not many.
  • Suggest some themes for development
  • Encourage the developers to work with what they want and ignore the development themes should they want to
  • Keep a Twitter stream (following an announced hashtag) during the event and project it on screen in the “bullpen”
  • Plan how to publish and make PR for the results beforehand
  • Plan for evaluation of the event to improve the next one!

Some practical do’s we failed with and will do with better next time (I hope!):

  • Provide online forums, wiki, e-mail lists or similar prior to the hackathon for the developers to use to discuss ideas, ask questions and form teams before the event
  • Plan developer introductions and a quick scrum unconference style at the beginning of the hackathon to identify development themes and team up

So how did we do overall? Well, I think all of us in the API-team were happy with the hackathon! I know I am. And I’m certainly very happy with the outcomes in the form of the 15 or so prototypes that were demoed at the end of the second day. Ultimately though the people who’ll decide how we did are the developers. So please if you attended the hackathon please comment and tell us where we did good and what we could have done better!?

Advertisements
This entry was posted in Europeana and tagged , , , , , , , . Bookmark the permalink.

4 Responses to Some hackathon lessons learnt

  1. Rene Wiermer says:

    Hi David,

    thank you for organizing this event. Location was good and an interesting mix of people as far as I could see and talk to them. Also thanks to Beeld en Geluid for helping a dev with a broken display.
    I could only be there one day and developed more ideas and learned new stuff than actually producing anything presentable, but I have an idea which I probably will put into practise.

    Some ideas for future events:
    – Setup/announce a chatroom, a pastebin, a wiki … for less intrusive communication (“Who has similar problems ?”, “Any PHPers here ?”, “Here is sample code”, ” Who’s driving to AMS tonight ?”).
    -Give a longer “marathon” task/idea/problem something like 4 weeks upfront for competition, and use the presence day for more interaction and less jealous source watching.

  2. Victor says:

    Hi David,
    Seeing as this was my first ‘hackathon’ experience I don’t have much to compare last weekend to. However, I think it was very well organized: everything worked (LAN, WIFI!), there was enough food, drinks, enough fun small diversions (I liked the lightning talks) and enough opportunities to collaborate.

    One minor thought on improvement:
    – It could be a good idea to state the organizers’ goals before the hackathon. What type of applications are you looking for, what is Europeana’s marketing vision, what is the user base etc.

    Thanks again for the nice experience!

  3. Ari says:

    Hi,
    this is interesting reading. I see APIfying as a one way that brings MLA sector back to peoples lives.

    One suggestion:
    If you want the API really to take off, then open it to the public. There are lot of people like me that are interested about digital heritage and could build new services and new ways to use materials in Europeana.

    Foe example, Brooklyn Museum has released nice public api for their image collection. If Europeana did the same, then we would have great resource for all cultural hackers.

    Regards,
    Ari

    • I certainly agree with you that APIs and a multi-channel approach is the key to getting heritage into the network and into use! Right now we can’t open up our API completely due to limitations in the agreements we have with our data providers.

      One reason for organising the hackathon is actually to show all our stakeholders that the rewards of having an open API outweighs the risks! The engagement and creativity an open API can fuel in the long run shouldn’t be underestimated.

      So at some point in the future I hope to be able to write a blog post stating that our API is truly open for all.

      Cheers,
      David

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s