Friday, January 23, 2015

2015-01-16 Startup Weekend Łódź - relacja


Podsumowanie (dla tych co nie lubią czytać)

Startup Weekend Łódź to było świetne wydarzenie. Sama forma zmusza uczestników do współpracy i bycia otwartym. Przez ostatni rok nie poznałem tylu ludzi co podczas tej imprezy. Wykorzystałem moje zapasy na bycie miłym i towarzyskim na pół roku do przodu.
Organizatorzy dali radę. Wszystko było bardzo dobrze zaplanowane, zawsze wiedziałem gdzie i o której godzinie będzie następny punkt programu. Cały czas w lodówce chłodził się zapas redbulla a stoły uginały się pod ilością jedzenia.
Jeżeli ktoś miał pomysł na biznes, lub chciałby się tylko dowiedzieć o co chodzi z tymi startup'ami - Startup Weekend jest idealny. W ciągu 3 dni mentorzy znokautowali mnie pytaniami niezliczoną ilość razy. Ale właśnie te ich celne pytania były dla mnie najcenniejsze. W 3 dni dostałem ogromny zastrzyk wiedzy o prowadzeniu biznesu. Startup Weekend to najlepszy pomysł na spędzenie weekendu w mieście... no chyba że hackathon ;)
Podsumowując, spędziłem ponad dwa dni rozmawiając o biznesie, jedząc pizze, popijając redbulla i dobrze się bawiąc z moim wspaniałym zespołem. Na pewno nie opuszczę kolejnych edycji.


Wstęp (tak jak Pani w szkole uczyła)

Muszę przyznać że nie do końca wiedziałem na co się piszę zgłaszając się na Startup Weekend Łódź (SWL). Wtedy myślałem że SWL to rodzaj hackathonu. Nie miałem żadnych planów na weekend i tak pewnie spędziłbym go kodząc - dlaczego nie stworzyć czegoś co się przyda komuś?
Rejestracja zaczęła się o 18:30 w piątek. Dostałem piękną czerwoną plakietkę, symbol introwertyka (albo Software Developera). Były jeszcze 2 kolory, niebieski dla designerów i grafików oraz żółty dla „non-technical”. Od razu wiesz z kim rozmawiasz ;)
Po oficjalnym rozpoczęciu i kilku zabiegach organizatorów aby rozruszać nasze zasiedziałe tyłki przyszedł czas na “pitch’e”. Co to jest “pitch”? Sam musiałem sprawdzić. „An argument or other persuasion used in selling” (wg Collins English Dictionary). W moim odczuciu „pitch” to krótka wypowiedź podczas której starasz się przekonać innych do Twojego pomysłu.
W przypadku SWL, scena i mikrofon były dostępne na 60 sekund dla każdego kto chciał przedstawić swój pomysł na biznes. To był moment przekonywania potencjalnych członków zespołu że Twój pomysł jest wart ich czasu i żeby przyłączyli się do Ciebie na kolejne 2 dni.
Po serii pitch’ów każdy z widowni dostał 2 żetony będące głosem na “tak” dla danego pomysłu. Pomysłów było chyba ponad 25, niektóre genialne, inne banalne i będące kopią czegoś co już istnieje. 12 pomysłów, które zebrały najwięcej żetonów mogły brać dalej udział w konkursie.
Przez kolejne pół godziny formowały się zespoły. Każdy kto był tam szukał sobie zespołu w którym będzie pracował resztę weekendu. Ja po prostu podszedłem do zespołu którego pitch najbardziej mi przypadł do gustu i zapytałem czy znajdzie się u nich miejsce dla kolejnego programisty. W tamtym momencie w zespole był Bartek Witczak, Maciek Bołtromiuk i Maciek Kucharek (tak, tak znacie ich z Łódzkiego JUG-a). Potem dołączyły do nas jeszcze 4 świetne osoby i tak powstał zespół „Skill Boost” :D
Skill Boost Team - foto wykonał Fotokomet Michał Karasiński



Rozwinięcie akcji


