blog.testowka.pl

książki

Czemu ludzie nie czytają?

opublikowany przez 09, Lip, 2013, w kategoriach Agile, książki, Programowanie, Zarządzanie

Przez ostatnich kilka lat miałem do czynienia z wieloma zespołami developerskimi. Niektóre z nich radziły sobie z często nieprzychylną rzeczywistością pracy w IT lepiej niż inne.

Gdy pracuję z zespołami, czy to w formie coachingu i mentoringu organizacyjnego  czy szkoleń to oprócz codziennej pracy, ćwiczeń i warsztatów zasilam ich zawsze pokaźną wiedzą linków do artykułów i nagrań które wiem, że mogą być pomocne w ich pracy. Często czas, który mogę poświęcić zespołom jest zbyt krótki, bym sam przekazywał im wszystko to co w tych artykułach i nagraniach jest zaprezentowane. Poza tym nawet jeśli ten czas już mamy to szkoda go marnować na rzeczy, które można z łatwością samemu przeczytać i zrozumieć – warto skupić się na tym co faktycznie jest problematyczne i jednocześnie charakterystyczne dla danego zespołu, na tym do czego rozwiązań nie znajdzie się w standardowych książkach i na blogach. Oprócz artykułów przesyłam też często fragmenty książek (tylko odrobinę spiracone)…

Od jakiegoś czasu wszyscy uczestnicy moich szkoleń dostają też darmowy dostęp do mojej książki (dzięki temu nie muszę już wielu tematów omawiać – wystarczy, że powiem, że tam to jest).

Przez ostatnich kilka miesięcy zdarzyło mi się przeprowadzić w sumie około dziesięciu warsztatów z Legacy Code Retreat z różnymi zespołami. Potrzeba takich warsztatów wynikała głównie z tego, że uczestnicy na co dzień pracowali właśnie z Legacy Code.

Praktycznie za każdym razem zadawałem pytanie, o to skąd uczestnicy czerpią wiedzę na temat tego jak pracować z takim kodem i jak go poprawiać. Odpowiedzi były co najmniej niepokojące – przeważnie było to „znikąd”.  Około 100 developerów (czyli większość pytanych) z kilku firm  walczy od kilku lat z kupą badziewnego kodu ,ale nie robi nic lub prawie nic by rozwijać się w kierunku tego jak sobie z takim problemem poradzić. Zapytałem czy czytali jakieś książki na ten temat – tylko kilka osób na sto czytało na przykład „Working Effectively with Legacy Code” (Michael Feathers). Kilka innych osób również słyszało, że książki takie jak wspomniana istnieją ale… nie mieli czasu by je przeczytać – nie mieli czasu bo ciągle muszą walczyć z gaszeniem pożarów i pracą z badziewnym kodem.

Przeczytanie wspomnianej książki i sumienne przerobienie na prawdziwym kodzie (swoim własnym najlepiej) zalecanych tam sposobów pracy z Legacy Code pozwoliłoby z pewnością na wyjście ze stanu ciągłego gaszenia pożarów i biegania z pustymi taczkami. Oczywiście potrzeba by było czasu aby to osiągnąć, ale metody wspomniane przez Michaela są wręcz skierowane do tych, którzy nie mogą sobie pozwolić na zatrzymanie rozwoju produktu po to by poprawiać jego jakość.

Jurgen Appelo od dłuższego już czasu na swoim blogu pomiędzy merytorycznymi wpisami publikuje listy subiektywnie najlepszych książek w różnych kategoriach. Listy powstały między innymi na bazie tego co Jurgen przeczytał. Jego książka „Management 3.0” jest niczym innym jak zbiorem najbardziej trafnych i praktycznych teorii zawartych w setkach innych książek. Jurgen te książki przeczytał, następnie sprawdził najbardziej obiecujące teorie w praktyce po czy stworzył, a w zasadzie zebrał zbiór praktyk nazywanych obecnie jako Management 3.0.

Internet jest praktycznie nieograniczonym źródłem wiedzy na prawie wszystkie tematy. Wystarczy tylko po tą wiedzę sięgnąć. Nie potrzeba żadnych szkoleń i warsztatów.

