poniedziałek, 24 maja 2010

Szkolenie TDD - retrospekcja

Już trochę czasu minęło od pierwszego otwartego szkolenia Test-Driven Development, które miałem przyjemność prowadzić. Było to dla mnie na tyle ważne doświadczenie, że nadal odczuwam potrzebę podsumowania go. Zatem do dzieła...

Uczenie programistów techniki TDD dało mi mnóstwo satysfakcji. Świetne było obserwowanie postępów uczestników. Widziałem też, że bardzo podobało się im podejście do programowania, w którym wiele "robi za nas" eclipse - chodzi o generowanie kodu i refaktoryzacje. TDD znakomicie promuje wykorzystanie możliwości IDE - w końcu chcemy ułatwić sobie życie i jak najwięcej robić automatycznie. No i okazuje się, że zaczynanie od testów sprawia, że powstaje więcej kodu, ale wcale nie tak dużo więcej go piszemy.

Podczas szkolenia starałem się nie zanudzać wykładami, prowadziłem natomiast dużo warsztatów. Podobało się to uczestnikom i myślę, że to właśnie praktyczne doświadczenie TDD jest najcenniejsze w tego typu szkoleniach.

Okazało się, że znakomicie zadziałało programowanie w parach. Wszyscy chętnie pracowali w ten sposób (co prawda nie jednocześnie, gdyż liczba osób była nieparzysta :) Praktyka programowania w parach doskonale uzupełnia się z TDD - cykl Red-Green-Refactor daje naturalne momenty zmiany drivera. Dodatkowo świetny jest aspekt uczenia się od siebie nawzajem oraz doświadczenia różnych stylów programowania. Było na przykład tak, że jedna para wypracowywała pewien sposób pisania testów, który podczas następnego ćwiczenia "migrował" dalej (przed każdym warsztatem następowała zmiana w parach).

Co do prowadzenia wykładów - doświadczyłem ogromnego znaczenia pilota do prezentacji. Pierwszego dnia zapomniałem go wziąć. Aby móc zmieniać slajdy, musiałem mówić stojąc blisko laptopa. Natomiast użycie tego urządzenia podczas następnych dni pozwoliło mi opowiadać dużo swobodniej - chodzić po sali, częściej utrzymywać kontakt wzrokowy ze słuchaczami. Zupełnie inna jakość.

Z rzeczy do poprawienia to na pewno warto uzupełnić prezentacje większą ilością przykładów - kodu i może trochę UMLa przy tematach z projektowania. Jeden obraz wart tysiąca słów, a kilka slajdów z kodem z pewnością równoważy wiele minut opowiadania "na sucho". Myślę tu głównie o refaktoryzacjach, zwłaszcza tych dotyczących kodu odziedziczonego. Ewentualnie zamiast kodu w prezentacjach niezłe mogłoby być też kodowanie na żywo.

No i jakoś nie wyszło mi Aha Experience Exercise. Owszem, kilka "Aha!" pojawiło się na początku, gdy wprowadzałem to ćwiczenie, ale w trakcie już nie dochodziły kolejne.

Z niecierpliwością czekam na kolejną okazję, kiedy będę mógł wykorzystać doświadczenie z tego szkolenia i poprawić swój warsztat trenera i programisty. Tak, tak, programisty też - podczas wspólnego kodowania ja też uczę się od uczestników. Dziękuję!

Brak komentarzy:

Prześlij komentarz