3CityNetConf

3
442

Preludium

Wczoraj (a raczej przedwczoraj, bo dwa dni to pisałem…), tj. 19.04.2016 miałem okazję uczestniczyć w konferencji o wszystkomówiącej nazwie „3CityNetConf” organizowanej w Gdańskim Inkubatorze Przedsiębiorczości STARTER przez, prawdopodobnie, TrójmiejskąZawodową Grupę .NET oraz Analytics:Conf we współpracy ze sponsorami – czyli właśnie STARTERem oraz Microsoftem. Konferencja była płatna. Co prawda wstęp nie kosztował dużo – poniżej stu złotych w opcji „early bird”, ale wydaje mi się, że nawet te nieduże pieniądze znacząco podwyższyły poziom całej imprezy – a przede wszystkim prelegentów. W przypadku konferencji bezpłatnych jakaś część prelekcji jest zazwyczaj obsadzona przez przedstawicieli sponsorów i takie wystąpienia to ordynarne reklamy firm mające zerową wartość poznawczą. Oczywiście, skoro sponsorują, to chcą coś z tego mieć i doskonale to rozumiem, ale nauczony doświadczeniem (np. na ostatnim InfoShare wybitnie wykazał się w tym temacie pan od Atlassian, czy też drugi omawiający Hadoop, już nie pamiętam z jakiej firmy) wolę takie prezentacje omijać szerokim łukiem. Tak czy inaczej, tym razem tego nie było, a raczej była tego minimalna ilość – Tomasz Kopacz robił jak zwykle świetną robotę Microsoftowego marketingowca 😉
Kończąc już ten przydługi wstęp powiem tylko, że konferencja była dość mała – choć w porównaniu z InfoShare czy Get .Net większość pozostałych konferencji trójmiejskich taka się wydaje. Uczestników było niewielu – być może setka? Prelegenci zaś tworzyli dwie linie tematyczne – techniczną oraz biznesową (a raczej „miękką”), wypełniając praktycznie cały dzień roboczy od godziny 9:15 do 17.

Osobiście nastawiałem się na ścieżkę techniczną. Jako programista lubię posłuchać o nowinkach czy ciekawostkach i z tą myślą wszedłem na pierwsze tego dnia wystąpienie. Na szczęście organizatorzy w skromnym pakiecie powitalnym zawarli notes oraz długopis i moje uwagi mogłem na bieżąco spisywać ku pamięci, a teraz posłużą mi one do utworzenia tego krótkiego sprawozdania.

Tomasz Kopacz „Architektura i Service Fabric – jak budować aplikacje w PaaS v2”

Już sam tytuł powinien mi dać do myślenia, ale byłem naiwny i poszedłem 🙂  Tomasz, co wie każdy, kto był na choć jednej jego prezentacji, jest postacią barwną. W kuluarach słyszałem określenie „pan ADHD” i to, po usunięciu złych skojarzeń, wiernie oddaje co się dzieje na scenie. Na pewno nie można być znudzonym monotonną dykcją, czy też brakiem gestykulacji. Poza tym, już na pierwszy rzut oka widać, że ma on ogromną wiedzę i doświadczenie. Szczególnie wyraźnie było to widoczne na Get .Net dwa lata temu (?) gdy na żywo kodował i bawił się z Azure – wszystko wychodziło, wszystko było dopięte na ostatni guzik (co odróżniało go od prelegentów, którzy tylko udawali profesjonalizm). Tym razem było podobnie – facet był niesamowicie przygotowany, chciał przekazać wielką dawkę wiedzy, ale jak dla mnie było to zbyt dużo. Przede wszystkim bardzo pędził z materiałem. Po dodaniu do tego rzucanego z nadzwyczajną częstotliwością słówka „oczywiście”, wzbierała się we mnie frustracja – dla mnie to, o czym mówił oczywiste nie było. W pierwszej części wystąpienie miało też charakter raczej reklamowy, było dość mało konkretów. Na swojej kartce mam kilka uwag dotyczących tego, że w jawny sposób jest to prelekcja reklamowa Microsoftu. Tak naprawdę, dla mnie, połączenie powyższego – czyli słowa lecące z prędkością karabinu maszynowego, duża ilość różnych danych, elokwencja i humor prowadzącego, uczyniły tę sesję nie stricte techniczną, a raczej reklamowo-rozrywkową. O jednym jestem przekonany po wysłuchaniu dwóch prelekcji Tomasza – na trzeciej raczej nie będę. I to nie dlatego, że są słabe, czy też prowadzący nie jest OK – jak napisałem powyżej, jest wręcz przeciwnie. Chciałbym móc z Tomaszem pracować, ale niekoniecznie czas spędzony na jego wystąpieniach będzie czasem spożytkowanym w dobry sposób.