Przyznam się szczerze, że od kilku lat prowadzę szkolenia ale sam nie byłem na żadnym szkoleniu nigdy. Tzn. nie po to by się na nim czegoś specjalnego dowiedzieć czy nauczyć – czasem zdarzało mi się uczestniczyć w szkoleniach moich znajomych trenerów by podejrzeć jak oni to robią i dać im jakiś feedback. Może czasem przy okazji udało mi się podchwycić jakieś ciekawe tricki szkoleniowe. Ale wiedzę merytoryczną zdobywałem głównie z książek, artykułów, konferencji i nagrań. Oczywiście ta wiedza to za mało by uczyć innych – potrzeba było jeszcze wielu tysięcy godzin praktyki i prób (często nieudanych) stosowania zdobytej wiedzy w realnym świecie i prawdziwej pracy.

To nie jest tak, że szkolenia nie są potrzebne w ogóle. Ja zawsze staram się, by moje szkolenia pomogły uczestnikom rozpocząć samorozwój. Tak na przykład przygotowując warsztaty z automatyzacji testów zdaliśmy sobie sprawę, że największym problemem, gdy sami się tego uczyliśmy kilka lat wcześniej było przekroczenie pewnej wysokiej bariery wejścia jaką było na przykład postawienie działającego środowiska do testów, czy też opanowanie podstaw programowania obiektowego.

Jeśli ktoś to dobrze wytłumaczy i przerobi się kilka przykładów to staje się to banalne, a dalsza nauka jest już przyjemnością i wynika głównie z praktyki bo powyższe podstawy wystarczają by zacząć praktycznie pisać testy automatyczne. Tak oto stworzyliśmy trzydniowe warsztaty podczas których stosujemy metody przyspieszonego uczenia i stawiamy duży nacisk na praktykę. Oferujemy też drugi stopień warsztatów dla tych, którzy potrzebują przeskoczyć kolejne poprzeczki.

Waszą Drodzy Czytelnicy niewątpliwą i godną podziwu zaletą jest to, że w ogóle czytacie cokolwiek – bo przecież czytacie chociażby tego bloga. Pytanie czy Wasi koledzy i koleżanki z pracy również to (albo cokolwiek innego w tej tematyce) czytają. Proponuje byście ich zapytali czy czytają, co czytają i dlaczego nie czytają?

Być może czytacie bo w waszym środowisku się po prostu czyta – tzn wszyscy wokół Was czytają i dlatego czytacie. Być może w powietrzu wokół Was da się wyczuć zapach ciągłej potrzeby rozwoju i nauki.

A może jesteście jedynie odosobnionymi, czytającymi  i pragnącymi rozwoju jednostkami w tłumie ludzi, którzy po prostu przychodzą na 8 godzin do pracy by odsiedzieć swoje i zarobić na chleb.

Jeśli należycie do tej drugiej grupy, to proponuje byście spróbowali zachęcić, czy też zarazić innych wokół was wirusem powodującym głód wiedzy i ciągłego rozwoju. Jeśli się to Wam nie uda to… dla własnego dobra lepiej zmieńcie pracę…

Z moich obserwacji wynika, że jednym z głównych problemów organizacji IT w obecnym świecie są ludzie, którzy z różnych powodów zaprzestali się rozwijać. Podzielił bym ich na dwie grupy: pierwsza to Ci, którzy w ogóle nie wiedzą, że jakikolwiek rozwój jest możliwy i potrzebny, a druga to tacy, którzy zrobili już (za)szybką karierę i wydaje im się, że wiedza, którą posiadają jest już wystarczająca i nie więcej nie potrzebują.

Mi osobiście wydaje się, że rozwijać się trzeba zawsze – jeśli przestajemy się rozwijać to nasze życie przestaje mieć sens. A jak jest z Wami?

5 komentarzy więcej...

Shu-Ha-Ri

opublikowany przez 07, Lut, 2011, w kategoriach Agile, Kanban, książki, Praca, Scrum, Zarządzanie

Tajemniczy tytuł Shu-Ha-Ri to zaczerpnięte z kultury japońskiej trzy poziomy doświadczenia, często używane w kontekście sztuk walki takich jak aikido. Piszę o tym, gdyż nauka sztuk walki ma zaskakująco wiele wspólnego z wdrażaniem metodologi w organizacji. Trzy poziomy doświadczenia, trzy poziomy wtajemniczenia wymuszają na uczniu stopniową, systematyczną naukę dzięki czemu eliminuje się większość błędów.

