poniedziałek, 12 grudnia 2011

Agile Development Day

Wczoraj miał miejsce w Warszawie Agile Development Day. Wydarzenie organizowane przez 2 firmy: Pragmatists wspólnie z Sages.

Od godziny 8:00 do 18:00 jako jeden z 20 wybrańców miałem możliwość uczestniczyć w tworzeniu aplikacji metodyką agile. Pracowaliśmy w parach. Do każdej pary dołączyła też jedna osoba z organizatorów doświadczona w pracy agile. Tworzyliśmy aplikację społecznościową, w której każdy zalogowany użytkownik może chwalić się nabytymi zdolnościami lub takimi których aktualnie się uczy. Za czas spędzony na nauce i trudność zadania otrzymuje punkty. W ten sposób inne osoby śledzące danego użytkownika mogą zobaczyć w czym się doskonali i czuć się zmobilizowane do poszerzania własnych kompetencji. Dostępny jest też ranking najbardziej aktywnych użytkowników. Ciekawy moim zdaniem pomysł na system.
Kody źródłowe dostępne na licencji WTFPL leżą na githubie:

https://github.com/has-learnt-it/haslearntit

Plan imprezy przedstawiał sie następująco:

8:00 - 8:20: start, śniadanie, w tym czasie opis projektu i sposobu pracy
8:20 - 9:00: Szkolenie Cassandra
9:00 - 9:30: Szkolenie Spring MVC
9:30 - 10:55: I iteracja
10:55 - 11:00: przegląd iteracji, rotacja par
11:00 - 12:30: II iteracja
12:30 - 12:45: przegląd iteracji i retrospekcja, rotacja par
12:45 - 13:30: obiad
13:30 - 14:55: III iteracja
14:55 - 15:00: przegląd iteracji i retrospekcja, rotacja par
15:00 - 16:25: IV iteracja
16:25 - 16:30: przegląd iteracji
16:30 - 17:30: V iteracja (kończenie rozpoczętych historyjek, ostatni
szlif aplikacji)
17:30 - 18:00: retrospekcja i zamknięcie imprezy

Po pierwszej iteracji, która przebiegała najbardziej chaotycznie ze wszystkich zauważalne były problemy podziału odpowiedzialności za zadania. Nikt nie wiedział która drużyna zajmuje się jakim kawałkiem aplikacji, mimo że było wiadome które 'user story' są aktualnie realizowane. Pojawiły się problemy z równoległą pracą na tym samym fragmencie kodu widoczne przy komitach na githuba (mergowanie zmian, kolejny update i konflikty bo w miedzyczasie inna grupa zmieniła kod, znów mergowanie, update i znów konflikty itd. )

Dlatego po pierwszej retrospekcji, w czasie której każdy na ścianie na kartce mógl zamieścić komentarz co go boli a co cieszy, pojawił się pomysł na stand-up'y, czyli krótkie spotkania organizowane 2 razy w czasie każdej iteracji, w których brała jedna osoba z każdego teamu i mówiła czym para aktualnie się zajmuje i jakie problemy natrafia. Dzięki temu każda grupa wiedziała kto czym się zajmuje i mogła podsunąć pomysł na rozwiązanie problemu.

Kolejne iteracje przebiegały już coraz płynniej, ale zauważalne były braki wiedzy na temat gita i cassandry. To wydłużało czas spędzany na naukę tych rzeczy. Na pewno nauka nie poszła w las.

Sam jestem bardzo zadowolony, że mogłem się tam zjawić. Poznałem wiele ciekawych osób, zobaczyłem jak świetnie integruje się github z Jenkinsem. Po każdym komicie na centralne repozytorium mogliśmy obserwować jak zmiany są deployowane na serwerze produkcyjnym i od razu można używać nowych funkcjonalności na produkcji. To jeszcze bardziej podsycało nasz zapał do pracy - działająca aplikacja rosnąca w oczach (UI widoczny na rzutniku przez cały czas). Każdy nasz nowy kawałek funkcjonalności mogł już za chwilę w mgnieniu oka znaleść się na produkcji.

Wymagania w postaci user-story były dostępne online na portalu https://hosted.tinypm.com/agiledevday/

Z pewnością dynamika pracy i bardzo wiele nowych technologii jakie napotkałem nie pozwoliły ogarnąć tego, co powstało w ciągu jednego dnia, dlatego planuję na spokojnie usiąść nad systemem i zobaczyć jak niektóre rzeczy zostały rozwiązane.

Był to cenny i miło spędzony czas. Podziękowania dla organizatorów za zaangażowanie i obiad oraz cattering w ciągu całego dnia (przegryzaki i napoje).

Informacje o wydarzeniu można również śledzic na Twitterze

Brak komentarzy:

Publikowanie komentarza