Now that The Great Cluster Code Off is at the stage where the entrants are in the process of making their collateral available on GitHub//devWorks, I thought I'd jot down all the things that I wish I'd known before I started organising a hackathon. This serves two functions, the first is that I dont forget should I want to do another, and the second is that anyone else can use the information to create a hackathon of their own, and hopefully avoid any pitfalls that I encountered along the way.
So the first question to ask yourself is this. Why should you organise a hackathon?
To answer this question, we should look at what hackathons are used for, and not used for...
What hackathons should be used for:
One way to approach Hackathons, is to see them as a solution to a problem.
When considering why you should organise a hackathon, you should analyse your goals. Are you looking kick-start a developer community around your product or offering? Are you looking to create collateral that will get external users engaged with your technology? Are you trying to connect your developers with external technology leaders? Perhaps you want to foster a closer relationship between your product SME's and your products users? Are you simply looking to create a 'buzz' around your technology? Or perhaps your goal is to increase the skill base in your technology?
All of these are good reasons why you might want to organise a Hackathon. In Messaging, I wanted to engage the developer community with our technology, particularly IBM MessageSight, MQTT, and NodeRed. The hackathon, was a piece in a larger plan to engage external users, that included new media such as podcasts, hangouts, videos and blogs. We wanted the hackathon to provide us with hands on collateral that we could share via GitHub, and then promote via a social media infrastructure).
So hackathons are great for creating collateral that will spark the imagination of an external user, especially if those users have strong developer instincts. They will want to explore your collateral, create and reuse your stuff. Inevitably, they will share it with their community. All this is good news if you are looking to promote the hands on use of your product externally.
What hackathons should not be used for:
Try not to use them to create ultra specific collateral. Allow the developers in the hackathon to use their imagination and creativity, to build something that they deem to be of worth, but uses the technology that you have suggested. Please don't be tempted to squeeze in new project work items. Although, don't get me wrong there is certainly an opportunity to use this kind of approach to further the development of products, but my advice would be, if its going to be used for that purpose - make that very clear from the start.
Hackathons are for me, I want to organise one - where do I start?
In this community I have outlined an activity with the salient steps that presented themselves as being important, or urgent, or both and that I wish I had been aware of and had written down before I began the exercise.
One last thing, be prepared to be in awe of the ingenuity and commitment of the people you work with, and are yet to work with in the execution of this project.
Good luck, John.