Hackathon: insight

V únoru 2019 jsem se zúčastnil hackathonu, Hack the South, který byl zorganizován v Southamptonu v rámci MLH (Major League Hacking). Hackathon spočívá v tom, že soutěžící v malých týmech vytvoří něčím zajímavý software nebo hardware během 24 hodin, který pak prezentují na konci hackathonu. Tento článek poskytuje náhled do dění hackathonu z pohledu účastníka.

Formace týmů
Přestože většina účastníků se přidá k týmu před samým hackathonem, což usnadňuje diskuzi nápadů před začátkem 24-hodinového odpočtu. Mnoho účastníků si hledá tým až na místě. Ty jsou složeny většinou z 5 studentů.

Diskuze & rozdělení úkolů
3-2-1-start! Soutěž začala. Týmy teď ideálně vědí, co chtějí vytvořit. Dalším krokem je identifikovat klíčové úkoly a rozdělit je mezi členy týmu. My jsme se rozhodli vytvořit počítačovou hru pro slepce, která by jim umožnila složit hudbu pouze pomocí mimiky. Každý výraz obličeje je propojen se zvukem. Dva hráči se střídají. Každý se pak snaží zopakovat hudbu dosud složenou před tím, než přidají další zvuk. Rozdělili jsme práci na tři hlavní oblasti: uživatelské rozhraní, logika hry včetně skládání hudby a detekce mimiky pomocí kamery.

Rešerše & prototypování
Dalším krokem je specifikovat jednotlivé komponenty softwaru a ujistit se, že vše bude do sebe zapadat. Každý si je nyní vědom, jaká část úkolu mu náleží, a už zbývá jen ji naprogramovat. To se většinou děje v pozdních odpoledních hodinách a v noci. Během celého hackathonu jsou k dispozici mentoři jak ke konzultaci nápadů, tak k pomoci při řešení technických problémů, které nevyhnutelně potkají každý tým. Pomoc od mentorů může často ušetřit hodiny, což je nedocenitelné pod časovým tlakem hackathonu.

Integrace & příprava dema
Jednotlivé komponenty softwaru jsou nyní naprogramovány. Ty nyní musí být složeny dohromady. I když to zní jednoduše, většina projektů, kterým se nepodaří připravit hezké demo, selžou právě v této oblasti. A to protože jednotlivé komponenty občas nefungují dohromady tak, jak bylo očekávané a týmy si obvykle nevyhraní dostatek času vypořádat se s případnými problémy. Zatímco někteří členové týmu pracují na integraci, ostatní vypracovávají prezentaci a samotné demo.

Prezentace & demo
Nejvíce vzrušující část přichází teď. Všichni účastníci se setkají ve velké přednáškové síni a týmy, jeden po druhém, prezentují svoje projekty před porotou. Zcela fungující software není nezbytný k dobré prezentaci. Ve skutečnosti většina prezentovaného softwaru není zcela dokončena, protože 24 hodin je sotva dostatek času na vytvoření prototypu, který demonstruje daný nápad, ale v žádném případě ne na produkční verzi softwaru. To byl i náš případ. Nepodařilo se nám včas vytvořit uživatelské rozhraní, takže jsme ukazovali hru pouze v příkazovém řádku dohromady s živým videem, které znázorňovalo, jak algoritmus rozpoznává orientační body na obličeji a používá je k detekci mimiky. Potlesk na konci prezentace pokaždé vyvolá pozitivní pocity. Ty byly v našem případě ještě umocněny, protože se nám podařilo umístit na druhém místě.

To byl pohled účastníka do typického hackathonu. Pokud to zní jako něco, co bys rád zažil, určitě si vyhledej Major League Hacking a místní hackathony (v České Republice je asi nejznámější Hack Prague).