It’s been a while since somebody invented events like hackathons. Today this type of event is a good example of mixing passion with work and people from industry who look for talented engineers. We as a group of developers often look for hackathons organized in Europe, because they are a good opportunity to compete with others and meet other people from the industry. We wrote this article out of our experience. Recently, we took a part in the hackathon and we took third place. No matter if it is a hackathon about code or not, here’s the ultimate guide for attendees of a hackathon.
A hackathon is a contest which usually lasts for 24 hours. During this time small teams of people are solving a given problem. Those topics are often specific to different categories like health, sport or home budget. At the end, those projects are presented in the front of jury and audience in 5-10 minutes.
Obviously, I assume that you know about Google and Facebook events, but even if you find one hackathon it is not always clear if this event would fulfill your expectations. That’s why I suggest learning all the idea behind the event, especially try to predict the topic of the event. So you wouldn’t be surprised. Sometimes it is announced few days before the event. If so, try to reach your team, talk about your idea and try to generate one for the final solution.
Hackathon is a great opportunity for trying to build a team and lead it. Usually, when you have 24 hours to make something from scratch, working with open-minded and wise people change everything. The team has to have an idea, a leader and make the plan for work. It helps to prepare and execute. Knowledge is also a key. It helps to better estimate the time which each task would take and gives ready ideas of how to build features. During more advanced parts of developing the knowledge and understanding of technologies and tools would be crucial and can help you avoid any errors. Finally, your team needs someone who is ready to present your work and not only knows how its made but also how to describe it so people would enjoy it.
So usually, when you are going to code during hackathon your team should have a leader, developer with wide range of knowledge about technology and other developers who can craft your final app using front-end, back-end or mobile technologies. Everything depends on the type and subject of the project, which you are building. Instead of using one scheme of a team, we suggest adjusting people and resources to the requirements of the hackathon. Any additional skills like graphic design, marketing knowledge or some experience in topics like augmented reality could really help you, so keep that in mind.
It is easy to say that your team should work fluently, without any conflicts and I suggest having that in mind during building one. However, we are not living in the perfect world and done is better than perfect, so just build a team with your friends or workmates who you like.
There are some guides out there, in which we can read about making a small hackathon for our time before the actual event, but I think that if your team is built out of adults, it could be hard to find 12 hours for tests like this. Instead of it, I recommend finding some time to discuss what would you like to do during the hackathon. Think about your capabilities and technologies which you would use. Maybe look or craft some easily reusable components like forms, registration, login and so on. Then make sure that all the needed tools and software are already installed and working fine on your computers. In the end, think about presentation. Even if you do not know all the requirements already, you can design the template (If you do not have an idea about any tools to do so – try Prezi) and have a plan for it.
Probably, Slack would be the best and if you need a place in which you would manage your project, think about Trello or any other kanban based tool. Store your files on Dropbox or Google Drive and code on GitHub.
If you don’t have a hot spot, please expect that during the first few hours of your work the Internet could be slow, so make sure that you have all the files prepared.
All the things listed above would give you time advantage before the event even starts.
Finally, you can work! NOT REALLY! No matter if you manage a team with 4 people on board or a huge project with different teams, first is always planning and thinking about the way you are going to build the whole thing. (YouTrack helps!) Without a deep understanding of the job of each other in a team and the architecture of the project, you can easily make simple mistakes.
That’s why you should think about the whole process like you think about the sprint during your normal workday. It is easy to think that it is only 24 hours left and the main presentation is tomorrow so you have to hurry up, but you really don’t. Coding has its own pace and the only way to make things faster is the idea of how to do it properly with its future use in mind.
In a specific amount of time, you can make a specific number of features, but even though you should think about as many of them as it is possible. Sometimes choosing those from them which are quite easy and innovative would be the bull’s eye. It is not only about code it is also about the final presentation, so think about features as possibilities to make your product interesting and make a wow effect during the presentation. Finally, you need a creative and interesting project so keep that in mind.
For example, instead of building the whole module for registration, you can use some hard-code mock-ups with prepared values. Normally, this would be unacceptable. However, everyone knows how this module looks like and works. It makes it worth to use this time for building some more valuable and innovative parts of the app.
Think about them as parts of your project which impacts your success. That’s why you should not be afraid to abandon or remake some of them during the planning process.
With a clear idea of the time which development requires you would have more time to focus on work. Instead of asking each other something like “Will we make it?”. Probably you would if you planned everything at the beginning.
You have to prioritize tasks. You should be able to clearly tell which way is the key to making your product. This provides you an information about the moment when the basic work is done. Then you can focus on some less important features. This knowledge about the minimal number of features which have to be ready for presentation would give you a straight way during your working process.
At this stage, each one of you has to know what are their tasks and what he or she has to do. It is wise to make some tempo of short meetings. On a daily basis, you have daily meetings, during the one-day sprint you have to talk with each other every two hours. We suggest using an alarm on your phone and keeping an eye on it. Thanks to this rule your meetings would take place regularly. This regularity provides a natural flow of ideas, problems and things which came to mind of each member. It helps to make a final product better. Or maybe not a product, it would be safer to name it a prototype.
Because you are working on prototype of the idea, not a service, which should be ready to change the whole industry.
Please remember about it. This is a game, which the main goal is to give you some new experiences, have fun and do something with the positive influence on yourself. So do those features as good as they need to be implemented and presented. Respect the quality of code but think about it as a short-term project which could be rebuilt. There’s no need to make QA the most important subject of your work. As long as your features work and the whole app starts to look the way you wanted it to, everything is fine.
We can often hear that somebody is not good at presenting his work. That’s why it is wise to find somebody, for who it wouldn’t be a problem. The presentation is a key factor in your success. Without it, the whole work, which you put in, doesn’t make any sense. So you should find time to make it very good. It is worth-thinking about the way the whole story about your product would be presented.
And remember nobody is interested in the way people download your app or register. You should show things which would be interesting for your team. So think of your project as a work of somebody else. Prepare the presentation which would matter for you as the audience.
Special thanks to our great developers, who helped to prepare this guide – Maciej, Mateusz, Jakub, Karol!