Hackathon, czyli sposób na programistyczną monotonię

Hackathon, czyli sposób na programistyczną monotonię18.12.2019 17:17
Hackathon, czyli maraton programowania (fot. Pixabay)

Często słuchamy marudzenia na popularne metody organizacji pracy programistycznej. Nowoczesne metody zarządzania, nierzadko wdrażane nieprawidłowo, bywają uznawane za zbędne i przekombinowane. Adresatami takich krzywdzących opinii są nie tylko konkretne rozwiązania, jak scrum, ale czasem cała filozofia tworzenia oprogramowania – agile.

Łatwo nam przychodzi zbywanie zastrzeżeń wobec metodyk zwinnych. Zawsze mamy wszak do dyspozycji argument dyżurny, brzmiący "to nie był prawdziwy agile!". Całkiem nieźle do podważania uwag nadaje się też przekonanie o nieuzasadnionej roszczeniowości najmłodszych pokoleń informatyków.

Umysł też się męczy

Krytyka zwinnych metod pracy nie musi zresztą wynikać z jakichś fundamentalnych, niemożliwych do rozwiązania problemów. Zdarza się, że jest ona efektem chwilowego "zmęczenia materiału". Niekoniecznie wypalenia, a raczej przejściowego zużycia wyobraźni. W takich chwilach aparat organizacyjny potrafi przeszkadzać w pracy, a wszelkie nowe rozwiązania – wyglądać jak fanaberie wymyślone na potrzeby zabłyśnięcia na hermetycznych konferencjach.

Dlatego o wyobraźnię programisty należy dbać. Zwłaszcza, że nie każdy pomysł da się początkowo w łatwy sposób ująć w sztywne ramy organizacyjne. Skodyfikowany proces, nawet lekki (jak to powinno być w agile), potrafi zaszkodzić niektórym pomysłom i uniemożliwić badawcze prototypowanie. Na szczęście istnieją alternatywy.

Dobrze płatne zawody nie oznaczają ucieczki przed wypaleniem zawodowym. Wyobraźnia zuzywa się każdemu. (fot. Pixabay, Lukas Bieri)
Dobrze płatne zawody nie oznaczają ucieczki przed wypaleniem zawodowym. Wyobraźnia zuzywa się każdemu. (fot. Pixabay, Lukas Bieri)

Jest ich trochę, ale najpopularniejszą z nich jest tzw. hakaton (coraz częściej słowo występuje w wersji spolszczonej), czyli maraton programowania. W przeciwieństwie do zbioru iteracji rozplanowanych na zadania w wielomiesięcznej perspektywie, hakaton jest skondensowanym w czasie "atakiem na problem". Zagadnienie jest przedstawiane ramowo, a organizacja leży całkowicie w gestii zespołu. Jeżeli ktoś chce przesiedzieć 14 godzin bez dłuższej przerwy, bo inaczej zapomni, co chce osiągnąć w prototypie, na hakatonie są do tego okazje.

Takie maratony stały się popularne jako metoda promocji oraz sposób na "restart" kreatywny pracowników. Oznacza to potencjalne korzyści nie tylko na polu mitycznego "samorozwoju": udział w hakatonach pozwala organizatorom otrzymać prototyp niekoniecznie łatwy do uzyskania zwyczajowym tokiem badawczym (R&D). Obie strony są więc zadowolone.

Hakathon w praktyce

Hakatony organizuje coraz więcej firm, powstają także całe platformy maratonowe, oferujące zasoby uczestnikom-organizatorom. Prędko można się przekonać, że taka forma pracy, choć przeznaczona jedynie do szczególnych zagadnień, potrafi dać wartościowe owoce.

Wie o tym już Exatel, biorący w tym roku udział w hakatonie HackYeah. Exatel dostarcza usługi z zakresu cyberbezpieczeństwa i telekomunikacji. Od lat zatrudnia w tym celu szanowanych ekspertów. Eksperymentuje też z różnymi formami interakcji. Zadaniem zdefiniowanym przez Exatela, na którego realizację uczestnicy mieli nieco ponad dobę, było stworzenie narzędzia kategoryzującego dane, opartego o uczenie maszynowe. Cel został zrealizowany, zwycięzcy nagrodzeni, a my mieliśmy okazję porozmawiać na temat doświadczeń Exatela z hakatonem. Zamieniliśmy także parę słów na temat definiowania celu pracy i metod pomiaru jakości, co było źródłem cennych spostrzeżeń.

(fot. Piotr Urbaniak)
(fot. Piotr Urbaniak)