Skill Boost był pitchowany przez Maćka Bołtromiuka. Idea jest bardzo prosta: stworzyć portal do organizowania darmowych warsztatów IT. Pomóc programistom którzy chcą poprowadzić warsztaty ale nie chcą zajmować się organizowaniem ich. Jeżeli na myśl przychodzi Ci meetup.com to jesteś na dobrej drodze. Dodaj do tego pomoc w znalezieniu sali, rozpropagowanie warsztatu i już wiesz czym jest Skill Boost. Ja kupiłem tę idee, kilka razy udało mi się zorganizować coś w mojej firmie, ale na myśl o organizowaniu tego na większa skalę miałem dreszcze.
Była godzina 22, zespoły były dobrane. Naszym zadaniem było podzielenie się pracą na następne 2 dni i właściwie ustalić co chcemy pokazać w niedzielę. W tym samym czasie pojawili się mentorzy. Mentor to osobnik bardzo bystry i inteligentny. Biegły w sztuce komunikacji oraz wielkie doświadczenie posiadający. Mentorzy to osoby znające się na biznesie, ludzie którzy posiadają kilka swoich firm, lub zarobili już tyle że teraz zajmują się inwestowaniem w startupy. Organizatorzy odwalili kawał dobrej roboty, zaprosili naprawdę wspaniałych ludzi i to w ilości wręcz dla mnie przytłaczającej. Były momenty że rozmawialiśmy z jednym mentorem, a drugi już czekał, nie przerywając pierwszemu, ale też chcąc usłyszeć o naszym pomyśle i udzielić wskazówek. Te wskazówki były naprawdę pomocne. Po kilku pytaniach od pierwszego mentora uświadomiłem sobie że o robieniu biznesu nic nie wiem. Potem było jeszcze gorzej...

Zaczynaliśmy z przekonaniem że nasz startup nie musi właściwie zarabiać, pieniądze nie są nam potrzebne (4 programistów-marzycieli :) ) Szybko okazało się że są potrzebne, i to w bardzo dużej ilości. Po kilku nokautach naszego pomysłu, resztę wieczoru (a właściwie nocy) spędziliśmy uzupełniając naszą idee, szukając sposobów na to aby ją urzeczywistnić, ale także aby sama potrafiła zarobić na serwery na których śmiga ;)

Drugi dzień - sobota był pełen pracy. Cały czas pracowaliśmy nad naszym pomysłem. Co oferujemy naszym użytkownikom, jak będziemy pozyskiwać nowych itp. Oczywiście cały czas zaglądali do nas mentorzy i organizatorzy, którzy byli świetnymi obiektami do weryfikacji naszych pomysłów. Obdzwoniliśmy też naszych znajomych - sprawdzaliśmy ile tak na prawdę osób skorzystałoby z naszej pomocy. Okazało się że większość osób poprowadzi warsztat w wybranym przez siebie temacie o ile My zapewnimy sale i zajmiemy się rozgłoszeniem tego. Wpadliśmy w euforię! Tak to działa! To jest potrzebne! Obdzwoniliśmy kilka firm IT - one też bardzo pozytywnie zareagowały - dadzą salę, pizzę, a i na piwo po warsztacie też znajdą się fundusze.

Implementacja w toku - foto wykonał Fotokomet Michał Karasiński

Ostatni dzień - niedziela. Mentorów przybywa, naprawdę jest ich coraz więcej! Uruchamiamy stronę, fanpage na fb. Ciągle sprawdzamy kto jest zainteresowany naszym pomysłem. Udało nam się uruchomić pierwszy warsztat! Jest mentor, są głodni wiedzy słuchacze, jest firma która udostępni nam sale. Druga część zespołu od rana pracuje nad finałową prezentacją. Każdy z zespołów ma 3 minuty na przedstawienie swojego pomysłu, opisanie co udało im się zrobić przez ostatnie 2 dni, czy zweryfikował swój pomysł, czy znaleźli klientów. Potem jest czas na pytania, jury ma 2 minuty na wiercenie w pomyśle i znalezienie słabych stron.

Nasz zespół reprezentuje Bartek. Wchodzi na scenę i daje najlepszy pitch jaki do tej pory słyszało jury na SWL. Jestem tego pewien bo Bartek był pierwszym „pitch'ującym” ;) Potem kolejne zespoły. Czekamy na werdykt.
A tak wygląda pitch'ujący Bartek - foto Fotokomet Michał Karasiński

Zakończenie

Niestety nie udało nam się znaleźć w pierwszej trójce, były lepsze zespoły i to przyznaję z czystym sumieniem - te zespoły zasłużyły na to. Zrobiły niesamowity show, ukończyły prototyp, miały oczywistą strategię i potrafiły sprzedać swój pomysł. Jednak ja nie czułem że przegraliśmy, udało nam się zorganizować pierwszy warsztat i to już sprawia że było warto!

Więcej info o SWL:
https://www.facebook.com/swlodz

Saturday, January 17, 2015

2015-01-16 Always Be Responsible for Any Code You Write, Even for Fun. NoException()