Interludium

Wydaje mi się, że jest to ogólny problem z konferencjami i ich tematyką. Gdy idziesz na jakieś wystąpienie ze ścieżki technicznej (to ważny dopisek), sugerujesz się tylko tytułem i nazwiskiem prowadzącego – często dotąd nieznanym. Tytuł, jak pokazała wczorajsza konferencja, też najczęściej nic nie mówi (dwa najlepsze moim zdaniem wystąpienia miały słabe, mylące tytuły…). Gdy już tam jesteś i jakimś cudem okazuje się, że trafisz na profesjonalistę, to najczęściej chce on przekazać całą swoją wiedzę na ten temat w 45 minut. Goni jak opętany, skupia się na niepotrzebnych szczegółach, pokazuje fragmenty kodu, przez co skupienie się na tym wszystkim wymaga ogromnej koncentracji a i tak najczęściej nie udaje się nadążyć i człowiek po pewnym czasie odpada. Być może z każdego wystąpienia da się wynieść COŚ – czasem jest to nawet jakaś mała uwaga, którą póżniej w domowym zaciszu wygooglujesz i na własną rękę będziesz badał, ale czy warto męczyć się prawie godzinę, by usłyszeć jedno czy dwa interesujące zdania? Doszedłem do wniosku, prywatnego i całkiem własnego, że nie. Tym bardziej, że znajomość jeszcze jednego frameworka czy też biblioteki raczej nie wpłynie na to jak dobrym programistą jestem. Oczywiście, trzeba się rozwijać, ale należy pamiętać, że mamy ograniczony czas i ten rozwój musi być jak najbardziej przemyślany. Osobiście uważam, że w tym momencie mojej kariery dużo większy postęp uczynię ucząc się elementów „miękkich” i to na nich skupiając uwagę. Oczywiście – mowa tu cały czas o konferencjach, gdzie ma się do wyboru dwie ścieżki i techniczna nie jest tą właściwą. W domu zaś dużo łatwiej jest się uczyć elementów technicznych – czytając książkę, oglądając prezentację, ale w swoim tempie, zatrzymując ją gdzie to potrzebne itp. Zrównoważenie nauki jest tu kluczowe 🙂

Tak więc od drugiej prezentacji (wielki plus dla organizatorów – obie ścieżki były ściśle zsynchronizowane czasowo) przerzuciłem się na małą salkę, gdzie odbywały się sesje „miękkie”. Tutaj już było świetnie. Przede wszystkim można było zobaczyć, że mimo pozornego niezwiązania ze sobą, prelekcje uzupełniają się, nawiązują do siebie. Są po prostu spójne, co podkreśla, że prowadzący wiedzą o czym mówią i prezentują sprawdzone metody – choć każda dotyczy troszkę innej działki – czy to prowadzenia projektu, czy rozmowy z klientem.

Grzegorz Rycaj „Zdebuguj swoją prezentację!”

Grzegorza miałem okazję wysłuchać na ostatnim Get .Net, gdzie mówił o problemach związanych z metodologią Scrum. Zarówno wtedy, jak i teraz był bardzo dobrze przygotowany, jest w ogóle świetnym prezenterem, co znakomicie uprawnia go do nauczania, jak powinno się prezentować – o tym była właśnie ta prelekcja. Mimo tego uważam, że tytuł był bardzo słaby, lecz czepianie się go mija się z celem, bo co z tego, skoro na stronie konferencji był opis wystąpienia.