Shu – przyswojenie, zachowanie, pielęgnacja
Jest to pierwszy etap nauki, w której uczeń skupia się na opanowaniu podstawowych technik i zachowań. Termin ten oznacza także lojalność wobec jednego nauczyciela. Podczas tego etapu najważniejsze jest przyswajanie wszystkiego z największa dokładnością bez możliwości wprowadzania jakichkolwiek zmian. W tej fazie nieistotne są powody stosowania technik, najważniejsze jest opanowanie do perfekcji podstaw. (Przypomina mi się scena z „Karate Kid” w której dzieciak uczy się podstawowych ruchów myjąc samochody 😛 ). Nie wszyscy zdają sobie sprawę z tego jak ważne jest zbudowanie podstaw, by móc z powodzeniem dalej rozwijać swoje umiejętności. Na poziomie Shu okazuje się, że do osiągnięcia celu jakim jest efektywne wykorzystanie umiejętności wystarczająca jest jedna droga, stąd też wymóg lojalności do nauczyciela i posłuszeństwo. Ta stara zasada jasno pokazuje, że mieszanie różnych technik a w naszym przypadku metodologi wprowadza chaos i doprowadza do sytuacji, w której mamy dużo różnych umiejętności ale nie reprezentują one żadnej wartości praktycznej ani technicznej jako całość. Według tradycji to nauczyciel decyduje o tym kiedy uczeń może zakończyć ten etap i przejść na poziom Ha.

Ha – odłączenie, zerwanie z tradycją
Drugi etap nauki polega na uwolnieniu się do pewnego stopnia od klasycznych metod. W tej fazie ważne jest by odnaleźć i zrozumieć powody technik nauczonych na poprzednim etapie. Tutaj zaczyna się sztuka, odłączenie od codziennie powtarzanych czynności i stopniowe rozwijanie technik. Na tym etapie uczeń rozpoczyna własne eksperymenty, powinien być gotowy na to by samodzielnie analizować i myśleć nad powodami wykorzystywania niektórych technik po to by w przyszłości samodzielnie je rozwijać i dołączać nowe. Cała dostępna wiedza została zdobyta, teraz uczeń musi nabyć doświadczenia.

Ri – uwolnienie
Ostatni etap, w którym uczeń staje się mistrzem, uwalnia się od tradycji, przechodzi poza granice. Uczeń posiadający duże doświadczenie i wiedzę może je wykorzystywać w życiu codziennym. Na tym etapie uczeń już nie uczy się sztuki walki od innych tylko tworzy swój własny niepowtarzalny styl. Dopiero tutaj możliwe jest całkowite uwolnienie od standardów i podstaw. Tutaj uczeń/mistrz może pozwolić sobie na niekonwencjonalność, która dzięki zdobytej wcześniej wiedzy i doświadczeniu ma bardzo duże szanse na sukces.

Jak to wszystko ma się do wdrażania metodologii? Miałem nie do końca przyjemną okazję kilkukrotnego obserwowania prób wdrożenia metodologi/narzędzi (Scrum, Kanban) w różnych organizacjach, które zakończyło się porażką. Porażka ta według moich obserwacji wynikała między innymi z tego, że wdrażający zakładali, iż członkowie zespołu i oni sami są co najmniej na poziomie Ha, z tym że wielokrotnie brakowało im wiele do osiągnięcia Shu – nie znali, bądź nie potrafili stosować podstaw. Ponadto wdrożenia typu „weźmy planowanie ze Scrum, tablicę z Kanban ale nie stosujmy na niej limitów, do tego eliminujmy waste za pomocą narzędzi Lean i nazwijmy to wszystko Agile to może nam coś tego wyjdzie” ciężko jest nazwać wdrożeniem. Jak już pisałem w notce o automatycznym chaosie jeśli wdrażamy coś w organizacji to przede wszystkim musimy wiedzieć co wdrażamy i mieć jakiś, co najmniej ogólny plan wdrożenia. Pisałem też już kiedyś o teorii i jej zestawieniu z praktyką, moje doświadczenia jasno pokazują, że teorie sprawdzają się w przygniatającej większości przypadków jeśli tylko spełni się jeden zasadniczy warunek – postępuje się według jednej teorii od początku do końca.
Miałem okazję jakiś czas temu wspierać jeden mały zespół podczas wdrażania Scrum, postanowiłem zastosować zasadę Shu-Ha-Ri. Na początku pokazałem im wszystkie artefakty, pokazałem jak powinno wyglądać planowanie, jak rozbijać zadania, jak rozmawiać podczas spotkań typu stand-up oraz wyjaśniłem klientowi w jaki sposób opisywać wymagania. Po dwóch sprintach, podczas których na prawdę sumiennie starali się przestrzegać wszystkich zasad, praktycznie nie musiałem już tłumaczyć po co to wszystko było – sami dobrze wiedzieli co zyskali porównując sytuację obecną z poprzednimi projektami i z łatwością potrafili wskazać przyczyny stosowania takich a nie innych technik. Obecnie po trzech miesiącach zespół skutecznie wprowadza własne usprawnienia do stosowanej metodologi – starają się używać TDD, programują w parach, robią regularne przeglądy kodu. Wielce pomocne okazały się retrospekcje, które dosyć szybko definiowały problemy, a metoda systematycznego wprowadzania poprawek do procesu owocuje polepszeniem jakości pracy a także lepszą atmosferą i motywacją wynikającą każdorazowo z sukcesu jakim jest eliminacja błędów z procesu.

