Praca z Metodykami zwinnymi

Jakiś czas temu pracowałem z wykorzystaniem metodyk Agile i chciałbym się dziś podzielić swoimi doświadczeniami związanymi z tym tematem. Jeden z większych projektów, które realizowałem był właśnie zrealizowany z użyciem wymienionych metodyk. Chciałbym jednak zaznaczyć na samym początku, że nie moje doświadczenie związane z metodykami zwinnymi nie jest szczególnie bogate i jeszcze wiele mogę się nauczyć o tego rodzaju sposobie wytwarzania oprogramowania.

Pierwsze kroki z zwinnym podejściem do pisania projektu.

Metodyki Agile ogółem są często stosowane w różnych firmach i najczęściej w kontekście tych metodyk pojawia się słowo Scrum czyli framework, który może być wykorzystany zgodnie z zasadami metodyk zwinnych. Praca nad projektem z wykorzystaniem Scrumu polega na tym że mamy iteracje czyli okres podczas którego pracujemy nad danymi funkcjonalnościami projektu, bardzo często określa się ten czas mianem sprintu. Jednym z najważniejszych założeń jest to że po takim okresie mamy dostarczyć w pełni działającą wersję produktu.

Mój pierwszy projekt, który realizowałem z użyciem Scrumu był na dobrą sprawę tworzony przez piątkę osób. Zanim na dobrą sprawę rozpoczęliśmy jakiekolwiek pisanie kodu źródłowego, musieliśmy przemyśleć to w jaki sposób podjedziemy do pracy nad projektem. Od samego początku wiedzieliśmy, że będziemy pracowali z wykorzystaniem Scrum, ale nie wiedzieliśmy, które elementy się sprawdzą lepiej lub gorzej. Zdecydowanie w tamtym momencie to był krok w nieznane.

Planowanie Sprintu

Sprinty trwały w przypadku naszego projektu zawsze około 2 tygodni. Trzeba jednak wspomnieć, że zawsze przed rozpoczęciem sprintu wyznaczaliśmy zadania, które musiały być zrealizowane na przestrzeni 2 tygodni. Gdy już wyznaczyliśmy sobie zadania nadchodził czas w którym szacowaliśmy ile tak naprawdę może nam zając wykonanie tychże zadań. Tutaj często posługiwaliśmy się liczbami Fibonacciego oraz korzystaliśmy z tzw. Scrum Pokera aby uzgodnić nasze szacunki. Często na tym etapie też pojawiały się pomysły co do funkcjonalności naszego projektu.

Daily Sprint

W trakcie trwania projektu dochodziło do czegoś co potocznie nazywa się Daily Scrumem. Jest to nic innego jak spotkanie podczas, którego każdy członek zespołu może podzielić się trudnościami oraz pomysłami jakie przyszły mu do głowy danego dnia. Wystąpienie każdego członka jest ograniczone limitem czasowym. Jeżeli pojawi się jakiś pilny problem na takim spotkaniu to zazwyczaj może być przedyskutowany po zamknięciu Daily. Szybko jednak odkryliśmy, że pracujemy w różnym tempie i z tego też względu zrezygnowaliśmy z tego typu wystąpień. Zamiast tego postanowiliśmy się spotykać raz w tygodniu i na spokojnie porozmawiać o toczącej się pracy.

Retrospektywa

Zawsze na koniec sprintu przychodził czas na retrospektywę oraz prezentację na której prezentowaliśmy działającą wersję naszego projektu. Na retrospektywie bardzo często omawialiśmy założenia jakie przyjęliśmy na samym początku planowania sprintu oraz to jak wiele z tych założeń rzeczywiście udało się nam zrealizować. Często też pojawiały się dyskusje na temat tego co możemy zrealizować lepiej w kolejnym sprincie. Mogliśmy też ocenić wzajemnie naszą pracę. Można powiedzieć, że retrospektywa była w pewien sposób podsumowaniem naszej pracy trwającej dwa tygodnie oraz zapowiedzią, kolejnego planowania nowego już sprintu.

Scrum wprowadza pewien porządek w pracy nad projektem. Warto też wspomnieć, że korzystanie z tego frameworka jest dość elastyczne i jeżeli jakiś element utrudnia nam pracę to niekoniecznie musimy z niego korzystać, mamy tutaj wolną rękę i możemy dostosować Scrum w taki sposób by nasza praca była możliwie najbardziej efektywna.