Metodyka scrum to jedno z najczęściej wybieranych podejść przy wykorzystaniu metodologii agile. Według definicji to lekki framework pozwalający na tworzenie wartości przez zastosowanie adaptacyjnych rozwiązań do problemów. Dowiedz się, co to znaczy i jak z niego korzystać!
Projekt dedykowanego systemu – wykonany samodzielnie czy zlecony firmie, która wykonuje wdrożenia dedykowanych rozwiązań – ma istotny wpływ na wydajność pracy zespołu programistów. Jedną z częściej wykorzystywanych ram postępowania jest scrum, który pozwala na przejrzystość podczas współpracy i łatwe planowanie pracy twórców oprogramowania. Działa on z wykorzystaniem zasad metodyki agile i z powodzeniem zaimplementowany został w setkach przedsiębiorstw. Nawet jeśli nie działasz w IT, to warto się z nim zapoznać – wiele zasad jest uniwersalnych.
Czym jest Agila? Dlaczego mówi się, że jest zwinna?
Agile jest metodyką zwinnego oprogramowania, która rewolucjonizuje samo myślenie o projekcie i podejście do jego planowania. Na jej założeniach bazuje kilka rozwiązań, wśród nich ASD, kanban, lean, extreme programming czy scrum właśnie. Zaprezentowane w 2001 roku założenia projektu obejmowały cztery podstawowe zasady:
- postawienie na członków załogi i ich współdziałanie (ponad narzędziami i procesami);
- działanie oprogramowania jako ważniejsze od obszernej dokumentacji;
- szybką reakcję na zmiany ponad kurczowym trzymaniem się planu;
- postawienie ustaleń formalnych poniżej satysfakcjonującej współpracy z klientem.
Jest to dość nowe i nowatorskie podejście, stawiające na piedestale człowieka i jego wygodę, a nie sztywne procedury.
Co to jest metodyka Scrum? Jak działa zespół scrumowy?
Efektywne tworzenie oprogramowania wymaga wykorzystania elastycznego (zwinnego) podejścia. Jednym z ciekawszych rozwiązań, jest np. opcja, by dostarczyć klientowi kolejne partie zlecenia (modułów) stopniowo, w określonych odstępach czasu. Pomiędzy nimi następują tzw. sprinty, czyli krótkie okresy intensywnego tworzenia kodu, podczas których klient może również przeglądać postęp pracy i dokonywane modyfikacje. Dzięki temu możliwa jest personalizacja projektu i lepsze zarządzanie tworzonym kodem. Może się bowiem okazać, że części z zaplanowanej funkcjonalności nie będzie on potrzebował, podczas gdy korzystne może być dodanie czegoś nowego.
Osiągniecie celu wymaga jasnej wizji!
Określenie wizji projektu, a także celu sprintu jest pierwszym etapem pracy nad nim w myśl założeń metodyki scrum. Można jednak powiedzieć, że na tym w gruncie rzeczy kończy się planowanie – w odróżnieniu od innych metod zarządzania projektami, przy wykorzystaniu metodologii scrum nie ma konieczności dokładnego przydzielania zadań każdemu członkowi zespołu. Właśnie na tym polega piękno i wydajność tego modelu – zamiast wielomiesięcznego planowania każdego etapu i rozdzielania zadań, pracuje się elastycznie i zwinnie, a planowanie sprintu i określenie wizji to właściwie jedyne prace przygotowawcze.
Czym jest sprint? Jaką funkcję pełni w projekcie?
Sprint to ważny element prac nad każdym projektem w ramach metodyki scrum. Czym dokładnie jest? To nic innego, jak wydzielony czasowo okres, w którym cały team intensywnie pracuje nad wykonaniem konkretnego modułu bądź etapu pracy. Dzięki sprint planning, czyli odpowiedniemu rozplanowaniu częstotliwości i intensywności sprintów, a także spodziewanych rezultatów, praca może być wykonywana bardziej efektywnie, dzięki większemu zmobilizowaniu ekipy podczas wykonywania punktów z listy zadań. Podczas sprintu zespół utrzymuje pełnię koncentracji i pracuje nad konkretnym problemem czy zagadnieniem. Sprint to samo sedno metodyki agile, zakładającej częste dostarczanie działającego oprogramowania.
Sprint planning – pierwszy etap w planowaniu sprintu
Przygotowywanie sprintu rozpoczyna się spotkaniem, w którego trakcie członkowie ekipy rozważają, jakie prace można wykonać w jego trakcie oraz w jaki sposób zostanie zrealizowane zadanie. Nad wyborem odpowiedniego zakresu prac czuwa scrum master z pomocą product ownera. Ten drugi skupia się głównie na celu i na elementach product backlog, które pozwolą na jego osiągnięcie. Nad planem musi pracować oczywiście cały team scrumowy, aby jego założenia były realistyczne. Ostatni etap, sprint backlog, to z kolei określenie na wybór elementów do wykonania i sporządzenie planu ich realizacji.
Właściwy przebieg sprintu i jego zakończenie
Początek każdego sprintu następuje po jego uprzednim rozplanowaniu. W trakcie sprintu realizuje się tzw. daily scrum, czyli codzienne spotkania, na których analizuje się rozwój projektu oraz przyrost kodu. Omawia się na nich również pojawiające się problemy uniemożliwiające lub spowalniające dalsze prace na dalszych etapach – zwłaszcza te, które mogą zagrozić realizacji celu. Każdy koniec sprintu wiąże się z wykonaniem sprint review (przegląd sprintu, na którym demonstruje się zrealizowane zadania m.in. interesariuszom) oraz retrospektywą sprintu, w której czasie analizuje się to, co można poprawić następnym razem.
Najważniejsze role w scrumie – scrum master i product owner
Jedną z najważniejszych osób w ekipie jest scrum master. To on odpowiada za wdrożenie systemu, pilnuje stosowania ram czy współpracuje z product ownerem. Musi mieć sporą wiedzę i doświadczenie w pracy ze scrumem, dzięki czemu może na bieżąco pilnować stosowania tej metodologii, choć oczywiście zachowuje pewną elastyczność i jest otwarty na sugestie swoich współpracowników. Jego obowiązki to m.in. tworzenie harmonogramów wydarzeń, prowadzenie spotkań stand-up, przeglądy sprintów, retrospektywy, administracja tablicą, spotkania indywidualne, raportowanie, doradztwo, eliminowanie przeszkód czy wykonywanie mniej produktywnych zadań.
Product owner to nie to samo, co scrum master – choć niektórzy próbują je łączyć
Scrum zakłada ustanowienie product ownera, czyli osoby skupionej na klientach i nadającej priorytet rozwiązaniom biznesowym. Z zasady więc nie powinna być nim ta sama osoba, która pełni obowiązki scrum mastera, gdyż taka sytuacja utrudniałaby skupienie się na zasadach metodyki przy zachowaniu elastyczności i personalizacji niezbędnych do zadowolenia odbiorcy końcowego. Product owner już na etapie rozwoju produktu dopasowuje jego poszczególne elementy do potrzeb klienta. Niekiedy małe firmy ulegają pokusie łączenia jego roli ze scrum masterem, ale na dłuższą metę zamiast oczekiwanych rezultatów (oszczędność pracowników) przynosi to dodatkowe utrudnienia.
Gdzie do zarządzania warto zastosować agile i scrum?
Scrum oraz agile zostały opracowane z myślą o wykorzystaniu głównie przy projektach związanych z branżą IT. Znajduje zastosowanie przy implementacji systemów dedykowanych, jak również przy integracji różnych programów i dopasowywaniem modułów. Jednak okazuje się, że zasady i metodologię scrum można z powodzeniem stosować również w innych branżach – wszędzie tam, gdzie musimy poradzić sobie z rozwiązaniem złożonych problemów, m.in. w działalności finansowej i ubezpieczeniowej, logistyce, telekomunikacji, consultingu czy przy projektowaniu rozwiązań inżynieryjnych i technologicznych. Wszędzie tam, gdzie ważne jest wykonanie dobrego projektu, który będzie trafiał w potrzeby klienta, umożliwiając dalszą rozbudowę w przyszłości scrum bedzie dobrym wyborem.
Jakie narzędzia wykorzystać z framework scruma?
Najważniejsze aspekty przy pracy ze scrumem to zarządzanie kodem źródłowym, product backlogiem i pracą grupową. Właśnie na nich powinny skupiać się wykorzystywane narzędzia. Niektórzy stawiają na gotowe mechanizmy, dostarczane przez producentów oprogramowania, które umożliwiają zwinną współpracę, przejmują iterację, planowanie, raportowanie czy podsumowywanie sprintów. Inni wolą korzystać z kilku narzędzi, które komponują się w spójną całość, a samodzielnie mogą mieć nadzór nad poszczególnymi etapami. To kwestia wysoce indywidualna i wraz z doświadczeniem każdy scrum master nabywa własnych preferencji. Sporo możliwości można odkryć, przeglądając corocznie aktualizowaną stronę Scrum Guide.
Jak działa scrum? Dlaczego na niego postawić?
Jeden z pionierów tej metody pracy, Jeff Sutherland, podaje, że odpowiednio zaimplementowany scrum pozwala na wykonanie dwa razy większej ilości pracy w czasie krótszym o połowę. Rzeczywiście – wiele firm, które zdecydowały się na jego zastosowanie, zauważyło poprawę produktywności i redukcję nakładów poświęcanych każdemu projektowi. Efekty osiągane przez scrum team poprawiają się wraz z nabywanym przez niego doświadczeniem, na co również mają wpływ umiejętności scrum mastera. Jest to jednak inwestycja, której warto się podjąć, gdyż w dłuższym terminie rewolucjonizuje sposób wykonywania zadań.
Scrum jest jednym z najwydajniejszych sposobów na zarządzanie pracą grupową. Chociaż wdrożenie procesu scrum wymaga sporych nakładów i częstych inspekcji, a opanowanie nowego nazewnictwa oraz zasad jest wyzwaniem, dzięki niemu można znacznie ograniczyć czas na wykonanie nowego produktu i zwiększyć ogólną wydajność teamu.