I tak jak u Tomka Kopacza miałem dużo czasu na wyłączenie się i pisanie, tak tutaj zbytnio tego czasu nie było. Grzegorz znakomicie wypełnił swój czas, a gdy na końcu została mu jeszcze chwila, powiedział kilka zdań, które dodatkowo wystrzeliły jej wartość w kosmos – widać było, że facet ma doświadczenie i tym doświadczeniem chce się podzielić ze słuchaczami. Prezentacja była i zajmująca i pouczająca, oby więcej takich. Najważniejsza wydaje mi się jedna uwaga – „zawsze zadawaj sobie pytanie: co z tego?”. Towarzyszyła mi ona na każdym kroku tej konferencji i gdy na kolejnych prelekcjach ktoś coś mówił, zastanawiałem się: „co z tego wynika i dlaczego Ty mi o tym chcesz powiedzieć”. Wnioski nie były budujące – bardzo często prowadzący nie chce powiedzieć dlaczego on nam o tym mówi. Tak czy inaczej byłoby pięknie, gdyby pytanie „co z tego wynika” zadawał sobie każdy, kto chce się podzielić swoją wiedzą czy doświadczeniem z szerszą publicznością i właśnie pod tym kątem przygotowywał swoje wystąpienia.

I jeszcze jedna uwaga – to co powiedział Grzegorz na temat „co z tego” przywodzi mi na myśl wystąpienie Simona Sineka z TEDa, a szczególnie ten schemat „why-how-what” i dlaczego najważniejsze jest to „why”. Tworząc prezentację nie mów mi od razu jak coś zrobić, tylko najpierw powiedz i wytłumacz dlaczego jest to takie ważne, że zdecydowałeś się o tym mówić. I tak na przykład w tym poście mówię o moich odczuciach dotyczących konferencji, ale po co to robię? Powody są dwa – pierwszy to chęć podzielenia się z publicznością i dania „feedbacku” prowadzącym, a druga to ten nieszczęsny #dajsiępoznac, z którego już pewnie i tak odpadłem 🙂

Cezary Dębicki „Jak skutecznie radzić sobie z utrzymaniem produktu przy użyciu technik SCRUMowych”

Prelegent wydawał się dość stremowany, jednak po chwili rozkręcił się i opowiadał o swoich doświadczeniach związanych z problemem zgłaszanych w trakcie sprintu błędach w istniejącym oprogramowaniu. Jak wiemy, jest to częsty problem i Cezary zaproponował instytucję „mechanika” czy też „terminatora”, jakkolwiek dziwnie by to nie brzmiało 🙂 W skrócie chodzi tutaj o oddelegowaną na czas sprintu osobę, która zajmuje się właśnie zgłaszanymi błędami, a gdy takich nie ma, pracuje przy zadaniach, na które normalnie nie ma czasu lub nie są mocno związane z głównym nurtem działania zespołu, czyli np. prototypowanie.

Mechanik jest lepszy od ciągłego przełączania się zespołu z pracy nad backlogiem z powodu bardzo dużych strat czasu i energii na skoki między zadaniami. Podobnie jak w przypadku rdzenia procesora, człowiek także nie może przełączać się bezstratnie. Jak pokazuje Cezary, za Geraldem Weinbergiem:

Jeżeli jest to prawda, a pod skórą czuję, że, z dokładnością do procentów, tak, to rzeczywiście postulowany „mechanik” ma bardzo duży sens. Notabene w mojej firmie istnieje także wydelegowany zespół „mechaników” (ponieważ w przypadku kilku zespołów, zasada skaluje się i każdy z nich powinien wydelegować jednego człowieka) z tym, że jest on utworzony na stałe. Idea Cezarego jest o tyle lepsza, że nie daje tym ludziom poczucia beznadziei, że do końca swojej kariery w firmie będą skazani na sprzątanie brudu po innych.
Podsumowując – mimo lekkich niedociągnięć w warstwie prezentacyjnej, bardzo fajna prelekcja.

Wiesław Kałkus „C# Functional Programming”

