The work and mumblings of Mark Iliffe

Ergonomics of Hackathons and Code Sprints


I recently posted a rather long blog regarding my experience at the London WaterHackathon. Essentially over 48 hours we hacked Ushahidi, adding a triage system for reports. It was fun. Part of my PhD research is about the design and usage of tools in the space of community mapping. People like Muki Hacklay and his extreme citizen science group have made some massive in-roads into verifying the quality of OSM data, with very positive results for OSM. But this doesn’t say anything about the quality of the tools. In a previous life I trained as a computer programmer, I moved into geospatial afterwards, hence it leaves me with a few questions regarding the process and its output.

Designing Processes and Workflow

The software engineering rulebook was thrown out of the window with good enough is perfect taken as the mantra. Although I’m a great believer in the idea that something good and tangible can be created out of an all night – look at any of my coursework from my comp sci bachelors – I’m concerned about the sustainability of the code that it generates. While I have every intention of using the code from the hackathon in something very useful the design came about from a 15 minute brief with around nine whiteboards being used and data structures made on the fly. This especially applies to the SMS solution we wrote, it bellies the importance of good documentation.

From all of this, I would ask the following questions…

  1. How sustainable is the code developed at a hackathon?
  2. Are there any examples of code developed at hackathons being deployed directly with modification?
  3. What steps are needed before hackathon code can be used?
I’m not attacking the hackathon methodology – I do think hackers should be remunerated with some small token of appreciation though – I just question how positive the impact can be if the code isn’t documented. The hackers that came were either students or good industry programmers with a humanitarian interest. Realistically it isn’t feasible for them all to continue working on the project, this is where open-sourcing it all comes in.
From this approach, how would a community be built upon a good project dropping out of a hackathon. Part of our approach meant building upon an already existing open source application; Ushahidi. Should we now consider pushing our edits to the Ushahidi codebase? This has issues as we didn’t create a plugin, we dived right into the code. This was due to the unfamiliarity of hacking Ushahidi on the whole – This also makes a point about decision making, in hindsight with knowing the system better we collectively made a bad design decision.

Being the effect/de facto project/product manager I found the need to keep my team productive involved constant resupply of pizza, coffee and biscuits. The idea being that content and happy coders are productive ones. With the results this is definitely true. It also helped that the team was awesome, throwing themselves into the project with great gusto. Again in hindsight I wonder if a more considered approach was necessary, thinking about sustainability and reuse. We did follow the mantra of JFDI (look it up on urban dictionary), but in forging a massive path ahead have we inhibited further growth and expansion?

Are there design considerations and best practices to follow in hackathons, effectively creating good code that could be reused and used effectively i.e. ergonomics. If not where would be a good place to start?

Written and submitted from the Nottingham Geospatial Building (52.953, -1.18405)

About these ads

One response

  1. OK, we definitely only coded for at maximum 30 hours (I still think it was fewer hours – as we were mere mortals, and took 5 hours off to sleep), and Julien should be thanked for the coffee.
    Other than that, well-voiced thoughts on what I was thinking (even in the caffeine-addled state the grey matter was) throughout the process.
    Perhaps they should add a module into my degree on that…

    November 9, 2011 at 7:34 pm

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

Follow

Get every new post delivered to your Inbox.

Join 1,301 other followers