Po raz pierwszy o Shu-Ha-Ri przeczytałem w książce Alistera Cockburn’a „Agile Software Development – Gra Zespołowa”, którą polecam. Lektura zachęciła mnie do dalszego drążenia tematu, którego efektem jest ta notka

1 komentarz więcej...

„Dane testowe – teoria i praktyka” – Recenzja książki

opublikowany przez 02, Lut, 2011, w kategoriach książki, Testowanie

Ostatnio wpadła w moje ręce książka autorstwa Radka Smilgina i Anny Piaskowy „Dane testowe – teoria i praktyka”. W zasadzie to dostałem ją od Radka w prezencie :), także po to by napisać kilka słów o tym co myślę na jej temat.
Z tego co wiem jest to pierwsza publikacja na temat danych testowych na polskim rynku i to już samo w sobie daje jej dużego plusa. Moje pierwsze odczucia po przeczytaniu książki były raczej mieszane. Po pierwsze jest dosyć cienka – przeczytałem ją w jeden wieczór. Całość składa się z dwóch części – pierwsza to ogólna teoria na temat danych testowych i ich wykorzystania oraz przykłady typowych danych testowych wraz z normami prawnymi i obowiązującymi standardami, druga część to w zasadzie instrukcja obsługi generatora danych testowych – bardzo praktyczna aplikacja, ale o tym może innym razem.
Po przeczytaniu wszystkiego pozostał pewien niedosyt – czegoś mi tutaj brakowało, ale może takie właśnie było założenie autora – żeby nie lać wody a skupić się na suchej analizie, która sama w sobie jest dosyć treściwa, (a w wykonaniu Radka na bardzo wysokim poziomie), książka na pewno zachęca do samodzielnego poszukiwania dalszych informacji. Czytając zastanawiałem się komu sam bym polecił przeczytanie tej pozycji – doszedłem do wniosku, że książka jest skierowana, głównie do osób początkujących w testowaniu czy programowaniu, stanowi także świetne uzupełnienie materiałów uniwersyteckich dla studentów informatyki. Mi osobiście treść książki przypomniała o kilku ważnych aspektach dobierania danych testowych w zależności od rodzajów testów, oraz o zasadach definiowania przypadków testowych. Jeśli mowa o przykładach i teorii zawartych w książce to niestety (albo może właśnie to jest jej największy atut) książka jest mocno zlokalizowana na rynek polski, dane są specyficzne dla naszego kraju. Z drugiej strony czytając przykłady i omówienie zasad tworzenia np. imion w języku polskim znalazłem bardzo wiele interesujących ciekawostek, o których wcześniej nie miałem pojęcia.
Nie będę tutaj streszczał treści, wszystkich zainteresowanych odsyłam do księgarni (książkę wydał Helion, więc można ją nabyć przez internet 😉 ).
Ogólna ocena: „dobry”.
Warto przeczytać chociażby po to by podsumować swoją dotychczasową wiedzę, a początkującym na pewno książka ta pomoże w trafny sposób dobierać dane testowe, oraz poszerzy horyzonty wskazując miejsca skąd można dane do testów uzyskać.
Ponadto jak wspomniałem na początku wielki plus za to, że wreszcie pojawiła się jakaś pozycja tematyczna na naszym krajowym rynku autorstwa naszych rodzimych specjalistów. Mam nadzieję, że to nie koniec twórczości Radka i że jeszcze nie raz będziemy mieli okazję przeczytać wiele interesujących publikacji na temat testowania i nie tylko autorstwa naszych kolegów i koleżanek po fachu.

Dodaj komentarz więcej...