Wednesday, March 27, 2013

Nowy rok, nowy Michał:)

Po głębokich przemyśleniach doszedłem do wniosku, że myśl Hanibala Albo odnajdziemy drogę albą ją zbudujemy, która dotąd była moim mottem i firmowała też poniekąd ten blog, już do mnie nie przemawia:) Teraz zaczynam kolejny etap sponsorowany przez hasło: Bądź obecny, weź to, co jest i rób to, co mówisz

Wednesday, March 20, 2013

Po 33rd Degree '13

Nastrój konferencji był mocno filozoficzny. Niewiele tematów technicznych za to dużo ontologicznych rozważań kim jesteśmy? dokąd zmierzamy? i po co?. Tematy konferencyjne są zazwyczaj odzwierciedleniem nastrojów w branży. Zatem skoro krążą nam po głowach takie pytania, to dobrze że temat został podjęty. Poniżej moje osobiste wrażenia z prelekcji, w których uczestniczyłem.

Decisions Decisions, Dan North

Dla mnie osobiście, to była kwintesencja tej konferencji. Po ponad 10 latach Agile przeszedł z fazy buntu przeciw istniejącemu porządkowi i odrzucania autorytetów w fazę stabilizacji i wydoroślał. Zamiast kategorycznego "nie" przeciw owym "starociom", często mówi się "nie zawsze (...)", "nie, ale (...)", "czasem (...)".

W moim odbiorze ta prelekcja była ostrzeżeniem, abyśmy nie skupiali się fanatycznie na tym czy innym podejściu lecz przede wszystkim na sprawach klientów, które należy rozwiązać. W jednym zdaniu odebrałem to tak: "nie powiem Ci czy masz używać tdd czy nie, czy us czy uc, czy pisać testy czy nie(...) wszystko zależy od tego, co chcesz zrobić, dla kogo i po co".

Busy Developer's Guide to Iconoclasm, Ted Neward

Transformational Leadership nazwany inaczej z elementami retoryki w stylu Anthonego Robbinsa. Miał być wykop na początek i był. Jednak najbardziej zapamiętałem nazwanie jednego z uczestników idiotą. Zgrzytnęło mi w głowie po raz pierwszy.

Leading Technical Change, Nathaniel Schutta

Słowo "technical" jest tu opcjonalne. Jeśli planujesz wprowadzić zmianę w organizacji, to po pierwsze musisz zbudować koalicję rzecz zmiany. Po drugie musisz nieustannie informować ludzi, co robisz, bo inaczej będą wykonywać nerwowe ruchy. Bez umiejętności interpersonalnych i small talks się nie obejdzie. Dobrze by nam zrobiło, gdybyśmy zajrzeli do całych tomów dorobku konsultingu, chociażby tutaj. Naprawdę, te rzeczy już zostały wymyślone i sprawdzone. Nie ma potrzeby wymyślać ich na nowo.

Software quality – you know it when you see it, Erik Dörnenburg

Absolutna rewalacja! Prezentacja referencyjna, sam konkret, przykłady, jasne i klarowne. Sam Erik stwierdził, że żaden z tego "rocket science". Dla mnie był. Do tej pory brakowało mi czegoś co pozwoli rzucić okiem na tony kodu, porównać ze sobą jakość kodu w modułach, projektach między zespołami. Nie żeby dawało od razu odpowiedzi, ale żeby mieć ogólne rozeznanie w jakości kodu i szybko namierzać podejrzane miejsca. Tabelki ze wskaźnikami metryk nie są dla mnie specjalnie czytelne, a przedstawione wizualizacje bardzo. Dzięki!

Pragmatic Architecture, Ted Neward

Przestawienie myśli Scotta Amblera , a przede wszystkim postulatu There is nothing special about architecture. Ciekawa była definicja architektury: architektura to zbiór odpowiedzi, na które musi odpowiedzieć sobie programista, gdy tworzy software.

W trakcie prelekcji skupiałem się przede wszystkim na formie przekazu, którą stosuje Ted, nie na treści prezentacji. Zgrzytnęło mi w głowie po raz drugi. Ted Neward buduje kontakt ze słuchaczami za pomocą metafor, historyjek i żartów opartych przede wszystkim na różnicowaniu nas (IT, programistów) od nich(ludzi biznesu), na podkreślaniu jak bardzo się różnimy od siebie i jakie absurdalne może wydawać się innym to, co robimy ("programowanie to fikcja", "normalni ludzie tak nie robią"). Różnicując się z "nimi", Ted automatycznie buduje poczucie wspólnego "my" z uczestnikami na zasadzie "też jestem taki dziwny jak wy". I to działa, ludzie to kupują i rechotają z jego żartów.