Kamil Dudek, dobreprogramy: Hakaton kojarzy się niektórym z ulgą względem scruma, z większą przestrzenią do realizacji pasji. Czy udział w tegorocznym HackYeah to była bardziej próba rekrutacji, czy może obejście agile'a? Ewentualnie eksperyment w ramach jakiegoś istniejącego procesu?

Piotr Dudzic, Exatel: To było najbliżej eksperymentu. Mamy w zespole dużo pomysłów, więcej pomysłów niż czasu, więc skupiamy się na tym, co priorytetowe. Niektóre pomysły, które po prostu "fajnie byłoby zrobić" nierzadko musiały czekać. Pewnego razu, gdy już mieliśmy się przymierzać do jednego z nich, pojawiła się sugestia, by zgłosić ten pomysł do hakatonu HackYeah, ze względu na jego skalę i różnorodność. Zazwyczaj formuła hakatonu zakłada jedno zdefiniowane zadanie, nad którym pracują wszystkie zespoły. Tutaj było inaczej, pula dostępnych zadań była większa. Dlatego zgłosiliśmy nasz pomysł, licząc na zainteresowanie zespołów. Zdecydowaliśmy się zdefiniować zadanie tak, by uczestnicy mieli pewien poziom swobody - by w przeciwieństwie do "dev-tasku" zadanie pełniło rolę inspiracji związanej z celem, który chcieliśmy osiągnąć.

Co to było za zadanie? Początkowo było ono chyba sformułowane dość ogólnie...?

Początkowo tak. Chodziło nam o to, żeby z użyciem uczenia maszynowego, opracować mechanizm, który pozwoli odsiać szum w wielkim morzu informacji. Tym morzem był enigmatycznie opisany "zbiór danych z internetu". W praktyce chodziło o narzędzie zbierające dane z pastebina, komentarzy, darknetu i wielu innych miejsc oferujących nieskategoryzowane, pełne szumu dane. Wśród wielu niewinnych danych zdarzają się np. wycieki danych osobowych i kart kredytowych. Leżą obok wierszy, zadań domowych z programowania i statystyk z Pokemonów.

Dane, które nas interesują jako dostawców usług cyberbezpieczeństwa, są nieuporządkowane i chaotyczne, ale wykazują pewną charakterystykę. Zadanie polegało więc na tym, by stworzyć mechanizm umożliwiający zbieranie różnorakich informacji z grupy o określonym podobieństwie.

W oparciu o takie oględne wytyczne, zespoły miały stworzyć narzędzie umiejące zaciągnąć dane, podzielić je na grupy ze wskazaniem jakie prawdopodobieństwo przynależności wykazuje dany element. Następnie pozwolić jakoś przeszukać te dane: albo fraza językiem naturalnym, albo wzorzec, na podstawie którego wyszukiwano podobne elementy. Tak nauczony model pozwalałby odsiać z danych szum, spam i niepasujące nam rzeczy.

(fot. HackYeah)
(fot. HackYeah)

Zupełnie nie spodziewaliśmy się, że w ramach projektu dostaniemy również interfejs użytkownika, tymczasem zwycięskiej drużynie udało się przygotować bardzo intuicyjny GUI. To na pewno przyczyniło się do zwycięstwa.

Czy zespół który się zgłosił, podzielił się na role spontanicznie, czy też była to grupa freelancerów, która obrała podział ról wcześniej, jako metodę sprzedawania swojej pracy? Jak to wyglądało w innych zespołach? Czy było widać powtarzalne cechy szczególne? Czy pracowano według zbliżonych schematów?

Było bardzo różnie. Próbowaliśmy się z każdym zespołem poznać. Obraliśmy unikatowe podejście, bo w zadaniach innych uczestników hakatonu temat od razu pozwalał na rozpoczęcie pracy. U nas było inaczej i dlatego zespoły zabiegały o kontakt w celu otrzymania wskazówek. Było nas trzech, a do komunikacji w ramach hakatonu zestawiono Discorda. Z zespołami rozmawialiśmy też osobiście, tłumacząc na czym polega zadanie - ze szczegółami i przykładami.

W większości zespołów przyjechały już drużyny złożone wcześniej. Mieliśmy też zespoły tworzone na miejscu, ale nie wybierały one naszego zadania. Było ono trudniejsze, niż pozostałe, mieliśmy mniej chętnych, a ludzie pracowali do ostatniej minuty. Jeżeli chodzi o podział prac: były zespoły ściśle techniczne i dostarczały one rozwiązania będące zbiorem niepołączonych narzędzi. Aby uzyskać rezultat o który pytaliśmy, konieczne było wykonanie kilku kroków ręcznie. Więc nawet sensowne rozwiązania użytkowo były dość słabe, przez co trudniej je było oceniać.

