KonkursTrip and tricks

Jak przygotować się do hackathonu? Jak działać kiedy czasu na implementacje jest za mało?

Czym jest hackathon?

Hackathon zwane również świętem dla programistów lub maratonem programowania. Jego celem jest przygotowanie MVP (Minimum Viable Product) w ciągu wąskiej przestrzeni czasowej – najczęściej 24h, chociaż są również inne wersje 16h lub 72h. Hackathon jest formą pracy zespołowej.

Dobrze skompletowany zespół

Ważne jest, aby zespół, który uczestniczy w konkursie był zbalansowany pod względem kompetencji. Im więcej rąk na klawiaturze tym lepiej, ale należy pamiętać, że zespołu nie powinni budować sami programiści. Muszą w zespole znajdować się osoby, które są specjalistami od grafiki, zarządzania pracą zespołu i „sprzedawca”.

Dobry grafik to klucz

Kiedy za czasów studenckich realizowałem swoje pierwsze praktyki programistyczne, to kierownik działu programistów wpoił mi jedną ciekawą zasadę:

Nawet jak tworzysz program, który jest słabej jakości, to zapakuj go w piękne pudełko.

W miejsce ” słabej jakości” zostało użyte bardziej dobitne określenie, ale postanowiłem nie mieć wulgaryzmów na blogu 😅 Powiedzenie padło wiele lat i frameworków temu, jednak ta zasada pozostaje ponadczasowa. Wielokrotnie soft nad którym pracowałem lub widziałem został uratowany przez design.

Zazwyczaj komisje nie mają czasu na weryfikowanie kodu, często składają się z osób nietechnicznych, więc aplikacja przyjaźnie zaprojektowana dla oka daje dużą przewagę.

Działa to też w drugą stronę – super działająca aplikacja, bardzo jakościowa, ale brzydka nie zachęca do korzystania 😉

Team lider/project menager

Kiedy brałem udział w konkursach – jako uczestnik lub mentor nie raz widziałem zespoły, które gubiły się w tym co robią. Czekały aż ktoś coś ukończy, krzątały się bez pomysłu lub pytały wszystkich członów zespołu po kolei co zrobić teraz.

Ważne jest, aby w zespole znajdowała się osoba, która będzie nadzorowała pracę innych, oraz przydzielała zadania. Czasu jest za mało, aby pozwolić sobie na przestoje. Niemożliwe też się staje, aby odgórnie zaplanować wszystkie zadania i jechać z nimi skrupulatnie, ponieważ często po drodze okazuje się, że coś staje się w wykonaniu nieopłacalne czasowo i trzeba iść na kompromisy. Osoba, która będzie zarządzała zespołem musi mieć umiejętność myślenia krytycznego i umieć planować zadania, które przy niskim nakładzie czasu uczynią aplikacje najbardziej efektowną.

Sprzedawca na konkursie programistycznym

Prezentacja finałowa to kluczowy element zwieńczający konkurs. To od prezentacji zależy, jak aplikacja zostanie odebrana. Niestety byłem świadkiem, gdzie programista spocony i styrany po 24h programowania, wychodzi na scenę zestresowany i duka coś językiem zrozumiałym tylko dla siebie jednocześnie stojąc tyłem do publiczności. Niełatwo się domyślić, jak to zostanie odebrane.

W zespole musi być osoba, która umie porwać publiczność i być wygadana – a znalezienie takiej osoby, wśród osób technicznych jest trudne… Dlatego ważne jest, aby była to chociaż osoba, która będzie ładnie ubrana i dobrze się prezentowała. Przede wszystkim musi być to ktoś kto będzie wypoczęty i uśmiechnięty.

Na scenie jest bardzo ciężko – setki oczu zwrócone ku Tobie, bardzo często pojawia się również kamera, stres osiąga zenitu i w cale nie mówi się tego co było wcześniej zaplanowane.

Dobrze jest, aby na prezentacji wystąpiły co najmniej dwie osoby. We dwójkę raźniej. Jak jedna osoba się zatnie, to druga osoba przejmuje inicjatywę i mówi dalej. Jeśli jednej osobie umknie, aby powiedzieć coś ważnego, to druga osoba to nadrobi. Prosta rzecz, ale czyni ona ogromną różnice.

TIP – Podmianka w zespole

Często słyszę pytanie – czy na hackathonie się śpi? Czy warto spać?

Wszystko zależy od naszego organizmu. Niektórzy są wstanie wytrzymać, niektórym nawet kofeina nie pomaga po kilku godzinach programowania.

Trzeba założyć (a dziwi mnie to, że tak dużo osób tego nie uwzględnia), że wraz z czasem nasza koncentracja drastycznie maleje. I tak zadanie, które zaplanowaliśmy np. na 3h to po kilku – kilkunastu godzinach programowania może zająć nam 2 razy więcej założonego czasu. Programiści ściśle identyfikują się z komputerami i myślą, że mogą pracować cały czas równomiernie jak one 😅.

Raz bardzo dobrze ogarnięty zespół na jednym z hachatonów na jakim byłem zrobił podmiankę osób w zespole. W hackathonie zazwyczaj bierze udział kilka osób, wszystko zależy od organizatora – na potrzeby przykładu niech będzie to 8 osób. Zespół ten podzielił się na 2 mniejsze zespoły – A1 i A2. Na początku pracuje podzespół A1. Po 12h, kiedy A1 jest już niewydajny wchodzi podzespół A2. Proste, ale efektywne. Po pierwsze w małych zespołach pracuje się łatwiej (ciężko zorganizować odpowiednią pracę dla dużego teamu w danym momencie), a po drugie wypoczęte umysły i świeże spojrzenie na problemy w projekcie.

Podsumowanie

  • Zadbaj o balans kompetencji w zespole (grafik, menager zespołu, prezenter).
  • Aplikacja musi być ładna, kod nie musi być idealny. Jeśli braknie Ci czasu na zaimplementowanie czegoś to wykorzystaj grafiki/gify/mocki
  • W prezentacji produktu dobrze, aby wystąpiły dwie osoby. Zadbaj o swój wizerunek (fryzura, zapach, odpowiedni ubiór). Używaj zdań pojedynczych – uchroni Cię to przed powiedzeniem czegoś niechcianego, oraz zmniejszy ryzyko zacięć/jęków namysłu (aaa…./y….) kiedy stres jest duży.
  • Nie ucz się mowy na pamięć, albo zapomnisz, albo będzie to sztuczne. Postaraj się opowiedzieć o swoim produkcie jak o dobrej historii, w której jest jakiś bohater.
  • Pamiętaj, że postęp prac jest nieliniowy. Efektywność drastycznie spada z każdą godziną.
  • Rozpatrz podmiankę członków zespołu 😊
Show Buttons
Hide Buttons