I attended my first Hackathon last saturday. It's topics were poker and continuos deployment. The Hackathon was hosted at sektor5, a coworking space.
At Lean Poker small teams fight each other by coding the best poker bot in the smalles amount of time. Each round the bot on the 1st place gains 5 points and the bot on the second place gets 3 points. The team, which has the most points in the end of the day, wins the Hackathon. It is very important to find a good balance between developing a good algorithm and beiing as fast as possible to deploy newer code.
Normally the teams code in different languages:
Christof Schmidt and I were team Pokermon. Unlike the other team, we didn't write unit tests. The sense of unit tests is to look, if different functions work. Another big advantage of writing test is that the code gets more modular while creating it. We Pokermon did only tests manually, which also worked to prevent horrible bugs. I will write more about tests in a while, so stay tuned.
Team Pokership were Florian Motlik from Codeship, a continous deployment service, and János Gyurisán, who already atttended the last Lean Poker Hackathon. They won because they were able to set up good tests and automatic deployment. This helped them to take the lead very early.
This is the image of an chart showing the hackathon result (ref) …
… and the 1000 runs result (ref).
Rafael, the orginnisator of the Hackathon, started the bots in their final version playing 1000 rounds and then Pokermon won. Pokership became only 2nd place. This shows that our bot is the better one, but Pokership were able to deploy their bot faster.
The Hackathon ended after approximately 10 hours. It was very interesting and I learned many things.
On the Facebook page of Lean Poker are some photos of the Hackathon and there is also a video.