Spotkanie poprowadził Matt Harasymczuk. Relację napisze Tomasz Kieroński, który wygrał wejściówkę na LambdaDays podczas tego spotkania. Krzysiek Telka w końcu wygrał licencję MyEclipse.

Relacja Tomasza Kierońskiego

Na wstępie chciałbym bardzo podziękować Mattowi za znakomicie przeprowadzoną i niezwykle inspirującą prezentację zorientowaną na przekonanie Nas, programistów do zwrócenia szczególnej uwagi na odpowiedzialność związaną z wykonywaną przez Nas pracą.

W mojej opinii dodatkowo w odbiorze prezentacji pomogły bardzo dwie rzeczy : profesjonalny zestaw bezprzewodowego mikrofonu zapewnił bardzo dobry dźwięk oraz wyłączone światło na sali dzięki czemu prezentacja była dobrze widoczna na ekranie. Zapewne warto pomyśleć o takim właśnie sposobie prowadzenia kolejnych JUG-ów.

Oczywiście najważniejsza była przekazywana treść, która miała na celu uświadomienie każdemu z Nas, w jaki sposób podchodzić profesjonalnie do każdego kodu jaki piszemy. Bez względu na fakt czy robimy to w ramach codziennej pracy, szkoleń, warsztatów, projektu open source czy też zwykłej zabawy z kodem w domu. Nigdy nie powinniśmy pozwalać sobie na „drogę na skróty” jaką z całą pewnością jest pisanie kodu z pominięciem metodologi TDD, nieprzemyślana implementacja „na szybko”, chaotyczne nazewnictwo zmiennych , klas i pakietów.

Wszelkie złe praktyki programistyczne jakich, zupełnie niechcący, możemy nabrać pisząc kod nieprodukcyjny staną się szybko naszym nawykiem, który zaczniemy przenosić do systemów produkcyjnych. Może to doprowadzić do „gnicia” naszego kodu i sprawić nam wiele problemów w przyszłości. Dlatego tak ważne jest abyśmy w każdej linii kodu starali się pamiętać o zasadach opisanych w „Clean Code” Roberta C. Martina, pracowali według metodologii SCRUM oraz dbali o nasz własny rozwój technologiczny. To jednocześnie bardzo mało i bardzo dużo. Jednakże przytoczone przez Matta przykłady pokazują, że profesjonalne podejście do programowania, bez względu jakiego kodu, ma daleko idący sens, który pozwoli nam na tworzenie jedynie kodu najwyższej jakości.

Warto w tym miejscu zwrócić uwagę na wysoki poziom merytoryczny wszystkich prezentacji naszego łódzkiego JUGa. Praktycznie każda z omawianych przez Matta technologii, frameworków czy też metodologii była już przedmiotem prezentacji JUG.

Wszystkich zainteresowanym dalszą pracą nad kompetencjami miękkimi, profesjonalnym podejście do programowania oraz zrozumieniem czym jest pętla nawyku oraz w jaki sposób możemy nabyte nawyki zmienić polecam książkę „Siła nawyku” Charlesa Duhigga. Z pewnością nie jest to książka dedykowana wyłącznie dla programistów, lecz pozwala zrozumieć czym jest nawyk oraz to jak możemy istniejące w nas nawyki „przeprogramować” tak by stały się podstawą dla ważnych zmian w naszym życiu, często nie tylko zawodowym. Inną propozycją, związaną z tematyką prezentacji, jest
książka Roberta C. Martina „Mistrz Czystego Kodu”. Polecam ją w szczególności tym
osobom, które przeczytały wcześniej „Clean Code” .

Z ważnych linków, które zapisałem podczas prezentacji mogę polecić :
http://www.mattagile.com/ - strona prelegenta

Ankieta

Na dzień 18.01.2014 wygląda to następująco, są to osobiste opinie osób, które wypełniły ankietę a nie JUGa
Poziom merytoryczny - oceny dobre

Matt ma skilla prezentacyjnego

No cóż większość osób i tak nie czyta opisów, ale tutaj się wszystko zgadzało.

Co było fajne? - wybrane opinie

  • Ogólnie poziom prezentacji nie odstawał od płatnych konferencji - zdecydowany highlight łódzkiego JUGa, będę znajomym polecał i zachęcał do przychodzenia.
  • Forma prezentacji, umiejętności prowadzącego, anegdoty, dobrze sobie przypomnieć podstawy
  • Dobry kontakt z słuchaczami