Zwycięska drużyna zastosowała bardzo jasny podział ról: były tam trzy osoby: lider - "data scientist", programista full stack, odpowiedzialny za aplikację i od strony wizualnej osoba odpowiedzialna za UI/UX i grafikę.

Od początku starali się jak najlepiej zrozumieć zagadnienie i konfrontowali z nami swoje hipotezy. Staraliśmy się ich naprowadzać na rozwiązania bez podawania szczegółów. Opisywaliśmy, co robimy w firmie i co nas interesuje.

(fot. Exatel)
(fot. Exatel)

Były też zespoły, które nie pytały o pomoc, ale wtedy sięgaliśmy do nich sami. Czasem chcieliśmy niektórym coś podpowiedzieć ponad miarę, bo widzieliśmy, że niektórzy są blisko, ale staraliśmy się nikogo nie faworyzować. Więc jeżeli mówiliśmy coś jednemu zespołowi - informowaliśmy wszystkich innych, jakie było pytanie i jaka jest odpowiedź. Było trochę biegania przez pierwsze kilka godzin.

Zespół, któremu się udało wykazał się więc samoorganizacją.

Ale to niejedyny zespół, który się samodzielnie zorganizował. Ale to zwycięzcy posiadali komplementarne umiejętności. Była osoba od danych, od aplikacji-interfejsu i od środowiska graficznego.

Poinformowaliśmy przed końcem, jak będzie wyglądać proces oceny: należało wskazać elementy podobne do wzorca podanego programowi. Okazało się jednak, że w przypadku niektórych rozwiązań, trudno to było zrobić. Mimo sensownego pomysłu, nie dało się pokazać że on działa.[quote]Zespoły ekspertów technicznych skupiły się na stronie algorytmicznej, dostarczając rozwiązanie w częściach. I to był ich błąd. Nie zadbali o implementację przypadku użycia, realizację potrzeby. Nie pomyśleli o prezentacji/sprzedaniu swojego pomysłu. [/quote]Wynikły też problemy z komunikacją. Wynikały po części z tego, że nasze zadanie było trudniejsze. Zakładaliśmy, że zespoły wybiorą zadanie i zadbają o to, żeby nawiązać z nami współpracę. Tymczasem formuła zakładała o wiele większą swobodę:, np. wybór kilku zadań. Nie wszyscy utrzymywali stały kontakt przez komunikator. Dlatego pytaliśmy zespoły sami – czy potrzebują pomocy.

(Exatel)
(Exatel)

Czy zwycięzcy byli kimś, kto prawdopodobnie najlepiej radzi sobie właśnie w takiej formule jak hakaton? Czy takie okazje pozwalają się wybijać osobom, które być może ciężko docenić w innych okolicznościach? Czy też pracowaliby bez problemu w zwykłym, nudnym agile'u?

Agile skupia się na koncepcji minimum viable product, szybkim dostarczeniu elementarnej, działającej wersji spełniającej minimum oczekiwań. Pod tym względem hakaton ma wiele podobieństw. W firmie jednak myśli się w kategoriach stabilności i późniejszej odpowiedzialności za kod. Nie oczekiwaliśmy od zespołów narzędzi o gotowości produkcyjnej i integracyjnej. Oczekiwaliśmy weryfikacji pewnej koncepcji. Gdybyśmy chcieli to samo dostarczyć w ramach procesu w firmie, potrzebowalibyśmy spotkań, dyskusji. Tymczasem część drużyn zrobiła sobie przerwę, niektórzy wynieśli się na noc do hotelu, pozostali siedzieli na miejscu. Wszyscy żyli atmosferą nastawienia na cel.

o była podstawowa różnica: krótki termin, jasno zdefiniowany cel, a za nim nagroda i nie ma możliwości przekładania ani przeplanowania. Albo się uda albo nie. Myślę, że taki tryb pracy na dłuższą metę może nie zadziałać. Moglibyśmy zastosować w procesie hakaton, ale nastawiony na prototypowanie, z jasno określonym celem i opcjonalny.

To tworzy kolejne pytanie: czy hakaton nadaje się jako metodyka pracy (nieregularnie)? Czy jest sens przerzucać część zagadnień do rozwiązywania właśnie w taki sposób, czy jest to zbyt zuchwałe?

Przy produkcji gier komputerowych od czasu do czasu zdarzają się takie imprezy. Rezultaty bywają fajne: ludzie bardzo chcą i lubią pokazywać, co są w stanie zrobić, jeżeli tylko da się im swobodę. Oczywiście, najlepsi dostają nagrody. Ale zdarza się też, że zwycięski projekt został przekuty w produkt. U nas była to pierwsza próba kontaktu z taką formułą, więc trudno o wnioski.

