Scrum jest konstrukcją, która pomaga zespołom pracować razem. Podobnie jak drużyna rugby (od której pochodzi jej nazwa), Scrum zachęca drużyny do uczenia się poprzez doświadczenie, samoorganizacji podczas pracy nad problemem i refleksji nad swoimi zwycięstwami i porażkami, aby ciągle się doskonalić.
Podczas gdy Scrum, o którym mówię, jest najczęściej używany przez zespoły tworzące oprogramowanie, jego zasady i lekcje mogą być stosowane we wszystkich rodzajach pracy zespołowej. Jest to jeden z powodów, dla których Scrum jest tak popularny. Często uważany za zwinny szkielet zarządzania projektami, Scrum opisuje zestaw spotkań, narzędzi i ról, które współdziałają ze sobą, aby pomóc zespołom uporządkować i zarządzać ich pracą.
W tym artykule omówimy, jak zbudowany jest tradycyjny szkielet scrum. Zamieścimy również przykłady, jak postrzegamy naszych klientów jako odbiegających od tych podstawowych zasad, aby dopasować je do ich specyficznych potrzeb.
Spis treści
Zasady ogólne Scrum
Ludzie często uważają, że Scrum i agile to samo, ponieważ Scrum koncentruje się na ciągłym doskonaleniu, które jest podstawową zasadą agile. Jednakże Scrum jest ramą dla wykonywania pracy, gdzie agile jest sposobem myślenia. Nie można tak naprawdę „iść agile”, ponieważ wymaga to zaangażowania całego zespołu, aby zmienić sposób myślenia o dostarczaniu wartości dla klientów. Możesz jednak użyć takiego rozwiązania, jak Scrum, aby pomóc Ci zacząć myśleć w powyższy sposób i ćwiczyć budowanie zasad agile w codziennej komunikacji i pracy.
Ramy scrum są heurystyczne; opierają się na ciągłym uczeniu się i dostosowywaniu do zmieniających się czynników. Przyznaje on, że zespół nie wie wszystkiego na początku projektu i będzie się rozwijał dzięki doświadczeniu. Scrum jest skonstruowany tak, aby pomóc zespołom naturalnie przystosować się do zmieniających się warunków i wymagań użytkowników, z ponownym ustaleniem priorytetów wbudowanych w proces i krótkoterminowymi cyklami aktualizacji, tak aby zespół mógł stale się uczyć i doskonalić.
Podczas gdy Scrum jest zorganizowany, nie jest całkowicie sztywny. Jego realizacja może być dostosowana do potrzeb każdej organizacji. Istnieje wiele teorii na temat tego, jak dokładnie muszą pracować zespoły Scrum, aby odnieść sukces. Jednak po ponad dekadzie pomagania zwinnym zespołom w wykonywaniu pracy nauczyliśmy się, że jasna komunikacja, przejrzystość i zaangażowanie w ciągłe doskonalenie powinny zawsze pozostawać w centrum uwagi, niezależnie od tego, jakie ramy wybierzesz.
Artefakty Scrum
Zacznijmy od zidentyfikowania trzech artefaktów w scrumie. Artefakty są czymś, co robimy, jak narzędzie do rozwiązania problemu. W Scrum te trzy artefakty to lista produktu, lista sprintu i przyrost z twoją definicją zrobione. Są to trzy stałe w zespole Scrum, do których w dalszym ciągu powracamy i inwestujemy z biegiem czasu.
- Lista produktu (Product Backlog) to główna lista prac, które muszą zostać wykonane przez właściciela produktu lub kierownika produktu. Jest to dynamiczna lista funkcji, wymagań, ulepszeń i poprawek, która służy jako dane wejściowe do rejestru postępów w pracy. Jest to, zasadniczo, lista “do zrobienia”. Rejestr produktów jest stale aktualizowany, zmieniany i utrzymywany przez właściciela produktu, ponieważ, jak dowiadujemy się więcej lub jak zmienia się rynek, elementy mogą nie być już istotne lub problemy mogą zostać rozwiązane w inny sposób.
- Sprint Backlog to lista elementów, historii użytkownika lub poprawek błędów, wybranych przez zespół projektowy do wdrożenia w bieżącym cyklu. Przed każdym cyklem, na spotkaniu planowania przebiegu (które omówimy w dalszej części artykułu), zespół wybiera z wykazu produktów, nad którymi będzie pracował w ramach danego przebiegu. Rejestr przebiegu cyklu może być elastyczny i może ewoluować w trakcie trwania. Jednak podstawowy cel danego okresu, czyli to, co zespół chce osiągnąć w bieżącym okresie, nie może zostać naruszony.
- Przyrost jest użytecznym produktem końcowym z przebiegu. Zazwyczaj demonstrujemy “przyrost” podczas prezentacji końcowej, gdzie zespół pokazuje, co zostało ukończone w trakcie danego etapu. Słowo “przyrost” może nie być powszechnie stosowane, ponieważ często jest nazywane przez zespół jako termin “gotowe”. Zależy to tylko od tego, jak zespoły zdefiniują “Gotowe” i jak określisz swoje cele danego etapu. Na przykład, niektóre zespoły decydują się udostępnić coś swoim klientom na koniec każdego z etapów. Tak więc ich definicja “gotowe” byłaby ” dostarczone”. Jednak może to nie być prawdopodobne w przypadku innych typów zespołów. Powiedzmy, że pracujesz nad produktem serwerowym, który może być wysyłany do klientów tylko co kwartał. Nadal możesz zdecydować się na pracę w 2-tygodniowych cyklach, ale twoja definicja “gotowy” może być końcową częścią większej wersji, którą planujesz wysyłać w całości. Oczywiście im dłużej trwa wydawanie oprogramowania, tym większe ryzyko, że oprogramowanie nie trafi na właściwą pozycję.
Jak widać, istnieje wiele wariantów, nawet w obrębie artefaktów, które twój zespół może wybrać do zdefiniowania. Dlatego tak ważne jest, aby pozostać otwartym na ewolucję, w jaki sposób utrzymasz równowagę pomiędzy poszczególnymi artefaktami. Być może twoja definicja “zrobione” nie wywiera na twoim zespole większego nacisku i musisz wrócić do niej i wybrać nową definicję.
Spotkania Scrum
Niektóre z bardziej znanych komponentów ram Scrum to zestaw sekwencyjnych spotkań, które zespoły Scrum odbywają regularnie. Spotkania te stanowią miejsce, w którym widzimy najwięcej wariantów dla zespołów. Na przykład, niektóre zespoły uważają przeprowadzanie wszystkich tych rytuałów za uciążliwe i powtarzalne, podczas gdy inne używają go jako niezbędną odprawę. Zalecamy, aby zacząć przeprowadzać spotkania w dwóch sprintach i zobaczyć jak to jest.
Poniżej znajduje się lista wszystkich kluczowych tematów, w których może wziąć udział zespół scrumów.
- Zorganizuj listę potencjalnych klientów: Za to zadanie odpowiedzialny jest właściciel produktu. Głównym zadaniem właściciela produktu jest doprowadzenie do tego, aby produkt był zgodny z jego wizją i miał stałe zapotrzebowanie na rynku i klienta. Dlatego prowadzi on tę listę, korzystając z informacji zwrotnych od użytkowników i zespołu ds. rozwoju, aby pomóc w ustaleniu priorytetów i utrzymaniu listy w czystości i gotowości do pracy.
- Planowanie cyklu: Prace, które mają być wykonane podczas bieżącego cyklu (zakres), są planowane podczas spotkania przez cały zespół projektowy. Spotkanie to jest prowadzone przez osobę prowadzącą, czyli scrum mastera i to na nim zespół decyduje o celu danego cyklu. Następnie z listy produktów dodawane są do planu konkretne historie użytkowania. Historie te są zawsze zgodne z celem i są również uzgadniane przez zespół scrum, aby były wykonalne do wdrożenia podczas danego etapu.
Na koniec spotkania organizacyjnego, każdy członek scrumu musi mieć jasność co do tego, co może być osiągnięte w danym cyklu i jak można zapewnić przyrost. - Cykl: Cykl to rzeczywisty okres, w którym zespół scrumów współpracuje ze sobą w celu osiągnięcia przyrostu. Dwa tygodnie to dość typowa długość jednego cyklu, choć niektóre zespoły uważają, że tydzień jest łatwiejszy do zbadania, a miesiąc łatwiejszy do osiągnięcia cennego przyrostu. Im bardziej skomplikowana praca i im więcej niewiadomych, tym krótszy powinien być etap. To naprawdę zależy od twojego zespołu i nie powinieneś bać się go zmieniać, jeśli nie będzie działał! W tym okresie zakres może być renegocjowany pomiędzy właścicielem produktu a zespołem projektowym, jeśli to konieczne. Stanowi to istotę doświadczalnej natury scrumu.
Wszystkie wydarzenia, od planowania do zakończenia, mają miejsce podczas etapu. Po ustaleniu pewnego odstępu czasowego dla danego cyklu musi on pozostać spójny przez cały okres rozwoju. Pomaga to zespołowi uczyć się na podstawie doświadczeń z przeszłości i wykorzystać tę wiedzę w przyszłych cyklach.
Dzienny Scrum: Jest to codzienne super krótkie spotkanie, które odbywa się o tej samej porze (zazwyczaj rano) i w tym samym miejscu, aby zachować prostotę. Wiele zespołów stara się zakończyć spotkanie w 15 minut, ale to tylko wskazówka. Spotkanie to nazywane jest również codzienną odprawą, podkreślając, że musi być szybkie. Celem codziennej odprawy jest sprawienie, żeby każdy w zespole działał w zgodzie z celem cyklu, oraz aby uzyskać plan pracy na następne 24 godziny.
Jest to czas na wyrażenie wszelkich obaw związanych z osiągnięciem celu lub jakichkolwiek przeszkód.
Wspólnym sposobem prowadzenia odprawy jest udzielenie przez każdego członka zespołu odpowiedzi na trzy pytania w kontekście osiągnięcia celu etapu:
- Co wczoraj robiłem?
- Co zamierzam zrobić dzisiaj?
- Czy są jakieś przeszkody?
Przegląd etapu: Na koniec cyklu, zespół zbiera się na nieformalną sesję, aby obejrzeć film demonstracyjny lub sprawdzić przyrosty. Zespół ds. rozwoju przedstawia zaległe pozycje, które są obecnie “gotowe”, zainteresowanym stronom i kolegom z zespołu w celu uzyskania informacji zwrotnej. Właściciel produktu może zadecydować, czy chce, czy nie chce udostępnić przyrost, choć w większości przypadków przyrost ten jest udostępniany.
To spotkanie podsumowujące ma miejsce również wtedy, gdy właściciel produktu przekształca listę zaległych produktów na podstawie bieżącego cyklu, co może być wykorzystane w następnej sesji planowania. W przypadku jednomiesięcznego cyklu należy rozważyć ustalenie harmonogramu przeglądu etapu na maksymalnie cztery godziny.
Przegląd wyników: Przegląd ten służy podsumowaniu i omówieniu tego, co zadziałało, a co nie w danym cyklu, projekcie, ludziach, relacjach, narzędziach. Ideą jest stworzenie miejsca, w którym zespół może skupić się na tym, co poszło dobrze i co należy poprawić następnym razem, a nie na tym, co poszło źle.
Trzy istotne elementy decydujące o sukcesie scrumu
Zespół scrum potrzebuje trzech konkretnych ról: właściciela produktu, mistrza scrum i zespołu programistycznego. A ponieważ zespoły scrum są wielofunkcyjne, w skład zespołu programistycznego oprócz programistów wchodzą testerzy, projektanci, specjaliści i technicy operacyjni.
Właściciel produktów scrum
Właściciele produktów są głównymi wykonawcami swoich produktów. Koncentrują się oni na zrozumieniu wymagań biznesu, klienta i rynku, a następnie odpowiednio priorytetowo traktują pracę wykonywaną przez zespół inżynierów. Skuteczny właściciel produktów:
• Buduje i zarządza listą zaległych produktów.
• Ściśle współpracuje z firmą i zespołem, aby upewnić się, że wszyscy rozumieją elementy pracy zawarte w rejestrze produktów.
• Daje zespołowi jasne wskazówki, które elementy mają być dostarczone w pierwszej kolejności.
• Zdecyduje, kiedy wysłać produkt z uwzględnieniem możliwości częstszej dostawy.
Właściciel produktu nie zawsze jest kierownikiem produktu. Właściciele produktów koncentrują się na tym, aby zespół ds. rozwoju dostarczał firmie jak najwięcej korzyści. Ważne jest również, aby właściciel produktu był osobą działającą samodzielnie. Żaden zespół rozwojowy nie chce różnych wskazówek od wielu właścicieli produktów.
Scrum master
Scrum masterzy są mistrzami scrum w swoich zespołach. Trenują oni zespoły, właścicieli produktów i biznes w zakresie procesu scrum i szukają sposobów na dopracowanie jego funkcjonowania.
Skuteczny scrum master dogłębnie rozumie pracę wykonywaną przez zespół i może pomóc mu zoptymalizować efektywność i płynność dostaw. Jako moderator naczelny planuje niezbędne zasoby (zarówno ludzkie, jak i logistyczne) do przeprowadzenia cyklu.
Zespół ds. rozwoju scrum
Zespoły Scrum robią wszystko. To oni są mistrzami praktyk zrównoważonego rozwoju. Najbardziej efektywne zespoły Scrum są zgrane, połączone i zazwyczaj składają się z pięciu do siedmiu członków. Jednym ze sposobów na określenie wielkości zespołu jest zastosowanie słynnej “zasady dwóch pizz”, zespół powinien być na tyle mały, aby mógł podzielić się dwoma pizzami.
Członkowie zespołu mają różny zestaw umiejętności i szkolą siebie nawzajem, dzięki czemu żadna osoba nie staje się ograniczeniem w wykonywaniu pracy. Silne zespoły scrumowe są samo organizujące się i podchodzą do swoich projektów z jasnym nastawieniem “my”. Wszyscy członkowie zespołu pomagają sobie nawzajem, aby zapewnić udane zakończenie cyklu.
Zespół Scrumów opracowuje plan każdego cyklu. Przewidują oni, jak wiele pracy mogą wykonać w trakcie całego etapu, wykorzystując jako wskazówkę swoją dotychczasową wydajność. Utrzymywanie stałej długości powtórzeń daje zespołowi programistów ważne informacje zwrotne na temat ich szacunków i procesu realizacji, co z kolei sprawia, że ich prognozy są coraz dokładniejsze.
Scrum, kanban, i agile
Scrum jest tak popularnym rozwiązaniem agile, że scrum i agile są często błędnie rozumiane jako to samo. Jednak są też inne modele, jak kanban, który jest popularną alternatywą. Niektóre firmy decydują się nawet na hybrydowy model scrum i kanban, który zyskał nazwę “Scrumban” lub Kanplan, czyli Kanban z zaległymi pracami.
Zarówno scrum, jak i kanban wykorzystują metody wizualne takie jak scrum board lub kanban board do śledzenia postępu pracy. Obie kładą nacisk na wydajność i dzielą złożone zadania na mniejsze fragmenty możliwej do wykonania pracy, ale ich podejście do tego celu jest inne.
Scrum koncentruje się na mniejszych krokach o stałej długości powtórzeń. Po zakończeniu cyklu określane są historie lub wpisy dotyczące zaległości w produkcji, które mogą być realizowane podczas tego cyklu. W kanbanie jednak najpierw ustalana jest liczba zadań lub prac w toku (limit WIP), które mają być zrealizowane w bieżącym cyklu. Czas potrzebny do wdrożenia tych funkcji jest następnie obliczany wstecz.
Kanban nie jest tak skonstruowany, jak scrum. Poza limitem WIP jest on dość otwarty na interpretację. Scrum ma jednak kilka kategorii pojęć narzuconych w ramach jego realizacji, takich jak przegląd, retrospekcja, codzienne odprawy itp. Scrum kładzie również nacisk na wielofunkcyjność, którą jest zdolność zespołu scrum do niezależności od zewnętrznych członków w osiąganiu swoich celów. Tworzenie wielofunkcyjnego zespołu nie jest proste. W tym sensie kanban jest łatwiejszy do przystosowania, natomiast scrum można uznać za fundamentalną zmianę w procesie myślowym i funkcjonowaniu zespołu rozwojowego.
Dlaczego scrum?
Sam szkielet scrum jest prosty. Zasady, artefakty, zdarzenia i role są łatwe do zrozumienia. Jego na wpół normatywne podejście w rzeczywistości pomaga usunąć niejasności w procesie rozwoju, dając jednocześnie firmom wystarczająco dużo miejsca na wprowadzenie do niego ich indywidualnego stylu.
Organizacja złożonych zadań w łatwe do zarządzania elementy sprawia, że jest to idealne rozwiązanie dla trudnych projektów. Ponadto, wyraźne rozgraniczenie ról i planowanych wydarzeń zapewnia przejrzystość i zbiorową odpowiedzialność w całym cyklu rozwoju. Szybkie informacje utrzymują motywację zespołu, a użytkownicy są zadowoleni z postępów w krótkim czasie.
Jednak opanowanie Scrum może zająć trochę czasu, zwłaszcza jeśli zespół rozwojowy zaaklimatyzuje się do typowego modelu pracy. Koncepcje mniejszych powtórzeń, codziennych spotkań scrumowych, przeglądów cykli i określenie mistrza scrumu mogą być dla nowego zespołu trudną zmianą organizacyjną.
Jednak długoterminowe korzyści znacznie przewyższają początkową krzywą uczenia się. Sukces Scrum w tworzeniu złożonych produktów informatycznych i komputerowych w różnych gałęziach przemysłu i branżach sprawia, że jest to atrakcyjna propozycja dla Twojej firmy.