SegFault 2019 Gdańsk - identyfikator

SegFault 2019 Gdańsk – taka inna konferencja

W zeszłym tygodniu razem z reprezentacją e-point wzięliśmy udział w dwudniowej konferencji technicznej SegFault. Impreza była inna od popularnych krakowskich JDD, Geecon czy warszawskiego 4Developers, bo była bardziej kameralna (tylko dwie ścieżki), miała także warsztaty (pierwszego dnia). Na prezentacjach było poruszanych wiele tematów ogólniejszych niż same języki programowania czy konkretne biblioteki, raczej bliżej architektury i projektowania. Do wybory były 2 spośród 14 warsztatów, w grupach 16-25 osób.

Warsztat „Event Storming”

Warsztat prowadzony przez Wojtka Ptaka, Arkadiusza Kondasa ze wsparciem Jakuba Pilimona uczył metodyki analizy wymagań z biznesem będących wstępem do projektu prowadzonego z użyciem DDD. Bez komputerów, na stojąco, z użyciem długiej białej tablicy i kolorowych karteczek cała duża grupa pracowała nad analizą wymagań aplikacji do zarządzania biblioteką. Uczestnicy spontanicznie wcielali się w rolę ekspertów biznesowych (strona klienta), architektów/developerów (strona zespołu) czy rolę facilitatora – osoby koordynującej i wspierającej proces (podobnie jak scrum master).

Warsztat Event Storming
Warsztat Event Storming

Pomysł na zbieranie wymagań jest świetny: angażuje wszystkich zainteresowanych w szybkie określenie co system czy aplikacja ma robić, w jakiej kolejności, przez jakich użytkowników, komunikując się z jakimi systemami zewnętrznymi i gdzie są niedoprecyzowane obszary do opracowania w kolejnych iteracjach i (może) innych zespołach:

Rodzaje kartek Event Stormingu
Rodzaje kartek Event Stormingu

Proces podzielony jest na kilka etapów: od spontanicznej wymiany myśli, aż do uporządkowanego schematu:

Event storming - etapy
Event storming – etapy

Otrzymany schemat, albo jego obszary (ograniczone konteksty) bez niewyjaśnionych miejsc mogą być pierwszą dokumentacją systemu:

Warsztat Event Storming - wynik
Warsztat Event Storming – wynik
Warsztat Event Storming - wynik
Warsztat Event Storming – wynik

Warsztat „Z Event Stormingu do Walking Skeleton”

Ten warsztat był naturalną kontynuacją pierwszej części, ale prowadzony głównie przez Jakuba Pilimona ze wsparciem Wojtka Ptaka i Arkadiusza Kondasa. Idea była taka żeby wybrać pewien obszar domeny z poprzednich zajęć i przełożyć go na działający kod w Javie:

Warsztat "Z Event Stormingu do Walking Skeleton"
Warsztat „Z Event Stormingu do Walking Skeleton”

Technicznie było zorganizowane to w taki sposób że uczestnicy, zorganizowani w pary, dostali repozytorium kodu z szkieletem aplikacji i testami jednostkowymi do weryfikacji, a zadaniem było takie wypełnienie ciała metod aby zaimplementowane były reguły z karteczek.

Idea była dobra, ale ja osobiście poległem na drobnym szczególe: przed warsztatem nie dostałem e-maila od organizatora że należy pobrać repozytorium i sprawdzić środowisko programistyczne (info było na WWW ale w szczegółach drugiego warsztatu, a z opisu pierwszego zrozumiałem że stanowią logiczną całość i do drugiego nie zajrzałem). W efekcie większość czasu na realizacje pierwszego zadania spędziłem na instalowaniu Java 11 i próbie rozwiązania dziwnych problemów z Lombokiem w Idei :-(. Innym uczestnikom zadanie też chyba zajęło zbyt dużo czasu, bo pozostałe 3 zadania zostały zrobione przez prowadzącego „grupowo” w trybie live-code’ing. Ale po warsztatach, na spokojnie udało mi się samemu zaległe zadania wykonać i zrozumieć intencje.

Niemniej jednak, o ile pierwszy warsztat dał gotową wiedzę jak przeprowadzić sesję Event Storming, to drugi był tylko wstępem do tego jak używać DDD i zachętą do dalszej samodzielnej nauki :-). Jednak temat był bardzo ciekawy i warty pogłębiania , więc chętnie wziąłbym udział w kolejnych warsztatach z takiego cyklu.

Prezentacja: „Deep Learning in Computer Vision” (Krzysztof Kudryński)

