On the 13th March 2015 Lighthouse London conducted their first internal hack day, enough time has passed for us to be able to talk about it.
Why did we do a hack day?
If you want the real reason it was probably to have some fun and bunk off client work. If you want the version that’s going into our credentials it’s that we are always open to trying out new technology, practicing teamwork and honing our creativity.
Actually, all those things are important. When you work for clients it’s easy to put them first to the detriment of your own business. This was an exercise in holding our nerve, not checking email and doing something to improve ourselves longer term.
A hack day fitted perfectly, all those benefits plus the luxury of time to work on our own projects. All those great ideas that never get built because there isn’t the time. One of those was going to appear.
Themes, teams and rules
The decision to go ahead was made easily. Everyone agreed a hack day was a great idea and after a moment’s awkward silence we all admitted that we didn’t really know how this was going to work or what even a hack day was.
A quick look around at how we might structure it found that we could do anything from a day to a week. We could stay in the office or go somewhere quite remote like Hackfarm, or somewhere really remote like a fort.
We decided to start small and go for a day, though the idea of a week somewhere is an ambition. Lighthouse splits naturally into two development minded people and two design minded so it seemed a good idea to form two teams with one person from each discipline.
The Bishtinguished Gentlemen
Russell Bishop & Dan Gent
Tom Johnson & Christy Quinn
Notice, bad puns.
We needed a theme and after some discussion a few ideas were generated. They were quite varied and one of them, a wordpress sitemap generator, was so boring the whole thing was nearly cancelled. We voted on which we liked best.
The winner was the question “Is the ping-pong table free?”. Our office building has recently installed a table tennis table next door and if its existence isn’t enough of a productivity killer on its own it’s even worse travelling to the room to find it in use. So, the challenge for the teams was to come up with a solution.
We are all about the big problems here at Lighthouse.
Bishtinguished Gentlemen morning review
Our idea was based around encouraging people to let us know they were playing by building a social network around it. Last.fm knows when you are listening to a track because you tell it, your reward is recommendations, top artists and all that good stuff. The reward for telling us that the table was busy would be a record of your results and the ability to match yourself against other people who used the table. We felt this could turn into a bolt on for any piece of public games equipment, and it could, it’s just the idea of being at all visionary with our ambition for what we could build in the time now seems faintly ridiculous.
We started with a sketching session having deliberately not discussed details before the hack day as we felt that would be “cheating”. We decided the two ways our app could be useful would be to the people currently playing, allowing them to enter the results of games and to the people queuing, allowing them to add themselves. We had more features in mind than just that and spent time getting excited by them. Our one concession to time limitations was a prioritisation of what would constitute a working app and what could be considered nice to have.
Roles were obvious, Russ would do front end and Dan would dust off the coding chops and build the app. No warning signals about getting everything done were seen, and there’s a simple reason for that. Denial.
I actually spent the train journey in looking at integrating with phone alert APIs. I would have been better off reading about stress management. One day is not enough time to be trying out new technology. It’s barely enough time to turn your computer on.
QuinnTom Physics morning review
Christy had a great plan for a clever way to measure whether people were playing table tennis in the next room using an Arduino. Unfortunately I didn’t really understand what he was going on about so nodded and smiled, already feeling like the weak link in the team. Luckily my part in the work was to design and build a site that used the data his magical box of tricks spat out. That I could do. Probably.
Keeping it pretty simple (so we thought) a basic plan was put in place. A few sketches were put on paper to make sure we were on the same page but it was pretty quickly into design & dev. The major challenge would be getting the Arduino to register the correct readings and connect to the local WiFi to send that data back to the office to be stored in a database. Sounds easy, right?
No, It’s not easy. Plenty of trial and error pulled up a few major issues with getting this to work. However, Christy managed to turn it around. Tom, wary of Christy’s voodoo antics, had left him to it and come up with a simple website that would show the state of play in the room next door as well as a history of recent activity.
There were plans to make a physical box to sit on the wall and light up when the table was free but it soon became clear that this this was daydreaming of the highest order. The early morning trip to Ryman’s to pick up the black card necessary now seemed like glaring evidence of naivety and this idea was pushed into the ever faithful and never reached “Phase Two”. The card is currently sitting in a bag down the side of the fridge where it is likely to remain for some considerable amount of time gathering dust.
Clichéd Pizza lunch
Bishtinguished Gentlemen afternoon review
The ambitions of the morning quickly disappeared, nice-to-haves turned into not-a-chances. The word hack has never been more appropriate for the mess of code appearing on Dan’s screen. There is no technical debt when you are hacking against the clock, there’s a kind of technical bet, everything on red, it will work or it won’t. Over on Russ’s screen things were equally scrappy.
I had such a beautiful plan for the design, I’d found some great inspiration that morning and the picture in my head was, frankly, outstanding.
After about an hour and a half of frantic panic in Sketch I realised that I have time to do absolutely none of the gorgeous design I had planned, and needed to do something simple, immediately. With my pride bruised, I threw together some simple screens and surrendered.
Nope, I didn’t ask for any opinions – I couldn’t face them. I immediately jumped into code and managed to front-end the whole lot fairly quickly once I stopped judging everything in front of me.
Our only encouragement came from the howls of frustration emanating from the other team. They had circuit boards. Surely that had to go wrong.
Somehow as the deadline approached things started to come together. Just as enough of Dan’s bugs were fixed to be usable, Russ revealed a design and the two were hooked up. Sure it didn’t fully work, but compared with the train wreck we thought we were heading for it was a relief. We had something to demo!
QuinnTom Physics morning review
Hardware is pretty much the worst.
It turns out that getting this stuff to work consistently is tricky. A database was reading info from the little computer but the numbers were going all over the place. Poor Tom’s brain was being overloaded with maths, something that he thought he’d escaped when he left school.
Christy was intensely focused on finding out why his machine wasn’t doing what he told it to. At points it looked like there might have been steam coming out of his ears. Nevertheless, after an afternoon of stress the thing actually started behaving itself and the website, miraculously, began to work.
I somehow managed to finish my bit way before the deadline. Thinking that this might be proof of my contribution to the project being below acceptable levels of competence I pretended to carry on doing stuff and gave people beers to make them think I was being helpful. I’m not sure it worked.
Ping Pong Hero
Ping pong hero worked in that data went in, data came out and not every button click threw an error message. We had a tableside screen where users could record the results of matches and when they finished would show who was next. We also had the screen on which other people from the building could add themselves to the queue. And whilst the overall feel was prototype the data was real enough, there was even a working leaderboard.
Failure avoided, it’s not bad!
Ping Pong Game On
It’s a simple site. The big central message glows red when you can play, if there are people in there then the lights are out. Underneath is a feed of the recent activity in the room.
It was working…for a bit but then worries about huge, gaping security holes and our shoddy workmanship meant that the site had to come down. It does have its own domain so that’s gotta count for something, doesn’t it?
The demo consisted of some fudged “data” manipulated by hand movements and not actually being anywhere near a table tennis table. Still, as a proof of concept it ain’t bad and a few more hours, a bit of calibration and this baby can, and will, do the job.
Verdict: Success…with some work still to do
The most obvious one is that a little more time would have helped. You could be less ambitious with what you are trying to build but there is a sweet spot where amount of time meets possible outputs. It turns out that this is probably a bit longer than one day. Could there be a better format? 2 days? A week?
Conversely, you can produce a lot in a day. It clearly takes practice, though. Next time we’d be a lot less naive about what can be done in the time and work smarter.
We also found the day had no impact on client work. Obviously it depends on workload but we considered ourselves too busy to do this kind of thing and actually we weren’t. It inspired us, since then we have given a day of time to an internal project that’s going to really help us. We always thought we were too busy to do that too.
It was energising both in terms of looking forward to it and in terms of the feeling of accomplishment afterwards. It’s made us braver in the sort of work we attempt in the context of client projects. Prototyping was something we’d reserved for bigger projects but if you get practiced at it you can use it as design tool on any project.
So, you’re dying to know who won? We’re ashamed to say it got competitive. The kind of competitiveness that ruins family board games at Christmas. In the build up our internal comms filled with embarrassing trash talk. We felt we had to have a winner and so we needed a judge. The fab Jen Edwards was in the office working with us but wisely bowed out of this thankless task.
In the end just getting two projects demo ready was enough. We forgot our competitiveness. There was even one beautiful moment where Russ’s local development environment borked and Christy, in a scene destined to be commercially exploited in a television advert, reached across the lines and fixed it.
Hacking was the real winner! (:puke:)