Co wymaga poprawy? - wybrane opinie



  • W przyszłości chciałbym posłuchać conieco na temat wspominanych narzędzi do prowadzenia projektów
  • Zabrakło konkretów. 
  • Idąc na prezentację, miałem nadzieję, że dowiem się jakich technik mogę używać, by np. motywować się do pisania kodu lepszej jakości.
  • Dużo z powiedzianych rzeczy było już wiele razy przerabianych

Wideo ze spotkania

Friday, January 9, 2015

2015-01-08 Git Ready

Pierwszy JUG w roku 2015 oraz pierwszy JUG w moim życiu. Oczywiście jest to moja pierwsza prelekcja na której byłem w życiu wiec spokojnie patriotycznie mogę się wypowiedzieć bo się nie znam. A tak na prawdę w moim krótkim życiu byłem na kilku konferencjach oraz kilku szkoleniach i prelekcjach mogę spokojnie ocenić prezentacje Macieja Jesionowsk­iego.
Maciek pracuje w firmie Mobica i jest programistą dla różnych platform mobilnych. Jego prelekcja przyciągnęła około 60 osób. I myślę, że nikt nie wyszedł z niej zawiedziony.
Dobra frekwencja widać duże zainteresowanie gitem

Czym jest Git?

Co od różnia Gita od innych VCS? Otóż jest to system na którym można pracować lokalnie bez zewnętrznego repozytorium dzięki czemu można go wykorzystywać zarówno do malutkich projektów jak prace domowe czy jakieś małe demka lub do rozbudowanych projektów dzięki mechanizmom dostępnym w innych systemach kontroli wersji.

Git Ready

Prelekcja Git Ready niestety miała wady. po pierwsze powinna być podzielona na dwie częsci dla początkujących którzy nie mieli do czynienia z gitem oraz użytkowników którzy już mieli do czynienia ale maja problemy z korzystaniem z niego i tak naprawdę potrzebowali by ktoś rozwiał lub rozwiązał problemy które napotykają na swej drodze.

Kolejna z wad to duża abstrakcja w prezentowanych przykładach, sześciany cylindry zamiast plików po prostu do mnie nie przemawiają lecz nie miał bym lepszego pomysłu by je za prezentował. Ostatnią wadą jaką miała prezentacja to niestety za mała ilość czasu i dodatkowo problemy techniczne co nie było oczywiście winą Maćka , a miał on jeszcze wiele do przekazania wszystkim uczestnikom.

Co do Zalet to prelekcja była rewelacyjnie przygotowana i widać było, że Maciek naprawdę dobrze zna sie na temacie. Slajdy które były prezentowane oddawały wszystko co chciał przekazać prelegent. Jako że ja już miałem do czynienia z gitem to dzięki  temu spotkaniu rozjaśniło mi się kilka mechanizmów. moja subiektywna ocena to 9/10 i jeśli Maciek będzie przygotowywał kolejne prelekcje to na pewno się na nich pokażę.

Prezentacja


 

Wideo

 

 

 Ankieta

Opinie innych uczestników o prezentacje były bardzo dobre. Jeśli chcesz jeszcze oddać głos to ankieta cały czas jest czynna.

Wysoki poziom merytoryczny

Prelegent dobrze oceniony

Zgodność opisu - moim zdaniem bardzo dobra. Było wyraźnie napisane że to podstawy!

Losowanie

Na koniec prezentacji wylosowano dwie licencje firmy JetBrains. Wygrali Damian K. i Michał K. oraz wejściówkę na konferencję TDD Geecon, którą wygrał Jarosław K czyli ja.
TDD Geecon odbędzie się 30 stycznia w Poznaniu i będzie w calości poświęcony Test Driven Development. Do 21 stycznia można kupić tańsze bilety.

Sunday, January 4, 2015

2014-12-04 Mikroserwisy

Koniec roku obfitował w prelekcje na bardzo wysokim poziomie. Na końcu zapowiedzi kolejnych - nie może was zabraknać!
W czwartek 4 grudnia 2014 odwiedził nas Marcin Grzejszczak, pochodzący z Łodzi, obecnie mieszkający w Warszawie współzałożyciel Warszawskiej Grupy Użytkowników Grooviego (WGUG). Marcin pracuje obecnie w 4Finance, gdzie z kolegami rozwijają bibliotekę Micro-Infra-Spring wspierającą architekturę mikroserwisów. Temat mikroserwisów ciągle jest bardzo popularny, czego dowodem może być frekwencja na prelekcji - ok. 80 osób to blisko rekordu spotkań łódzkiego JUGa. Cała prelekcja dostępna jest na naszym YouTube. Zachęcam do obejrzenia, a poniżej krótkie podsumowanie wydarzenia. Po prelekcji udaliśmy się do pubu Cotton, gdzie przy piwie i pizzy sponsorowanymi przez 4Finance mogliśmy w luźnej atmosferze wypytać Marcina o co nam tylko przyszło do głowy.