Świetnie przygotowana, wyreżyserowana i przeprowadzona prezentacja o „głębokim uczeniu” na przykładzie grafiki komputerowej i rozpoznawania obrazów. W sposób pełen humoru przedstawiona została historia osiągnięć w tym temacie wraz z sesją video-coding (taki „live” tylko nagrany…) z użyciem biblioteki tensorflow (od Google) w Pythonie. Może nie była to wiedza z którą można było następnego dnia usiąść do własnego projektu ale na pewno była to świetna zabawa z podkładem naukowym, na którą warto było przyjść z samego rana.

Jak wytresować Basha? (Marcin Stożek)

To z kolei była bardzo praktyczna wiedza o tym jak, dlaczego i kiedy używać skryptów bash we własnych projektach. Wytłumaczone zostały rekomendowane wzorce i na co uważać, w szczególności z wyjaśnieniem zmian składni które zaszły przez 10-lecia, a niekoniecznie mogły być uwzględniane na bieżąco. Z ciekawszych uwag do zabrania zanotowałem sobie:

Kiedy od softu zależy ludzkie życie – o systemach safety-critical (Maciej Gajdzica)

Zupełnie inne spojrzenie na wytwarzanie oprogramowania przedstawione począwszy od przykładów największych wpadek w branży, kiedy faktycznie błędy w kodzie doprowadziły do śmierci (urządzenie do radioterapii Therac-25) lub olbrzymich strat (start rakiety kosmicznej Ariane 5). Przedstawione zostały założenia i standardy wytwarzania takiego rodzaju oprogramowania razem z listą różnych rekomendacji, w szczególności zalecanych języków implementacji ADA, MODULA-2, i Pascal, dopuszczalnych w niektórych przypadkach C# i Java i zupełnie odradzanych, np. Python. Ciekawą puentą było oszacowanie że koszt wytwarzania oprogramowania systemów safety-critical jest 10-krotnie droższe niż zwykłych systemów gdzie godzimy się aby błędy programistów były znajdowane przez użytkowników w systemie produkcyjnym :-).

Charbusters – 10 mitów o Unicode (Tomek Nurkiewicz)

Ciekawa, świetnie przygotowana i przeprowadzona prezentacja o zupełnie podstawowej rzeczy jaką jest kodowanie napisów w programach komputerowych, począwszy od historycznego ASCII czy ISO-8859-2 (pamiętam!), a skończywszy na UTF-8, 16 i 32 i emotikonach. Rzeczy warte przypomnienia i rozumienia na co dzień, bonusowo świetny materiał na spotkania rekrutacyjne to „zaginania” zbyt pewnych siebie kandydatów na programistów :-).

Senior Developer – człowiek renesansu (Eliza Stasińska)

Na zakończenie otrzymaliśmy przedstawienie obecnej sytuacji rynkowej i nadchodzących perspektyw na pracę programisty z perspektywy osoby która zajmuje się rekrutacją na stanowiska seniorskie w dużej korporacji. Prezentacja była ciekawa, a momentami kontowersyjna i wzbudziła ożywione dyskusje. Puenta była motywująca ale nieco pesymistyczna: teraz jest świetnie i jesteśmy (seniorzy) beneficjentami sukcesu gospodarczego ale to nie musi trwać wiecznie, bo jesteśmy kosztowni i na nasze miejsca szkolą się już kolejne pokolenia – co zostało zilustrowane niewinnym ale w tym kontekście przerażającym zdjęciem biegnących 10-letnich dzieci :-).

Podsumowanie

Kameralna formuła, więcej czasu na dyskusje, mniejszy tłok na korytarzach, ciekawe wykłady z częścią praktyczną, inne miasto niż Kraków do zwiedzania – zdecydowanie warto było się wybrać.

Komputer Odra 1305 w Gdańskim Parku Naukowo-Technologicznym który pracował przez 24 lata non-stop do 2010 zarządzając węzłem kolejowym
Komputer Odra 1305 w Gdańskim Parku Naukowo-Technologicznym który pracował przez 24 lata non-stop do 2010 zarządzając węzłem kolejowym
Komputer Odra 1305 (terminal) w Gdańskim Parku Naukowo-Technologicznym który pracował przez 24 lata non-stop do 2010 zarządzając węzłem kolejowym

O autorze

Marek Berkan Marek Berkan: programista, entuzjasta tworzenia oprogramowania, zarządzania zespołami technicznymi. Prywatnie motocyklista, kolarz MTB, biegacz, żeglarz, rekreacyjny wspinacz, zamiłowany turysta. Witryny: , , .

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *