Co to jest Scrum?
Podczas produkcji oprogramowania jedną z najważniejszych kwestii jest sprawne działanie, czyli spełnienie wymagań klienta, dotrzymanie ram czasowych oraz dobra organizacja pracy zespołu. Projekty informatyczne mogą być skomplikowane. Dwie najczęstsze sytuacje to moment, w którym klient nie jest pewien, czego oczekuje lub wręcz oczekuje wszystkiego. W obu przypadkach najważniejszym zadaniem zespołu projektowego jest przedstawienie klientowi przydatnych biznesowo rozwiązań, przy czym należy również pamiętać o czasie i kosztach wdrożenia. Scrum świetnie sprawdza się właśnie w tego typu projektach IT.
Jak wygląda Proces Scrum?
Tworzymy zespół ludzi o odpowiednich umiejętnościach. Zadania realizowane są w Sprincie (iteracji), który powinien trwać od 1 do maksymalnie 4 tygodni, choć najczęściej spotykaną w praktyce są Sprinty 2 – tygodniowe. Każdy Sprint powinien wnieść nową wartość, która jest zauważalna dla użytkowników.
Zespół Developerski, organizuje sobie prace na dany sprint. W ramach jednej iteracji mamy następujące spotkania:
- Planowanie – podział zadań,
- Daily Scrum – codzienne spotkania,
- Sprint Review – konsultacje planu z klientem lub analiza działającego produktu,
- Sprint Retrospective – analiza procesu, wykorzystywanych narzędzi i wprowadzenie wszelkich dodatkowych przekształceń.
Role w Scrum
Zespół Scrum (Scrum Team) tworzy 7 do 11 osób, realizujących trzy role: Product Owner, Scrum Master i Development Team (rola zbiorowa). Zakres ich odpowiedzialności definiuje się następująco:
- Product Owner (Właściciel Produktu) – osoba posiadająca wiedzę biznesową, a także znająca rynek docelowy dla danego produktu. Odpowiada za zdefiniowanie produktu, zarządza też zakresem funkcjonalnym i priorytetami realizacji poszczególnych zadań, odzwierciedlających wartość biznesową przełożoną na konkretne funkcjonalności. Zespół Programistów nie realizuje żadnych prac, które nie były zlecone przez Product Ownera, a Product Owner z kolei nie jest programistą. Warto też mieć świadomość, że Product Owner reprezentuje Interesariuszy (Stakeholders) którzy z kolei dysponują budżetem, niezbędnym do realizacji każdego zadania developerskiego i to nie tylko w Scrum, ale w każdej innej metodyce projektowej.
- Scrum Master (Mistrz Scruma) – osoba znająca metodykę pracy w Scrum na wskroś. Odpowiada przede wszystkim za komunikacje w Zespole i rozwiązuje ewentualne kryzysy, a także za właściwy przebieg spotkań i zapewnienie komfortu pracy programistom. Jeśli pojawiają się przeszkody procesowe, Scrum Master je usuwa. Niezwykle ważną funkcją realizowana przez Scrum Mastera jest także zbieranie akceptacji (approvals) Product Ownera dla zrealizowanych zadań. Scrum Master ma świadomość znaczenia i praktycznej przydatności poszczególnych praktyk stosowanych w metodyce.
- Development Team (Zespół Programistów) – zgodnie z metodyką Zespół Programistów Scrum to struktura samoorganizująca się, a kompetencje jego członków zapewniają możliwość realizacji produktu bez udziału osób z zewnątrz. Zespół liczy 7 +/-2 osoby, z pominięciem liczby 8. Dlaczego akurat 8 nie jest dobrym pomysłem? Zachęcamy do samodzielnego zgłębienia tego zagadnienia.
Jakie są zalety Scrum'a?
Jedną z najważniejszych zalet Scrum jest stały kontakt między członkami zespołu. Pozwala to szybko reagować na wszelkie zmiany. Dzięki temu znacznie łatwiej jest przewidzieć zakres prac i ich kolejność. Scrum to przede wszystkim rozwiązanie uniwersalne. Sprawdza się wszędzie tam, gdzie konieczne jest zarządzanie zespołem – pod warunkiem, że jest odpowiednio prowadzony. Daje dużą swobodę działania. Nie jest to gotowe rozwiązanie, ale zarys działań, procedur, narzędzi, dzięki którym można stworzyć najlepszy produkt.
Bardzo ważnym aspektem jest również minimalizacja opóźnień podczas realizacji projektu. Dzięki jasno określonym ramom czasowym realizacji poszczególnych czynności oraz codziennej kontroli możesz łatwo kontrolować postęp prac.