Lessons from a Hackathon
At the weekend I attended the EE Hackathon which was arranged in partnership with Mubaloo, my employer. I’ve never been to an event like this before, so I had no real idea what to expect or how it would go. Here are a few of the things that I learnt.
I work with some very talented people
@frosty, @tealspoon, @dnlkbox , who were the Mubaloo “B” team, and @liamnichols_ and @valentinkalchev, who were with me on the, well, OK, the “C” team, were all fantastic, if only at putting up with me for 36 hours. That’s a feat of endurance few can manage. Between us we also managed to produce two pretty good apps, without much in the way of hiccups.
Unit tests are great
Unit tests? In a Hackathon?
-one of the guys from cloubase.io
Unit tests indeed. When you’ve got three people working on separate components of the same app under a tight deadline, you all have to be working in parallel. This means you need to be writing functioning code without depending on others to get their stuff finished first. Using a unit test framework to exercise the code independently worked brilliantly. Also, unit tests are always good.
AppCode is great
You may have known that already. My two AppCodeless colleagues looked on with envy as imports were automatically done, properties were added as I was referring to them and method signatures were updated without so much as breaking a sweat.
Source control is a challenge in a fast-moving project
We used Bitbucket to create a shared private repository, and supercharged our git command lines using oh-my-zsh. With over 150 commits during the project, we had one or two problems with merging, almost always in the project.pbxproj
file. When you have three people adding files to a project, stuff like this happens. Luckily they were usually pretty straightforward to fix, though it sometimes seemed a little dispiriting:
Coding : Sorting out version control ratio roughly 30 : 70 #eehackathon
— Richard Turton (@richturton) June 22, 2013
And we also made some common typos:
gut push and gut pull has a totally different VCS outcome #eehackathon
— Richard Turton (@richturton) June 22, 2013
4G is fast. And reliable.
According to the guys from EE, we were all on a single 4G cell centered in Leicester Square. There were several 4G WiFi routers dotted around a workspace filled with about 100 nerds, so as you can imagine there was a lot of running of SpeedTest and torrenting going on. We never noticed a drop in network activity or anything other than high speed connections. Even after this:
Hour 6. @frosty spills beer all over the mains socket and 4G router. #eehackathon
— Richard Turton (@richturton) June 22, 2013
Do it for the experience, not the win
Given our connection to the organisation, we weren’t allowed to actually win anything. This allowed us to relax and enjoy ourselves, even though the boss was turning up to judge the entries. We dealt with this pressure using beer. Lots of lovely, free beer.
Slightly worried that @liamnichols_ is going to give people a bad impression of @mubaloo... #eehackathon pic.twitter.com/6clPIx3jkT
— James Frost (@frosty) June 22, 2013
Sleep when it’s done
You’ve only got 30 odd hours. Spending any of them sleeping is not a great idea, particularly since that would risk waking up hung over. A policy of continual, moderate alcohol intake seemed to keep us on a fairly productive plateau, give or take a few moments of rambling weirdness.
Eat good food
I was expecting a beige buffet, and was very pleasantly surprised with the quality and standard of the food we were given. Great salads, pies, pizzas, pastries at breakfast, and fruit. Of course, you can’t help some people:
Delicious, healthy lunch at the #eehackathon. Which @dnlkbox is washing down with a delicious, healthy can of red bull
— Richard Turton (@richturton) June 22, 2013
Keep up morale
Our teams were definitely noisier than the others we were sat near (sorry!). There was plenty of laughter, and during the second morning we were all looking forward to the official Mubaloo Ministry of Fun turning up:
@frosty @richturton @dnlkbox En route to #EEhackathon! pic.twitter.com/tfA5tnCWkI
— Clair O'Neill (@claironeill) June 23, 2013
Who’s driving? Sarah, Claire and JP on the way to hoover up any remaining free beer.
Demos and presentations are hard
Our presentation to the judges was fine, but it all went wrong when I was presenting to the rest of the group. I wanted to run the app on the simulator on my laptop which was plugged into the projector, while the other guys used it on their iPads so we could demonstrate the real time updating over the network. The following occurred:
- I plugged in the laptop and somehow it decided that the resolution to display was the size of a postage stamp. We had three minutes to do the whole presentation, including setup time, and I should have had the display preferences pane open before I started. I should also not have had the retina simulator running so I could have shrunk the window down slightly.
- The network, or one of our back end services, chose demo time to stop working. We’d moved to a different area of the building for this and though we’d brought our router, we didn’t test it in the audience before we got up. Therefore our demo failed miserably. Luckily(?) a lot of previous teams had also had problems. We should have recorded a video to use in the event of a failure like this. We’d had no problems of this type leading up to the presentation, and had probably got complacent.
Be careful what you tweet about
It was a networking-themed event with a focus on realtime information. One of the demos involved tweets with the #eehackathon hashtag floating about on the screen, this one seemed to show up quite a lot:
Hour 17. @frosty wants to call his app Fistr. It's all over. #eehackathon
— Richard Turton (@richturton) June 23, 2013
Book the following day off work
If you don’t, stuff like this happens:
On day 3 of our sleep deprivation experiment, developer @richturton has a client meeting and he's forgotten his trousers.
— James Frost (@frosty) June 24, 2013