Rapid Hack Development

I’ve been to a few hack days now and whilst I wouldn’t consider myself an expert I’ve certainly picked up a few pointers either from my own experience or observing how other people worked.

System Design

Probably the biggest mistake I have seen people make is too much thought put into the design. Take data models at GovHack for example – GovHack last 48 hours and I’ve seen people spend the first 24 designing data models. In my day job I work primarily on the database tier and I fully understand the importance of a well designed well constrained data model, but for a hack?!? The key is really in the name, at best you’re creating a working proof of concept to convey the (hopefully) excellent idea that you have and if it’s a little bit slow, not normalised in the way you would like it, not robust enough for maintenance or not properly constrained then it doesn’t matter. If something comes of your app after the hack day then you can go about tidying this up – it just needs to be solid enough that you can give a demo without it falling over.

If it Looks Right, it is Right

Depending on what you’re doing you might be consuming large datasets or doing a lot of processing. Remember, this doesn’t have to be 100% correct. People are not going to start consuming the app you make the moment the event is over, no one during the event is checking your app for perfect data quality. If the you can get the data or the processing working so that the app works to the point that you can demonstrate the vision of your idea then that’s enough.

Try Something New

This comes under system design a little bit and is one of my favorite parts. I think hack days are a great way to try out frameworks and libraries that you’ve not used before. Chances are you app is going to be simple enough that you have more than enough time to learn the basics of a new library and it gives you a chance to build something with it. You can evaluate it and if you don’t like it it doesn’t matter, its just a hack!

Do the Least Amount of Work

Tailor your tech stack to make your life as easy as possible. Hack days are great time to try new things but pick your battles. For example, building a client-side-heavy web app? use MongoDB, node.js and an MVC JavaScript library, this way your data can be stored in JSON and treated as JavaScript objects the whole way, no need to spend time writing SQL statements that pull data from JSON or SELECT statements that go on to build JSON. Need a relational database? Consider SQLite, you would never use this on a production system but this is not an issue for a hack day, throughput will be minimal and it has the significant advantage that you can easily load all your data in once, commit it to a repository and just move the data around ready-to-go with the rest of your code base – deployment becomes easy! Following on the the previous section, want to use something interesting and new? Great, but maybe couple this with something you already know so you’re not at a total loss when it comes to lack of resources and libraries that you can find on Google.

Use Other Peoples Code as Much as possible

You have a really limited amount of time, you can’t write code for all of your needs, however, you might be able to find libraries that come close to what you want. Use these libraries as much as possible, if their not right for the long term, it doesn’t matter. All that matters in the short period you have is - does it do what I want? Can I integrate it?

Take an Interest

This one is really important! OK, so you’ve got some ideas in mind, you’ve got some technology in mind, but what about all the ideas and technology that you’re not aware of? Make sure you chat to other people find out what they’re doing, what technology they’re using, why they’re using it. They might have great ideas that are really interesting, perhaps ways to use data or software that you had never thought of. They might be using a framework or library that you’ve never heard of and it might be the best at what it does. It could be the opposite, they could have worse ideas and a worse tech stack than you – but isn’t is it great to know all the possibilities regardless?

Over all hack days are an excellent thing to participate in and I wish there were more in Canberra. You meet like-minded people, play with cool technology with no restrictions and most importantly you just have fun! Even if you don’t end up with a polished or working app you’ll certainly learn something new and have a good time doing it.

Banner image “hacking in a suite at clarion” by Johan Nilsson

Share Comments
comments powered by Disqus