How to prepare for a hackathon?

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.

But wait… What is 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.

How to find a hackathon?

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.

Build your team

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.

Prepare

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.

Communication

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.

Our work place during last hackathon

Our office during the last hackathon. You have to agree that there is nothing better than taking a break from coding and enjoying this beautiful view glued to the wall!

Hackathon began.

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.

The idea is also important.

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.

Try to question your ideas.

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.

Always have time in mind.

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.

Next is a definition of a critical path and important features.

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.

Now is the time to start coding.

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.

Our team shows the progress of development of the app during a hackathon

One of us – Jakub present progress in the development of our app to the jury.

You have to present it.

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.

  1. Introduce your team.
  2. Explain the problem and try to say what is its reason.
  3. Give your audience a solution. You don’t have to use world quotes like “Facebook for xx”, “The best solution” and so on.
  4. Demo — explain the way your solution works and show it.
  5. Business model — present a business model which would make your solution profitable. It is nice to have an idea about pricing for each service in your product. Think about the revenue it could generate and possible costs.
  6. Talk about people which are potential users of your solution. Think about the market, specify your end user characteristic, know your competition and data.
  7. Execute — think about what you would have to do with your finished product. Answer question like “How big you can grow?”, “How to reach your customers? “, “When would you make profits?”
  8. Summarize

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.

Good luck!


Special thanks to our great developers, who helped to prepare this guide – Maciej, Mateusz, Jakub, Karol!