poniedziałek, 25 października 2010

Warsjawa

W ostatni weekend odbyła się konferencja warsjawa. Poza tym, że sposorując pomogliśmy w tym, by uczestnicy nie głodowali, mieliśmy też swój aktywniejszy udział. W związku z chorobą Sławka Sobótki zabawiłem uczestników rozważaniem nad Software Craftsmanship, jakością, dbaniem o zespoły i projekty. Slajdy z prezentacji dostępne są tu.
Na koniec prezentacji zrobiłem mały konkurs SMSowy w czasie którego można było wygrać wejściówkę na organizowane przez nas kolejne otwarte szkolenie z TDD. Pytanie konkursowe brzmiało: jak po japońsku (w kontekście agile/lean) brzmi słowo "doskonalenie"? Prawidłowa odpowiedź brzmi kaizen. W konkursie wzięło udział 30 osób, z czego równo połowa odpowiedziała poprawnie.
Co do szkolenia, szczegóły jeszcze w tym tygodniu.

wtorek, 5 października 2010

TDD - od czego zacząć?

W tym semestrze będę miał przyjemność uczyć Test-Driven Development na Uniwersytecie Warszawskim. W ramach przedmiotu Języki i narzędzia programowania III prowadzę grupę poświęconą TDD.

Ponieważ w tym tygodniu wyjeżdżam do Kijowa na konferencję Agile Eastern Europe, pierwsze zajęcia poprowadzę dopiero 14 października. Stąd pojawił się pomysł, aby przedstawić studentom kilka źródeł, dzięki którym mogą zacząć budować swoją wiedzę o TDD już teraz.

Żeby szybko zorientować się, czym jest TDD, dobrze jest zobaczyć, jak wykorzystuje tę technikę ktoś w niej biegły. Dlatego proponuję zacząć od Bowling Kata Roberta Martina (znanego też jako Uncle Bob). Jest to prezentacja, która krok po kroku przedstawia powstawanie programu do wyliczania punktacji gry w kręgle. Jeśli ktoś nie grał w kręgle i zasady punktacji są dla niego egzotyczne, może też obejrzeć w podobnym stylu zrobioną prostszą i krótszą Katę dotyczącą rozkładu liczby na czynniki pierwsze.

Po spotkaniu z praktyką można teraz uzupełnić wiedzę teoretyczną. Zostańmy przy Wujku Bobie i zobaczmy, co pisze o trzech regułach TDD. Ten artykuł pomoże nam zorientować się, o co chodzi w cyklu TDD. Zawiera także piękną wizję pokoju pełnego programistów, których cały kod minutę temu działał...

Jeśli ktoś chce pogłębić wiedzę o TDD w sposób bardziej usystematyzowany, warto sięgnąć do dostępnego w sieci bezpłatnie pełnego rozdziału książki Jamesa Shore'a The Art of Agile Development. Rozdział o prostym tytule Test-Driven Development zawiera wprowadzenie w tematykę na przykładzie programu do parsowania HTTP Query String.

Jeśli chodzi o materiały po polsku, nie jestem w stanie niestety zaproponować nic więcej niż podpowiada Google. Krótkie poszukiwanie ujawniło na przykład notkę w wikipedii i artykuł na podstawie wykładu Sabre.

Więcej uczymy się jednak robiąc, niż czytając, więc może czas na próbę zakodowania czegoś w TDD? Jeśli jeszcze nie czujesz się na siłach, obejrzyj jak robi to kolejny ekspert - Brett Schuchert. W serii filmów tworzy kalkulator działający w odwrotnej notacji polskiej.

Jeśli to za mało, to jako punkt wyjściowy do dalszych poszukiwań polecam blogi Object Mentorów, Uncle Boba, Nata Pryce'a czy też świetną serię artykułów The Craftsman (trzeba kliknąć w odpowiedni link)