Widły, Łódź widły...

Marcin zaczął od krótkiej prezentacji 4Finance, gdzie wspomniał również o warunkach finansowych. Myślę, że ujawnianie warunków finansowych, tzw. widełek, to dobry trend i Łódzkie firmy są pod tym względem jeszcze sto lat za murzynami. Ich prezentacja wzbudziła spore zainteresowanie obecnych. Łodzi - może warto zaprzyjaźnić się z widłami?

To proste - robimy mikroserwisy i już

Czy tak? No właśnie, takie jest potoczne postrzeganie tematu - "założymy sobie oddzielne repozytoria z kodem i mamy mikroserwisy". Marcin pokazał, że to nie takie proste, jakie są wyzwania i ile pracy trzeba włożyć w architekturę, żeby nasze mikroserwisy zagrały.

Blisko początku prelegent pokazał problem zawarty w prawie Conwey'a - zależności struktury organizacyjnej i systemu, który organizacja buduje. Z tego względu 4Finance wprowadziło organizację mikro teamów - samoorganizujących się zespołów. To ciekawe spostrzeżenie pokazuje jak aspekty nietechniczne mogą być decydujące w trakcie tworzenia systemów w IT.

Następnie Marcin przeszedł do problemu z jakim mikroserwisy mają się zmierzyć, tzw. spaghetti code, który powstaje m.in. kiedy struktura kodu odwzorowuje techniczne aspekty projektu, a nie biznesowe. Ważne jest tutaj podejście DDD, które pozwala na odcinanie silnie oddzielonych kontekstów biznesowych (bounded context).

W prezentacji zawarte były również zalety podejścia:
- możliwość wykorzystywania najnowszych technologii, różnych dla innych serwisów,
- autonomiczność serwisów pozwala na wdrożenie/aktualizację małych klocków.

Marcin analizuje również tematy i narzędzia skupione wokół mikroserwisów:
- automatyzacja administracji systemami - tzw. provisioning (Ansible),
- deployment (Jenkins, Go),
- job scheduling (Roundeck),
- fail fast (Hystrix, Netflix Chaos Monkey),
- mikroserwisy vs ESB,
- mikroserwisy vs SOA,

Prelekcja poruszała również wyzwania związane z architekturą mikroserwisów:
- reużywalność kodu
- robustness principle
- zbyt wiele technologii
- zarządzanie zależnościami
- zmiany globalne.

W drugiej części prelekcji Marcin pokazywał jak można wykorzystać bibliotekę Micro-Infra-Spring, żeby znacznie uprościć cały proces. 

Wyniki ankiety

Linki

- Wpis Marcina na blogu po spotkaniu: http://toomuchcoding.blogspot.com/2014/12/doing-microservices-with-micro-infra.html#more

- Sporo komentarzy Marcina po spotkaniu na evencie meetupowym: http://www.meetup.com/Java-User-Group-Lodz/events/218109972/

- Cała prelekcja: https://www.youtube.com/watch?v=D6V49K_Yb8g

Uwaga!

To nie koniec dobrych prelekcji:

Git ready - 8 stycznia w czwartek o 18 widzimy się na DMCsie, zapowiedź spotkania na Meetupie. Prelegent: Maciej Jesionowsk­i.

Always Be Responsible for Any Code You Write, Even for Fun. NoException() - 15 stycznia w czwartek o 18 DMC, zapowiedź spotkania. Prelegent: Matt Harasymczu­k.

Narzędzia do automatyzacji tworzenia aplikacji webowych - 15 stycznia w czwartek o 18 na DMCsie, meetup. Prelegent: Jarosław Jaryszew.



2014-11-06 - Clean Coders Episode 15 - Solid Components

Po dłuższej przerwie wróciliśmy do spotkań z Wujkiem Bobem. Robert Martin rozpoczął nowy 4 odcinkowy cykl dotyczący komponentów. Dzięki firmie Accenture mogliśmy wyświetlić jego projekcję dla grupy max 50 użytkowników.

Ponieważ takie jest obostrzenie licencyjnie na meetupie tworzymy spotkania z limitowaną ilością wejść. Zazwyczaj Wujek Bob przyciąga około 30 osób więc limity nie są nawet dotykane.