Wieśka znam z poprzedniej pracy. Jest to człowiek z ogromnym doświadczeniem nabytym m.in. w pracy w jednej z najlepszych firm programistycznych na świecie – Microsofcie. Poza doświadczeniem ma dar do mówienia i umie się dzielić swoją wiedzą. Wewnętrzne szkolenia, które prowadził, naprawdę wciągały i człowiek naprawdę nie mógł się na nich nudzić. Tym razem nie było inaczej – na tej prezentacji na pewno się nie nudziłem ale, paradoksalnie, nie była to prezentacja dobra. Dlaczego? Głównie te same zarzuty, które stawiałem Tomaszowi Kopaczowi – bardzo techniczna (choć lojalnie o tym uprzedził na początku – nie spodziewał się chyba takich tłumów ludzi – sala pękała w szwach 🙂 ) prezentacja, naszpikowana szczegółami implementacyjnymi, a brakowało jasno zakomunikowanego – „dlaczego? co z tego wynika dla mnie jako programisty? po co w ogóle chcesz mi to pokazać?”.Wydaje mi się, że zamiast pędzić przez kod – „programowanie w Power Poincie ” – można było raczej skupić się na wyjaśnienie mechanizmów, które można wykorzystać w C#, a które „zfunkcyjnią” pisany przez nas program. Podobnie, bardzo dużo czasu zostało poświęcone na szczegółowe przedstawienie obiektowej wersji programu – wg mnie niepotrzebnie. Zamiast szczegółów dużo bardziej chciałbym poznać idee programowania funkcyjnego, które można wprowadzić pisząc w C#. Tutaj był tylko przykład, przez który przemknęliśmy jak burza, a później praktycznie nie starczyło na nic więcej czasu. Dlatego czuję niedosyt i chciałbym zobaczyć inną wersję tej prezentacji, bo temat jest jak najbardziej na czasie i ma potencjał.
Podczas prezentacji nasunęły mi się jeszcze inne uwagi – to co powiedziałem o doświadczeniu Wieśka bardzo fajnie było widać w kilku zdaniach, które rzucił do sali – np. o tym, że programowanie to kontrolowanie złożoności (entropii – jedno z ulubionych powiedzeń
Wieśka:) ), czy też o tym, że doświadczony programista różni się od niedoświadczonego tym, że nie musi znać danej biblioteki, bo w dość krótkim czasie się jej nauczy, gdy zajdzie taka potrzeba – to jest to co i ja myślę i uważam, że oceniając programistę właśnie takimi kategoriami powinniśmy się kierować – nie tym, ile „frejmłorków” zna, a raczej jak podchodzi do programowania. Chciałbym także zobaczyć w jaki sposób programowanie funkcyjne może nas uwolnić od kontrolowania stanu. Wiesiek rzucił problem numeru faktur – w obiektowym
programie musimy numer ostatniej faktury trzymać i zwiększać za każdym wystawieniem nowej. W jaki sposób F# mógłby nas przed tym uchronić? Nie mam pojęcia i być może na następnej prezentacji Wiesiek pokaże więcej właśnie idei, a mniej dokładnych implementacji.
Pochwalę się jeszcze bo na koniec, rzutem na taśmę, wygrałem kubeczek za odpowiedź na pytanie co wyprodukuje wyrażenie LINQ – co wprawiło mnie w duże samozadowolenie:)

Ewa Chuda „Zakończenie sprintu. Stresujące, wyluzowane, a może zaplanowane?”

Jedyna kobieta wśród prelegentów, sposób prezentowania w miarę OK, ale popełniła jeden kardynalny błąd, który zaważył na całej prezentacji. Już na początku zakomunikowała, że
można zadawać pytania w trakcie i jedna osoba zdominowała całe wystąpienie tak, że zamiast prelekcji i jasnego, nieprzerywanego przekazywania jakiegoś pomysłu, cała prezentacja przerodziła się w dialog między prowadzącą a osobą z widowni. W pewnym momencie stało się to naprawdę męczące tym bardziej, że nie wnosiło to nic ciekawego. Dociekliwy chłopak z widowni pytał się z natarczywością godną lepszej sprawy o takie błahostki, że teraz nawet ich nie pamiętam, a całą dyskusję można sprowadzić do opisu jak prowadzi się projekty w PGS Software, gdzie pracuje Ewa.
Innymi słowy – mogło być dużo lepiej, gdyby nie jakaś nadużywająca osoba z widowni. Prezentacja miała jednak potencjał, a najbardziej spodobały mi się dwa krótkie zdania:
„Żadna zasada nie jest uniwersalna. Każda zasada wymaga kontekstu” Mistrzostwo –
naprawdę. To niesamowicie pasuje do moich odczuć i na każdym kroku, nie tylko w życiu zawodowym, widzimy, że to jak najbardziej prawda. Zdania te są warte zapamiętania i przede wszystkim – stosowania się do nich.
Jeszcze jedna uwaga dotycząca zadawania pytań – przed zadaniem pytania prowadzącemu radzę zastanowić się, czy nie jest ono zbyt szczegółowe. Na takie pytanie nie otrzyma się dobrej odpowiedzi, a wytrąca się całą prezentację z rytmu.

