Email iconarrow-down-circleGroup 8Path 3arrow-rightGroup 4Combined Shapearrow-rightGroup 4Combined ShapeUntitled 2Untitled 2Path 3ozFill 166crosscupcake-icondribbble iconGroupPage 1GitHamburgerPage 1Page 1LinkedInOval 1Page 1Email iconphone iconPodcast ctaPodcast ctaPodcastpushpinblog icon copy 2 + Bitmap Copy 2Fill 1medal copy 3Group 7twitter icontwitter iconPage 1

Down tools

Working within an agency provides a wide variety of client work and we’re lucky enough to be able to choose the kinds of projects we go for so there’s never a shortage of interesting and innovative project work. But it can also be an intense and pressurising environment when you’re constantly building client applications, so it’s nice now and again for the team to collectively let their hair down. We do this by running a number of internal projects as well as the more experimental quarterly hack days.

The big day

We’ve found that hack days work best on a Friday; the fact it’s the end of the week invigorates the team, supplying an all important boost of energy.

Starting off with a get together we’ll hatch our plan for the day which is also a really good opportunity to practice making quick, collective decisions because everyone is motivated to getting the most of the day. Once we’ve agreed a number of goals we’ll discuss how to split the team, some working on their own and others in partnership. We’ll then work through the morning, reconvening for a group lunch so we can all discuss the progress and adjust plans if necessary. After lunch, things always ramp up in intensity, the last hour or so of the day always being a frenetic rush to bring our work together and hopefully, each person shows the team what they have achieved.

The hUVD

We use lots of different tools to help us with our workflow and identified a benefit in being able to see the important information from each tool in one place. With a spare plasma TV lying around, a Raspberry Pi, and a team eager to jump into the tech, we set about creating the hUVD – Heads Up Visual Display.

Day 1

Full of excitement for the project we started off a little over ambitious, aiming for a fully functioning dashboard that would aggregate a number of really useful bits of information including:

  • The status of the latest continuous integration builds
  • The user story (Trello card) and sprint (Trello board) people are working on
  • ‘Dr. hUVD’, a ‘design reviewer’ allowing our designer to push designs to the hUVD for collective review
  • Information from the Google ‘Sprint’ calendar

We only got as far as having the Trello module complete, but we did manage some pretty good progress on other aspects as well as managing to mount the TV on the wall which was a surprisingly tricky task!

“I got an interface pulled from the Jenkins REST API with current build status. I was able to select particular build jobs to display on the screen (persisted to Firebase) and also the most recent overall builds. I didn’t get as far as I wanted to, mainly because I spent the morning wrestling with HTTP basic auth and Jenkins. In the afternoon I realised it would be better to create a really lightweight interactive node server to act as a Jenkins proxy. I’m really happy with what I have so far, but I can’t wait to finish the project now!”



Lead Developer

Day 2

Revisiting the hUVD allowed everyone to get their features finished and to add some all important polish and stability. Eddy had to take his Jenkins interface back to the drawing board slightly but after some refactoring, developed a system making heavy use of JavaScript promises, then periodically polling the Jenkins ‘latest builds’ RSS feed. This meant he could pull cache specific data for each build from the Jenkins JSON APIs. The result being a really nice auto-updating build queue that includes items currently building, the time started and the users with commits on that build.

Ryan was tasked with the Trello module and had a few bugs that he wanted to fix, and reduce the number of API calls needed. Trello’s API isn’t really meant to be used in this way (one for another hack day – a Node API to cache and serve the data we need in a more appropriate format). After that, Ryan worked on improving the style and layout of the main grid using CSS Flexbox for maximum flexibility, so other modules could be slotted in nicely, such as Eddy’s Jenkins module. A little sprinkle of CSS animations were added to help bring attention to new things happening such as a someone joining an ‘In Progress’ user story on a sprintboard.

Chris was tasked with the ‘Dr. hUVD’ (The Design Reviewer for the hUVD) which will enable us to push any new designs onto the screen for review. Files are uploaded to Amazon S3 and then emitted via websockets to the hUVD.
It was exciting to see all the individual things the guys did on day one brought together in one polished application. I was really surprised by how well it all worked, considering we’d hacked it together in just 2 days. All the different pieces of the jigsaw fitted together because of the close communication between the different team members. It was really great to see everyone enthusiastically working together and dare I say it, self organising, with little input from me.




Future hacking

Our first hUVD hack day was way back in March, but the team are still excited by future possibilities. We’ve already added a notification system to help us monitor the large scale websites we host, which hooks into Amazon CloudWatch to alert us UVD’ers that an error has occurred, with unmistakable urgency. In the pipeline, we want to add the current sprint week and the upcoming sprint week using Google’s calendar API, we’d also like to add people’s last tweet with the #UVD tag, which is what comes through to our Twitter feed via GroupTweet.

Watch this space for the next live blog of our hack day.