Tym razem mieliśmy inną sytuację na waitliście było już dużo osób a limit miejsc wyczerpany był kilka dni wcześniej (3go listopada). Niestety jak zwykle okazało się, że ludzie nie przychodzą mimo że są zapisani.

Część z tych osób przynajmniej zupdatowała RSVP na no - szkoda tylko że w dniu spotkania. Słyszałem o osobach, które nie zapisały się i nie przyszły ponieważ uznały że nia ma już miejsc.

Na spotkanie z Accenture przyszło około 30 osób co jak na Wujka Boba jest wynikiem przyzwoitym, ale 30 osób jeśli zapisanych było ponad 50 to niestety wynik zły.
Na początku wyglądało na mało osób
Przed slotem dla sponsora zaprezentował się Mateusz ze start-upu matmatura.net (docelowo kujoni.pl) - poszukiwał ludzi zaintresowanych pracą w tym start-upie. Co prawda na początku skreślił Javę i wspominał że serwisyw webowe lepiej wykonać w pythonie lub rub-ym. Mateusz oferuje oprócz wynagrodzenia za pracę udziały w matmatura. Bycie zakręconym na edukację mile widziane.

Accenture zaprezentowali programiści z łódzkiego działu. Opowiadali o projektach w jakich pracują.
Dowiedzieliśmy się że dział retail ma najbardziej interesujące projekty oraz, że w Accenture często zmienia się technologię w której się pracuję - tak więc nie ma nudy.
Jacek Pintera z kolegą zachęcali do pracy w Accenture
Z sali padło kilka pytań m.in. na jakim systemie operacyjnym pracują programiści. W Accenture rządzi system Windows a Linux tylko na serwerach.
Na liście było ok 30 osób


Friday, December 5, 2014

2014-11-25 - Testowanie mutacyjne, czyli jak dobre w rzeczywistosci sa Twoje testy


 Sprawdzanie standardowego pokrycia kodu przez testy daje nam informacje, czy przez linie lub rozgalęzienie przeszedl jakiś test. Testowanie mutacyjne idzie o krok dalej I weryfikuje poprzez zmianę (modyfikację lub usunięcie danej lini), czy kod w niej zawarty był w rzeczywistości istotny dla którego kolwiek testu.
Metoda ta jest znana od ponad 30 lat w kręgach naukowych, a ostatnio odkryta na nowo dla rozwiązań komercyjnych. Pozwala dowiedzieć się jak dobre w rzecywistości są nasze testy oraz które fragmenty kodu tak naprawdę wydają się być testowane, co bardzo przydaje się szczególnie w rozwiązaniach dla których poprawność działania aplikacji jest kluczowym wymaganiem.

Na czym wogole polega testowanie mutacyjne?

 

Narzedzie do testowania mutacyjnego na poziomie byte code modyfikuje line kodu produkcyjnego, np.: usuwa linie, modyfikuje wyrażenia warunkowe zamienia > z < lub == z !=, modyfikuje wyrażenia reguralne, zamienia inkrementacje z dekrementacją i++ z i--, zwraca null objects, ustawia warunki brzegowe itd. Nastepnie wykonuje testy na zmodyfikowanym kodzie I generuje raport z rezultatami

Jednym z narzedzi, ktory testuje mutacyjnie jest PIT – projekt opensource, ktorego commiterem jest rownież Marcin. Projekt ten, można znależć na GIT_HUB.

Zalety:

  • rozwiniety ecosystem
    Pit jest wspierany oraz wykorzystuje najbardziej popularne narzedzia. 

    Bild systemy:

    • ant
    • mvn
    • gradle

       IDE:

    • intelij
    • eclipse

       Biblioteki do testowania:

    • jUnit
    • TestNG
    • spock

       Pokrycie kodu:

    • sonar
    • sbt
  • szybki
    • wykorzystuje historie mutacji - PIT nie testuje ponownie mutacji ktore zakonczyly sie sukcesem, uruchamia tylko te zakonczone blede
    • zatrzymuje nieskocznone petle
      PIT moze wykonac zamiane incrementacji w dekrementacje lub odwrotnie. Zmiana taka, moze zapetlic kod produkcyjny. PIT podczas podczas pierwszego uruchomienia, sprawdza czasy wykonania testow, nastepnie dokonuje mutacji. Jezeli podczas nastepnej iteracji test trwa dluzej niż w orginale PIT zakoncza wykonanie takiego testu.
  • Konfigurowalny
    Możliwa jest konfiguracja pakietow, które przeznaczone sa do mutacji
    PIT nie mutuje loggerow
  • rozwijany
    Dzieki szerokiemu community PIT jest zywym frameworkiem

