Hackathons: a developer point of view
Since we’re huge fans of them at Gravitywell, some of the team have already written about what is a hackathon and the benefits of running a hackathon for your company.
However, I figured we’re still missing one (essential) point of view when talking about hackathons — what is a hackathon like from a developer's point of view?
First, let me recap how hackathons (normally) work at Gravitywell:
- It may happen at the studio but once a year we move our “desks” (laptops) to a house located in a cool place (quite often, we even find good weather).
- Unlike how other hackathons are planned, we try to maintain our normal work schedule. Though this is quite flexible, especially when we find ourselves far from home and with easy access to a hot tub or a six-pack of Alhambra.
- The whole Gravitywell team is involved, not just devs.
- We usually have one week (or five working days) to accomplish our goal.
- As output, we try to achieve a deliverable by the end of the week. Something tangible like an app or some kind of prototype.
- Even if it’s vague, we prefer bringing a predefined idea with us to save some precious time. Trying to find the “this will be the next Facebook” idea is an arduous job in itself.
In order to be able to launch a tangible product from just an idea, we need to go through most of the steps we’d normally do to develop a product, but much quicker: scoping, UX/UI, project management, design, implementation, deploy... but we can (have to) skip some other tasks like testing (manual and/or automated) or thinking about CD/CI. The goal is not achieving a production-ready product, although we need to keep in mind that we should prepare it to eventually be so.
Hackathons always have a positive outcome
I’ll explain, divided into short points, why hackathons always have (and always have had) a positive outcome.
Hackathons provide the best opportunity to try new technologies. Perhaps something you’ve read online, or something cool a friend has told you about.
You can be adventurous and try the latest solution on the market without needing to add undue risks to a client project. The pros are:
- It keeps you up to date.
- You can form your own opinion: what is good, bad or ideal. What specific types of problems it can solve.
- You can make your future decisions based on practical experience. For example, we first used GraphQL and AppSync in a project during a hackathon.
- It will help you work faster when applying the knowledge in new projects.
In my opinion, limiting options makes you more creative. When you need something but you don’t have straight access to it, your procrastinative brain needs to work to get it.
The limited time available will force you to be creative in order to find alternative solutions to accomplish your goal.
Having such a short deadline makes communication between team members vital. Your mates need to know at any point what you are doing and when you estimate your part will be completed, in order to coordinate each step of the journey.
Besides, it will really help if you make them aware of the problems you encounter — two minds (should) work better than one. Also, in case you need to reschedule or re plan some tasks, the team should know ASAP.
Related to the previous point. There isn’t a better chance to work shoulder to shoulder with other members of the team.
Sometimes, because they belong to a different team or because their area of expertise is different than yours, you don’t get to work with certain people very often. A hackathon solves this issue, and it’ll strengthen your team relationships.
Working on a different topic and focusing on a “finished” product as an end goal is a really good way to stay motivated. Your hackathon doesn’t need the aim of ending up with a tangible product, but I think the feeling of achieving something makes you work better. You may rely on smaller daily demos or targets to see some progress.
Again, testing yourself and checking you’re able to build something, from just an idea, in a short period of time will dramatically increase your levels of personal and team satisfaction.
We’re lucky to be able to go to a different place each year to focus on an idea for a whole week. I feel refreshed and full of new ideas when I come back.
But you can also do it at your office. The important point is to switch up your typical habits for a week to learn new things and enjoy.
Work hard, play hard. It’s what people (like Wiz Khalifa) say. I’m not a big fan of gimmicky, motivational sayings. But I guess that one represents what we do during a hackathon, especially when we’re away.
Sometimes we play too hard and regret it the next morning… and we always have some good stories! But seriously, the best thing is the time you get to spend with your colleagues, not just talking about work.
Again, don’t worry if you can’t travel with your team. Just stock up on a few beers, some pizzas (or crudités) and, you know, make it enjoyable!
Let’s be honest, aiming for overly-ambitious goals in a short period of time can end up being stressful. However, I believe there can’t be real improvement with zero stress (manageable levels of benign stress, of course). And besides, it’s worth the benefits previously described!
I hope my thoughts encourage you and/or your organisation to try a hackathon, and enjoy what is an excellent experience.