Co jest kluczowe, to nie metodyka, a dobrze zdefiniowany cel. Każda drużyna miała swoje pomysły, zupełnie różne technologie i koncepcje. Spodziewaliśmy się, że wszyscy skorzystają z tego samego, ale okazało się, że wykorzystano całe spektrum. Więc pomogło nastawienie na cel i możliwość pokazania, że można coś wymyślić bez sugestii od jury. To jest tutaj kluczowe. Staramy się w pracy zawsze robić ciekawe rzeczy. W przypadku R&D widać to najlepiej, są to unikalne rozwiązania.

**Co do nudy: często można się spotkać z narzekaniem, że ten backlog rozpisany na zadania ciągnący się w nieskończoność, zwłaszcza w utrzymaniowych projektach, z definicji powstrzymuje kreatywność. Ale czy taki hakaton nie jest właśnie metodą pokazania takich projektów ciekawie? Skoro proces czyni produkt nudnym. **

Zainteresować można na wiele innych sposobów niż hakaton, kwestia doboru właściwego. Hakaton może istotnie dać powiew świeżości, ale cykliczny hakaton w tym samym projekcie by się nie powiódł. To służy jednak do eksplorowania nowych pomysłów. Na skostniałe projekty pomagają burze mózgów, ale wtedy cel spotkania jest inny i musi być zgodny z celami biznesowymi. Jeżeli mamy duży projekt i morale siada, możemy próbować oznajmiać cel przez komunikację z biznesem - co chcemy osiągnąć, po co robimy ten soft. I zadać zagadkę "gdybyśmy mieli powiedzieć, że to ma od dziś działać zupełnie inaczej, to jak miałoby to wyglądać?".

Dziadek Agile: Tom Gilb (TEDx Trondheim)
Dziadek Agile: Tom Gilb (TEDx Trondheim)

Czy do hakatonu warto wracać?

Hakaton jest czymś obok. Nie da się w ten sposób pracować. Jest to coś zupełnie obok metodyki pracy: robienie hakatonu za hakatonem się nie sprawdzi. Zawsze istnieją elementy, które będą nudne i które trzeba odbębnić. Z developmentu produktu który ma zarabiać pieniądze nie da się zrobić nieustającej imprezy. To musi spełniać cele biznesowe. Metodą uniknięcia tej nudy jest przychodząca wraz z doświadczeniem umiejetność takiego planowania pracy, żeby tzw. "nudne" elementy dostarczać jak najprościej. Powiem też niepopularną rzecz: niekoniecznie zawsze jestem zwolennikiem scruma.

Podoba mi się podejście Toma Gilba (zwanego dziadkiem agile): maksymalizacja wartości osiąganej przy założonych ograniczeniach. Jeżeli robimy jakieś narzędzie lub optymalizujemy proces, zawsze chcemy dostarczać jakąś wartość. Wybieramy co jest najważniejsze dla zaspokojenia krytycznych potrzeb interesariuszy, a na końcu to mierzymy. Określamy poziom "good enough".

Na każdą wątpliwość, Gilb ma sugestię rozwiązania popartą doświadczeniem lat jako konsultant. Wyłonienie krytycznej wartości, tego co tak naprawdę chcemy osiągnąć jest kluczem. To podejście może być wykorzystane przez scruma, ale nie musi. I tak góra "patrzy" na metryki właśnie w taki sposób. Scrum nie jest odpowiedzią na wszystko.

(fot. HackYeah)
(fot. HackYeah)

Jak organizacja reaguje na inicjatywę udziału w hakatonie? Czy to wychodzi od programistów, czy może od PR?

Zachęta przyszła z góry i pojawił się pomysł, co przedstawić. Większy opór był na najniższym szczeblu, bo był najbardziej obciążony. Ale było z tego dużo radości.

**Co z logistyką - jak było z dostępnością mentorów na sali? Czy było to wyciągnięcie ich z życiorysu, za co potem mogli nie być wdzięczni? **

Musieliśmy być dostępni przez długi czas i poświęcić kilka dni. Musieliśmy się z tym liczyć. Nasze zespoły potrzebowały wsparcia. Dało się korzystać z "cudzych mentorów", ale raczej z tego nie korzystano. Ale my nie mieliśmy czasu dla innych zespołów, więc nasze zadanie okazało się na tle innych nieco bardziej wymagające. Jesteśmy przede wszystkim spółką telekomunikacyjną. To co zrobiliśmy w ramach hakatonu poszerza portfolio rzeczy, które mamy. W ciekawy i odświeżający sposób.

Nie kończymy naszych dyskusji na temat procesów i metodyki wytwarzania oprogramowania. W kolejnej odsłonie zajmiemy się podejściem do metodyki stosowanym w firmie Red Hat.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.