Wady:

  • wymaga testow
  • glownie do testow unitowych
    Pit wykonuje kilka iteracji, dlatego tez wykonanie mutowania dlugich testow integracyjnych moze zabrac duzo czasu.

Podsumowanie

 

Prezentacje poprowadzil Marcin Zajaczkowski, ktory przy okazji prowadzenia szkolenia w Transition Technology zaproponowal wystapienie dla lodzkiego JUG.

Wykonujac demo Marcin promowal skróty klawiszowe Intelij, zachecal do korzystania ze Spock, TDD.

Spotkanie odbylo sie w 6 dzielnicy, dzieki temu uczestnicy mogli skorzystac z baru, usiasc w wygodnych fotelach i posluchac w luzniejszej atmosferze o testach mutacyjnych.

Podczas spotkania zostala wylosowana licencja za zakup ksiazki z Manning.

Wednesday, December 3, 2014

2014-11-15 - Global Day of Code Retreat

Global Day of Code Retreat to wyjątkowa inicjatywa, która raz do roku angażuje świat programistyczny na całym świecie. Idea, która powstała w 2009 w umyśle czterech programistów już w 2010 roku stała się globalna. Jeśli ktoś jest zainteresowany historią zapraszam tutaj.

Jug Łódź od 2010 roku jest jej częścią. Można nawet powiedzieć że ważną częścią ponieważ Code Retreat w 2011 roku było jednym z pięciu największych na świecie! Dodatkowo z naszej inicjatywy sponsorem w 2011r zostało Headway Software.

Historia GDCR w JUG Łódź wygląda następująco. 

Pierwszy Code Retreat odbył się w Mobice, przyszło około 12-15 osób. Najważniejszą rolę  -facilitatora czyli osoby wymyślającej podjął Piotr Przybylak (wtedy) z Pragmatists.
Rok później miał miejsce fantastyczny Code Retreat, o którym już wpomiałem na wstępie. Do Rule Financial przybyło 60 osób! Faciltatorami byli Paweł Włodarski, Michał Ostruszka i Marek Strejczek.
Można rzec, że Paweł wtedy rozpoczął swoją karierę etatowego facilatotora (czy jest na to jakieś polskie słowo?). 
W kolejnym roku do Pawła dołączyli Grzesiek Borkowski i Rafał Wokacz a wydarzenie zorganizowaliśmy przy udziale łódzkiego oddziału Cybercom Group.
W Cybercom oczekiwaliśmy 30 osób, niestety padliśmy ofiarą stałej Saramaka* i pojawiło się tylko 15 osób.
W tym roku też planowaliśmy 30 osób lecz kolejny raz z zapisanych 30 osób pojawiło się tylko 18 osób.

Jako JUG Łódź staramy się żeby nie kojarzono nas z jedną firmą dlatego też za każdym razem staramy się wybrać innego partnera do Global Code Retreat. W tym roku gospodarzem została firma Symphony Teleca.
Gospodarzem spotkania była Symphony Teleca
Zwyczajowo jest przygotowane śniadanie dla uczestników Code Retreat, którzy w sobotę rano . Kanapki były bardzo smaczne i było ich bardzo dużo (pewnie dlatego że spodziewaliśmy się 30 osób). 

Mnóstwo jedzenia!
Sala konferencyjna była super przygotowana przez sponsora. Była szatnia, aneks kuchenny oraz dużo miejsca.

Po krótkim wprowadzeniu do idei i ćwiczeń Code Retreat, które przeprowadzili Paweł Włodarski, Rafał Leanarczyk i Marek Defeciński, swój slot otrzymał gospodarz/sponsor spotkania czyli firma Symphony Teleca - zainteresowanych zawartością odsyłam do prezentacji.

Kolejnym świetnym zwyczajem Code Retreat jest rozmowa z innymi uczestnikami Code Retreat na świecie. Jest to super sprawa pozwalająca poczuć się częśćią Globalnej społeczności. W tym roku zaplanowane mieliśmy poranną sesję z Bangalore (u nich lunch), z Pragą (na lunch) i Austin na popołudnie (u nich na dzień dobry). Niestety żadna z tych sesji w tym roku się nie udała. Powodem było najprawdopodobniej to że sesje załatwialiśmy na ostatnią chwilę ani nie było wcześniejszej próby połączenia. Z doświadczenia organizacyjnego wiem, że zawsze czas wymyka się z kontroli a organizatorzy mają bardzo dużo na głowie oprócz tych rozmów tak więc ciężko jest doprowadzić do sukcesu tych połączeń.