Jarosław Łojewski „Jak się nie zagryźć, czyli rozmówki między IT i Biznesem”

Bardzo często na pierwszy rzut oka można poznać jaka ta prezentacja będzie. Jarosław od początku wydawał się być człowiekiem z dużym doświadczeniem i miało to ogromne odbicie w jakości prezentacji. Bardzo racjonalne podejście do tematu kontaktów z osobami nietechnicznymi, dużo konkretów, które znów mają zastosowanie nie tylko do działki programowania, ale ogólnie – kontaktów międzyludzkich. Prowadzący podkreślił to, o czym nie każdy programista pamięta – że to biznes nas karmi i to dla niego pracujemy, a nie wyłącznie dla swojej satysfakcji. Mówiono także o przewidywalności, jako jednej z najbardziej pożądanych cech dewelopera – i znowu zazębiało się to z wnioskami z wcześniejszych prezentacji. Bardzo fajna uwaga na temat prowadzenia dziennika zmian – że powinno się taki mieć, na wypadek jakichś późniejszych problemów. W tej prezentacji na każdym kroku mówiono o czymś ciekawym w bardzo fajny, luźny sposób (co ciekawe – nie stroniono od przekleństw, co normalnie byłoby co najmniej dziwne, a w tym przypadku w żaden sposób nie przeszkadzało – co także świadczy o klasie prowadzącego).
Z rzeczy wartych zapamiętania to problem asertywności w obsłudze klienta (czy dowolnego adwersarza) i czterokrokowy model stopniowania reakcji wg Pameli Butler. I znów ciekawostka – padło pytanie z widowni, czy nie lepiej zamienić pewne punkty w tym modelu. Odpowiedź prowadzącego nawiązała do wyróżnionego cytatu z prezentacji Ewy Chudej (czyli żadna zasada nie jest uniwersalna) – dobre, mądre pomysły są uniwersalne i często powtarzane/wykorzystywane.
Po prezentacji porozmawialiśmy jeszcze chwilę z prowadzącym, dowiedzieliśmy się paru haseł, m.in.: Extended Disc oraz http://analizait.pl/ – nie miałem okazji poczytać czegoś więcej na tych stronach, ale z informacji od Jarosława wnioskuję, że można tam znaleźć parę ciekawych rzeczy.

Postludium

I to w sumie tyle. Jak widać, zrobiłem sobie przerwę w środku oraz odpuściłem ostatni wykład. Najpierw nie mogłem się zdecydować, czy bardziej mnie pociąga opowiadanie o MS Dynamics, czy też Xamarin, a każdy pamięta bajeczkę o osiołku i dwóch żłobach – po prostu nie wybrałem żadnego 🙂 I dokładnie ten sam mechanizm zadziałał w przypadku prezentacji ostatniej – zbyt wiele dobrych tytułów 🙂 Tu być może zdecydowałbym się jeszcze na prezentację Cezarego Otłuszyka dotyczącą tuningu SQL Server, ale czułem że raczej nie będę w stanie przyswoić sobie nic więcej, a podobno prezentacje mają być udostępniane, więc doszedłem do wniosku, że raczej nie dziś 🙂
Z opowiadań kolegów wiem też, że ciekawe były prezentacje Mateusza Marmołowskiego oraz Tora Hovlanda. O ile pierwszego z nich nie znam, to Tor jest architektem w mojej firmie i wiem, że jest naprawdę dobry, tak więc mam nadzieję, że jego prezentacja będzie przeprowadzona raz jeszcze na forum wewnątrzfirmowym.
No i w sumie tyle – ta notka ma charakter krytyczny, ale też i jest rodzajem przypominajki – chcę, w miarę wolnego czasu, zapoznać się z przynajmniej niektórymi tematami poruszanymi przez prelegentów i doczytać interesujące mnie rzeczy. Konferencja wyszła bardzo dobrze i mam nadzieję, że następna będzie równie fajna. W maju mamy Info Share i tam, jeżeli będę, także wybiorę raczej ścieżkę nietechniczną – przekonałem się, że naprawdę warto.