15 października 2013

Scalania 5 - wydanie specjalne i warsjawa 2013 przechodzą do historii

Projekt spotkań w formie warsztatowej o nazwie scalania odpaliłem po raz pierwszy 9 lipca 2013. Pomysł nie był nowatorski w swej formie, a wciąż nie posiada swojego konkurenta, przez co można choćby z tego powodu okrzyknąć go sukcesem. Podobnie jak warsjawę.


Kiedy 6 lat wcześniej - 21 listopada 2007 - uruchamiałem (jeszcze na tamten czas nazywaną) WarsJavę - projekt polegający na serii krótkich wykładów praktycznych, które miały być odpowiedzią na rosnące zapotrzebowanie poznawaniem technologii przez warsztaty - nie sądziłem, że może kiedykolwiek przyciągnąć ponad 500 uczestników, a dodatkowo będzie prowadzony przez grupę niesamowicie nakręconych łebków, którzy już dawno udowodnili, że jak można, to będzie i nie potrzeba ciągać za sobą balastu w postaci mojej osoby. Chwała za decyzję!


I dało się? Pewnie, że się dało! Spełniło się moje marzenie o uformowaniu grupy, która organizuje się samodzielnie i potrafi uruchomić confiturę, warsjawę oraz zadbać o regularne spotkania Warszawskiej Grupy Użytkowników Technologii Java (Warszawa JUG).

Panie i Panowie, szacunek za poświęcony czas i włożony wysiłek. Jestem dumy móc pracować z Wami i korzystać z owoców Waszej pracy! Uczę się przy tym niemało. Dziękuję!

I tak zabrakło mi organizowania czegoś i padło na spotkania warsztatowe ze Scalą. Zaczęło się od poznawania języka Scali samodzielnie, aby wpaść na pomysł odpalenia scalania. Brakowało mi towarzystwa do nauki, więc zorganizowałem spotkania.


I się toczy pomalutku.


Podczas warsjawy okazało się, że projekt scalania pozwala na organizowanie spotkań regularnie na MIMUWie oraz wydanie specjalne. W zasadzie formuła scalania podczas warsjawy nie różniła się zasadniczo od tego, co doświadczam na spotkaniach regularnych, ale kolejny raz dano mi możliwość poeksperymentowania i wdrożenia kilku pomysłów.

Na wydaniu specjalnym scalania na warsjawie pojawiło się 12 osób. Żadna z osób nie uczestniczyła w poprzednich scalaniach.


Po usadowieniu się uczestników i wprowadzeniu ich w tajniki projektu scalania (co trwało około 15 minut) poprosiłem o ujawnienie się bardziej zaawansowanych programistów Scali. Szczęście mnie nie opuściło i okazało się, że osób na poziomie kursu Odersky'iego i kilku samodzielnych prób z językiem było 6 - dokładnie połowa! W ten sposób wdrożyłem w życie pomysł podziału uczestników na pary - nowicjusz i zaznajomiony ze Scalą. Stoły były jakby dopasowane do takiego pomysłu i mieściły pary doskonale.


Przeszliśmy przez P01 wspólnie, później już P02 samodzielnie (w parach), aby około 10:40 zabrać się za P03. Zauważyć można było, że tempo nie każdemu służy i było niemałym zaskoczeniem dla uczestników. Mimo wszystko nie zraził się nikt i zawzięcie widać było na twarzach.


Trzeba było widzieć te pracujące pary - ludzie pracują wspólnie, w parach w rytm expression pair programming! Widać interakcję. Moje marzenie o spotkaniach, które integrują (zamiast tylko przekazywać wiedzę) spełniało się kolejny raz.

O 11:05 przerwa.

Przeszliśmy do P12 około 11:45 i dokończyliśmy spotkanie wspólnym rozwiązywaniem zadania, które pozwoliło mi zademonstrować siłę systemu typów Scali i wymuszanie przez niego implementacji (po prostu należało spełniać wymogi kompilatora, aby ostatecznie wyłoniło się rozwiązanie). Tym wspólnym akcentem zakończyliśmy scalania 5 - wydanie specjalne na warsjawie 2013.


Po warsztacie spędziłem czas do 15:00 na dyskusjach z organizatorami, wolontariuszami, sponsorami oraz uczestnikami warsjawy. Dziękuję wszystkim za wspaniałą atmosferę.


Niech podsumowaniem mojej relacji będą trzy relacje uczestników scalań. Jak nietrudno zauważyć, pojawia się w nich nowy pomysł do wdrożenia ;-)

"Hej,

jeszcze raz dzięki za świetny sobotni warsztat. Poniżej tak jak prosiłeś moje spostrzeżenia.

