środa, 9 grudnia 2009

Po Zwinnym Szkoleniu

W ostatni piątek i sobotę prowadziliśmy szkolenie ze Zwinnego Rozwijania Oprogramowania.
Cel był dość prosty - przekazać w te dwa dni jak najwięcej wiedzy dotyczącej zwinnych metodyk i  myślenia/filozofii z nimi związanej. Najważniejsze dla nas było zrobienie tego w taki sposób, który pozwoli kursantom zacząć wdrażać nowopozyskaną wiedzę już pierwszego dnia po szkoleniu. Opierało się więc ono w dużej mierze na warsztatach i ćwiczeniach.

Agenda szkolenia była następująca:
1) Wprowadzenie do Zwinnego Rozwijania Oprogramowania
Bazując na manifeście przekazaliśmy wszystkie główne myśli i zasady związane ze zwinnym myśleniem. Porównaliśmy zwinne metodyki z tradycyjnym "inżynierskim" podejściem. W ramach warsztatów pokazaliśmy, że zwinne metodyki dotykają wszystkich głównych problemów związanych z prowadzeniem i realizacją projektów programistycznych.
2) Scrum & eXtreme Programming
W tej części zaprezentowaliśmy dwie różne, ale zwykle używane komplementarnie zwinne metodyki: Scrum i XP. Staraliśmy się pokazać jak wypełniają one zasady zawarte w Manifeście. Przy okazji w ramach warsztatów z pomocą Scrum'a pisaliśmy wspólnie poezję :)
3) Zwinne praktyki programistyczne
Ta część przybliżyła założenia co do pisania oprogramowania związane z XP (TDD, programowanie w parach, Continous Integration), co to znaczy pisać Czysty Kod oraz opisała ideę Software Craftsmanship.
Krótki wykład zakończył się prezentacją połączenia TDD z programowaniem w parach (tzw. TDD ping-pong).
4) Zwinne Szacowanie i Planowanie
W ramach tej części pogłębiliśmy temat szacowania i planowania bazującego na Scenariuszach (User Stories), pokazaliśmy jak robić to w grupie (Planning Poker) oraz w jaki sposób wyceniać i planować iteracje i wydania. Nawiązaliśmy do tego jak mogą wyglądać umowy w zwinnych projektach i jak działać zwinnie w przypadku projektów fixed-time & fixed-scope. Pokazaliśmy jak liczyć prędkość zespołu i do czego można ją wykorzystać.
Zdobytą wiedzę wykorzystaliśmy do szacowania codziennych czynności takich jak pisanie smsów, czytanie książek czy wieszanie firanek :)
5) Zwinne zespoły
W tej części opowiadaliśmy o tym czym zwinne zespoły różnią się od zwykłych, co wpływa na efektywność pracy zespołu, co można zrobić, by zespół poprawiał jakość tak swoją jak i tworzonych przez siebie produktów. Pogłębiliśmy temat retrospektywy jako mechanizmu ułatwiającego zespołowi unaocznianie problemów i ciągłe poprawianie się. Na koniec przeprowadziliśmy warsztaty z prowadzenia retrospekcji.
6) XP Lego Game
Jako podsumowanie praktycznej części szkolenia zrealizowaliśmy kompletny projekt z wykorzystaniem planowania, szacowania i retrospekcji. Właściciel produktu weryfikował poprawność wykonania, wymagał refaktorowania części i dotrzymywania terminów. W ten sposób zrealizowaliśmy park z klocków lego:





7) Transformacja zespołów i organizacji
Ta, najbardziej teoretyczna część, dotyczyła wprowadzania zwinnych metodyk w istniejących zespołach, transformacji organizacji i sposobów pracy zwinnych zespołów z niezwinnymi działami. Dotknęliśmy zagadnień przekazywania odpowiedzialności i uprawnień związanych z projektem zespołom,  roli menagera, lidera i coach'a w zwinnych zespołach.


Retrospektywa
Na koniec szkolenia poprosiliśmy kursantów o wypełnienie ankiety, na podstawie której wyciągnęliśmy następujące wnioski (z powtarzających się komentarzy i ocen każdej z części oddzielnie):
Co się udało:
  • szkolenie bardzo się podobało - 98% uczestników uważało je za bardzo dobre
  • dwóch prowadzących o różnych temperamentach i punktach widzenia poszerzało perspektywę (zostaliśmy nazwani "dobry i zły glina" ;-))
  • wprowadzenie praktycznych warsztatów było dobrym pomysłem
  • projekt parku z LEGO był hitem :)
  • zrównoważyliśmy teorię z praktyką - zadowolone były zarówno osoby chcące poznać podstawy teoretyczne (już pracujące w Scrumie), jak i osoby bardziej oczekujące praktycznych informacji (zadowolenie z warsztatów i prezentacji TDD)
  • wszystko było prawie idealnie na czas
Co warto poprawić na następny raz:
  • lokalizacja bliżej centrum
  • salka szkoleniowa mogłaby być trochę większa
  • prezentacja TDD mogłaby być nie na koniec dnia, byłaby okazja podyskutować
  • prezentacja TDD powinna skupić się albo na refaktoryzacji, albo na drive'owaniu nowego kodu żeby była czytelniejsza
  • część poświęcona transformacji powinna mieć przykłady z życia wzięte

Na początku przyszłego roku planujemy otwarte szkolenie-warsztaty z TDD, na które już teraz zapraszamy.

Jesteśmy gotowi powtórzyć Zwinne Szkolenie dla konkretnych zespołów (jako szkolenie zamknięte), oraz zachęcamy do zgłaszania swojego zainteresowania udziałem w kolejnym takim szkoleniu otwartym, które pewnie odbędzie się też w pierwszej części przyszłego roku.