Paweł Włodarski (JUG Łódź/TomTom) wraz z Jackiem Rondio (Symphony Teleca) pełnili w tym roku rolę facilitatorów. Oto sesje które przygotowali dla uczestników.
  • Sesja wstępna-dowolna
  • TDD i tylko jeden poziom zagłębienia kodu w metodach
  • Jeden poziom zagłębienia, metody maksymalnie 5 linii długości i brak else
  • Sesja "cicha" oraz do wyboru albo object-calisthenics lub not only OOP - wszyscy wybrali to pierwsze ;)
  • Zostawiamy kod z poprzedniej sesji i mamy dodatkowe wymagania
Formuła Code Retreat przewiduje 6 sesji jednak na naszych Code Retreat bardzo rzadko udaje się dopowadzić 6tą sesję do skutku (ludzie wychodzą, czas się kończy) dlatego w tym roku rozmyślnie planowaliśmy tych sesji tylko 5.

Moim zdaniem Code Retreat to wydarzenie, które największe wrażenie robi na uczestniczącym w nim po raz pierwszy. W tym roku z 18 uczestników tylko Sylwia była na Code Retrat po raz kolejny. Opinie jakie zebraliśmy po Code Retreat były na pewno budujące. Ankietę wypełniło 11 osób.

Wszyscy ankietowani odpowiedzieli, że było zdecydowanie warto przyjść

 Mimo kilku niedociągnięć organizacyjnych organizacja była oceniona dobrze.
Organizacja została dobrze oceniona!
Paweł Włodarski jest weteranem Code Retreat's nic dziwnego że zebrał świetne recenzje.
Paweł i Jacek świetnie ocenieni.
Zadaliśmy też inne pytania. Pod spodem najciekawsze odpowiedzi
  • Czego nauczyłeś się w sobotę?
    • Warto słuchac tego co mają inni do powiedzenia
    • ...ping pongiem angażowały się dzięki temu obie osoby
    • TDD też może być fajne
    • tworzenia unit testów
    • zdobyłem podstawową wiedzę na temat pisania testów jednostkowych
    • Nauczyłem się bardziej zwracać uwagę na czystość kodu oraz kilku trików, które tą czystość poprawiają
  • Co Cię najbardziej zaskoczyło?
    • Ze tylu ludziom chciało się wstać w sobotę przed 8 
    • Że było tak fajnie - wcześniej trochę się obawiałem, że będzie za trudno i sobie nie poradzę
    • metoda ping-pong jest bardzo owocna
    • że potrafię pracować w parze
    • organizatorzy z chęcią pomagali i nikt się nie wywyższał
    • największą radość sprawił mi pair programming
    • wyrzucanie kodu może pomagać w uczeniu się.
  • Co będziesz od tej pory robił inaczej w swojej pracy dzięki Code Retreat?
    • lepiej programował
    • zwracał większą uwagę na czystość kodu
    • Propagował TDD ping-pong
    • Test first przede wszystkim
    • przekonać chłopaków w firmie do pair programming
  • Co było fajne i co należy kontynuować?
    • luźna atmosfera bez naciskania na nikogo
    • idea spotkań
    • wspólne omawianie pracy
    • grupka ludzi, która chciała nauczyć się czegoś nowego
    • cenne uwagi
    • nowe podejścia do programowania
    • Retrospektywy
    • Sponsor postawil sie - bylo duzo i smacznie.
  • Co było słabe i co musimy poprawić?
    • żeby osoby bardziej zaawansowane nie poświęcały całej uwagi na pomaganie początkującym
    • timing! * zaczęlismy 9.30, zapowiadane 8.30
    • Ponownie 30% osób nie przyszlo a byli zapisani
    • 45 min to trochę za mało na napisanie znaczącej ilości kodu
    • następnym razem tak bardziej na 9:00.
Podsumowując wydaje mi się że był to znakomity Code Retreat. Wielkie podziękowania dla Pawła Włodarskiego, który był jak zwykle perfekcyjnie przygotowany. Podziękowania dla Rafała Lenarczyka, który prowadził event oraz dla Sponsora firmy Symphomy Teleca za naprawdę gościnne przyjęcie.

Code Retreat doczekał się nawet relacji prasowej w Gazecie Wyborczej pod tytułem Tak się bawią programiści oraz relacji na blogu Pawła Włodarskiego - Ludzka twarz IT.