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.
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
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.