Hack Farm usually takes place around November, but due to various complexities, Hack Farm 2014 wound up getting pushed back to the start of 2015. Last week we formed a convoy, stocked up on the bare essentials (food, post-it notes, and booze), and drove west for four hours until we were in Herefordshire at a place called The Colloquy--a return to the site of the first ever Hack Farm.
I kept notes on each day.
We arrive in the late afternoon, settle into our respective rooms, and eat some wonderful home-cooked food. After dinner, even though everyone's pretty knackered, we agree that it's best to figure out what everyone will be working on for the next few days.
Everyone gets a chance to pitch their ideas, and then we all do some dot-voting to whittle down the options. In short order, we arrive at four different projects for four different teams.
One of my ideas is chosen. This is something I've been pitching every single year at Hack Farm, and every single year it ends up narrowly missing out. This year, it's finally going to happen!
We choose a room to use as our home base and begin.
We start by agreeing on a hypothesis—more of an assumption, really—that we'll be basing everything upon:
People are more like to give blood if they are not alone.
We start writing down questions that people might ask related to giving blood. Some of these questions might well turn out to be out of scope for this project, or can already be better answered by an existing service like blood.co.uk e.g.:
- Can I give blood?
- How often can I give blood?
- Will it hurt?
- How long will it take?
Other questions are potentially open to us providing answers:
- Where can I give blood?
- When I can I give blood?
- Who else is giving blood?
That last one is a question that doesn't seem to be answered anywhere else.
We brain-dump potential data sources that answered the "who", "when", and "where" questions? The data from blood.co.uk could potentially answer the "when" and "where" questions e.g. when and where is the next donation? Data from Twitter, Facebook, or your address book could answer the "who" questions e.g. who are you, and who are your friends?
We brainstorm potential outputs of the project. The obvious choices are a website or a native app, but there could also potentially be email, SMS, or even posters and postcards.
We think about potential incentives for the users of this service: peer pressure, gamification, bragging rights, reassurance, etc.
So there's a lot of divergent thinking going on: at this stage, there are no bad ideas (no, really!).
We also establish the goals of the project—what we would like to see happen as a result of this service existing. The very minimum success criteria is:
Someone gives blood who hasn't given blood before.
There's a follow-on criteria for measuring longer-term success:
A group gives blood regularly.
We split into two groups to work on a propositional statement, then come together to merge what we came up with. Here it is:
For people who want to give blood, who need encouragement and motivation, Blood Buddies brings together people you know to make it a shared experience. That way, you're more likely to give blood.
Unlike blood.co.uk, it frames giving blood as a shared, rewarding activity.
Blood Buddies is a codename for now. The final service might have a different name, like Bluddies maybe.
After lunch, we start to work on user stories and personas. After a while, we think we've got a pretty clear idea for the minimal viable user journey.
Now we take a little break and stretch our legs.
When we regroup, we start researching technical possibilities (like Twitter authentication, GMail address book, Facebook contacts, etc.), while also throwing ideas around to do with branding, tone of voice, etc. James Box comes in and helps us out with a handy branding exercise.
In an effort the name the thing, we create a page filled with relevant words that might be combined into a name. Eventually we reach the "just fucking end it!" moment. The service is called "Blood Buddies" after all. The tagline is …drumroll… "Get plastered together!"
Meanwhile, having investigated the technical possibilities, it looks like Twitter's API will be the easiest (relatively) to start with.
We write out our epics and create a little kanban board. We have our tasks figured out:
- implement sign-in with Twitter,
- create a style guide,
- mock up the homepage,
- mock up a sign-up form,
- and more.
Tomorrow everyone can assign a task to themselves and get cracking (some people have started already).
After a late Superbowl night, we arise and begin tackling the day's tasks.
I managed to get a very rudimentary Twitter sign-in working (eventually!) so now my task is to do something with the data that Twitter is returning ...namely, storing it in a database. And because this relies on signing in with Twitter to get any results, this needs to get on to an actual web server as soon as possible.
Cue a day of wrangling with PHP, MySQL, OAuth, Git, Apache, SSH keys, and DNS settings ...with an intermittent internet connection that drops out at the most inconvenient of times.
Andy is storyboarding the promo video that will help sell the story of Blood Buddies.
Meanwhile James and Tessa are hammering out a visual language for Blood Buddies. So the work is being approached from two different ends: the server side (how it works behind the scenes) and the interface (how it looks to the end user). In the middle is the user flow, and that's what Richard is working on, also looking ahead past the minimal viable product to include features that can be added later.
By late afternoon the most basic server-side functionality is done, and the site is live at bloodbuddies.co.uk. Of course, there's very, very, very little to see there, but at least our team can start adding themselves to the database.
So now the task is to join up the back-end functionality with the visual design and copy. As these strands come together, it feels like we're getting back to a more collaborative phase: whereas yesterday involved lots of group activity, today was more splintered. But that's going to change now that we're going to join up the individual pieces into a unified interface.
Today felt quite productive considering that three out of the five people on our team are on cooking duty.
Today is a day of rest. It's a beautiful day. We go for a drive through the countryside, pop into a pub for some grub, and go walking on the hills.
We're down to just three team members today. Tessa is working on a different project and Andy is spending the day sleeping, puking, and generally recovering from a heavy night. N00b.
We get cracking on with integrating the visual design with the back-end functionality. That means bashing out some CSS. After an hour or two, we've got something basic in place.
While James works on refining the visuals--including a kick-ass logo--Richard is writing lots and lots of copy, and figuring out user flows.
Meanwhile I'm trying to get server-side stuff in place, fiddling with DNS and email; not my favourite activity.
Once the DNS is pointed to the Digital Ocean server, and with the Twitter sign-in working okay, we realise that we've actually launched! Admittedly it's very basic and it needs plenty of refinement, but it's a start.
We head out for the evening meal together. Just one more day to go.
James starts the day by finishing up his kick-ass Blood Buddies logo.
Richard is writing and editing lots of witty copy.
Andy is storyboarding a promotional video.
I'm trying to get emails working, so that when someone you know signs up to Blood Buddies, we can email you to let you know. By lunchtime, we've got it all working.
Lots of the details are in place now: the logo, web fonts, an error page, a favicon ...it feels good to be iterating on a live site.
After lunch, James, Richard, and I work on expanding out the home page. Once everything is in pretty good shape, we all come together (with Andy and Tessa) to talk about what the next steps could be after this minimum viable product.
There's consensus that the most important step would be adding more ways of signing into the site, instead of just Twitter. Also, there's a lot of functionality we could add if we can scrape the data from blood.co.uk
But that's for another day. Right now we've got a barebones site, but it's working.
This was originally posted on my own site.