Dlaczego na to zwracam uwagę? Dlatego, że nie w ten sposób ja rozumiem Agile. Różnicowanie się od "nich" i wprowadzanie Linii Maginota "My IT-oni biznes" to nie jest to, o co moim zdaniem w Agile chodzi. To zupełnie, ale to zupełnie odwrotnie. Mamy z biznesem współpracować, wychodzić do niego, a nie się z nim różnicować i podkreślać swoją odrębność. Jeśli Ted robi to celowo, aby mieć drive na widowni, to ok, ale ja tego stylu nie kupuję. Jeśli nie robi tego celowo, to gdzieś tu...no właśnie...zgrzyta.

Managing gang of chaotic software developers is complex, Piotr Burdyło

No, jeśli to rzeczywiście tak działa, jak zostało przedstawione to szacun. Zarządzanie przez wartości, wizję i Autonomy-Mastery-Purpose w całej firmie. Super, że takie rzeczy możliwe są też nad Wisłą. Chętnie usłyszałbym o innych firmach, które tworzą u siebie organizację tego pokroju. Na następnej konferencji chętnie posłucham o problemach podczas wdrażania.

The deconstruction of architecture in times of crisis, Jarosław Pałka

Również rozwinięcie myśli Scotta Amblera wzbogacone o ideę myślenia systemowego. Wbrew deklaracjom Autora, żarty wcale nie były niskiej jakości:) Prezentację można by streścić w słowach pewnego prezesa kierowanych do dyrektorów: "Myśleć, k**a, myśleć!".

Po słowie

Dziękuję tym, którzy podarowali mi godzinę swojego czasu i przyszli na moją prezentację. W przerwie, Piotrek zwrócił mi uwagę, że w przedstawiłem DDD w zbyt wykrzywionym kontekście (dzięki!), a potem powiedział ważną rzecz: musisz dobrze opanować, te wszystkie techniczne sprawy, żeby potem móc je zostawić i pójść dalej.

Przypomniało mi to film Hero i wypowiedź jednego z bohaterów na temat czym jest mistrzostwo miecza?.

Pierwszym celem tego kunsztu jest osiągnięcie jedności człowieka z mieczem.
Gdy zjednoczenie ma miejsce, nawet źdźbło trawy może być śmiertelną bronią.
Drugi etap następuje, gdy miecz jest niesiony w sercu,gdy nie ma go w dłoni.
Wtedy można atakować przeciwnika ze 100 kroków, nawet z gołymi rękoma.
Ostatecznym celem szermierskiej sztuki...jest całkowita nieobecność miecza, zarówno w sercu, jak i w dłoni. Taki szermierz pozostaje w harmonii z resztą świata. On nie chce zabijać. On sprowadza ludziom pokój


To jest właśnie to! Core mojej prezentacji! Jakiś czas temu miałem wystąpienie dla łodzkiej JUG pt. Od kodera przez developera do lidera


Przedstawiałem między innymi nasze perspektywy patrzenia na rozwój programisty, na których opieramy swoje usługi. Między innymi o tym, że na strukturę rozwoju programisty można patrzeć jak na warstwy: technologiczna, inżynieryjna, miękka. Podobnie jak w cytacie z filmu pierwszym krokiem mistrzostwa jest mistrzostwo w języku programowania, bibliotekach, frameowkrach, technologii. Wymiatamy. Lecz jeśli zatrzymamy się na tym etapie, to w pewnym momencie będzie to tylko (jak to zgrabnie pewien prelegent mawia:)) technologiczny...zabawa...

Potem tracimy zainteresowanie gadżetami, skupiamy się na bardziej abstrakcyjnych ideach. Drugim stopniem mistrzostwa jest mistrzostwo we wzorcach, czystym kodzie, omawianych podczas prezentacji frameworkach mentalnych w stylu *-Driven *. To naprawdę fantastyczne narzędzia. Lecz zatrzymanie się na nich prowadzi do uprawiania sztuki dla sztuki.

To jednak nie koniec. W pewnym momencie, opanowawszy te wszystkie rzeczy, możemy się od nich oderwać. Zapakować do zasobnika jako użyteczne narzędzia i pójść w kierunku biznesu i ludzi.

To właśnie z tego powodu napisałem książkę. Książkę o brakującym klocku w TDD, BDD, DDD, itd, o sztuce zadawania pytań. Sądzę, że tylko wychodząc w stronę biznesu i spotykając klientów i użytkowników tam, gdzie oni są, możemy zrobić prawdziwie dobry użytek ze całego nagromadzonego warsztatu. Wtedy przestajemy już programować, a zaczynamy pomagać ludziom. To ogromna różnica!