Na plus:
- muszę przyznać, że przed warsztatem widziałem może z jedno "Hello World" ze Scali więc trochę obawiałem się, że polegnę na składni. Jednak krótkie wstępy teoretyczne przed zadaniami pozwoliły mi o tym zapomnieć. Dodatkowo muszę powiedzieć, że taka metoda (minimum teorii koniecznej do rozwiązania problemu + kodowanie) nauki nowego języka bardzo dobrze się sprawdza.
- tworzenie par nowicjusz + bardziej doświadczony. Można poznać nowych ludzi, czegoś się od nich nauczyć, a i może oni się czegoś nauczą od nowicjuszy przez ich świeże spojrzenie.
- krótki czas na rozwiązanie zadań. Nie pozwoliło to ślęczeć uczestnikom nad rozwiązaniem nie wiadomo ile, dzięki temu nie robiło się nudno.
- sądzę, że wspólne rozwiązanie P12 na moim przypadku (trochę przy nim poległem na kompilatorze, ale rozwiązanie zmierzało w jakimś tam dobrym kierunku jak się okazało :) ) dużo dało nie tylko mi.

Co mogłoby być inaczej, żeby było lepiej (czyli jak ktoś woli minusy):
- zabrać/schować/wyłączyć (niepotrzebne skreślić :] ) jednej osobie komputer. Zdarzało się, że zaczynaliśmy rozwiązywać problem na jednym komputerze, rzucaliśmy swoje pomysły, później następował mały zastój i praca rozpraszała się na dwa komputery. Jedna osoba na chwilę zwątpiła we wspólnie wypracowane rozwiązanie i przechodziła do realizacji własnego pomysłu. Gdyby nie było drugiego komputera dało by się tego uniknąć i wycisnąć ze wspólnej pracy w parach dużo więcej.
- trochę się rozjechaliśmy z czasem/agendą, ale to właściwe plus bo jeśli mamy jakieś pytania do zadania, pojawiają się jakieś ciekawe dyskusje lub Ty miałeś coś extra do powiedzenia to dlaczego nie? Myślę więc, że nie ma co ściśle ustalać ile zadań zrobimy na spotkaniu bo czas poświęcony na jakieś dodatkowe rozmowy, o ile nie odchodzimy za bardzo od tematu, na pewno nie jest czasem straconym :)

Ogólnie jestem bardzo zadowolony z tego warsztatu. Jak napisałem wcześniej nie miałem kontaktu ze Scalą, a z programowaniem funkcyjnym tylko akademicko (LISP, PROLOG) - jakoś do mnie ono nie trafiło. Po warsztacie trochę inaczej na to spojrzałem i pewnie będę się chciał bardziej zagłębić w ten temat. Mam nadzieję, że uda mi się pojawić na następnych scalaniach. To tyle ode mnie."

"Cześć,

Warsztaty były naprawdę fajne i to co mi się najbardziej podobało to w miarę żwawa akcja.
Zauważyłem, że czasami jak omawianie teorii trwa zbyt długo i ludzie jeszcze nie za bardzo czują, że ta teoria może im się do czegoś przydać, to lubią się wyłączać.
Tutaj tempo było w sam raz.

Dzień wcześniej zrobiłem sobie dwa pierwsze zadania na ifach. Dzięki temu, że na zajęciach padła sugestia by użyć pattern matching, łatwiej mi było zauważyć różnicę pomiędzy tymi rozwiązaniami. Być może będziecie chcieli na przyszłych spotkaniach rozwiązywać dany problem na kilka sposobów 
i omawiać różnice.

To co można poprawić to pozostawić jeden laptop na grupę aby zachęcić do większej współpracy.

pzdr,"

"Witaj,

Podobało mi się:
- praca w parach (może warto pójść jeszcze dalej i spróbować pair programmingu ze zmianą kompa co zadanie?)

Podobało mi się mniej:
- skakanie między Sublime i REPLem gdy "spełniałeś wymagania kompilatora" (może wtedy lepiej byłoby użyć jakiegoś IDE które na żywo podkreśla błędy kompilacji?)"

Zaczynam zastanawiać się, na ile zasadne byłoby myślenie, że scalania należałoby odpalić w innych częściach Polski? Już realizuję pomysł, aby odpalić scalania w pewnej firmie (ogłoszenie niebawem), ale może i należałoby zastanowić się nad innymi miastami. Może również należałoby oprzeć na scalaniach całodniowe szkolenie? A może nawet kilkudniowe? Jesteś chętna, aby podjąć wątek? Porozmawiajmy!