Scrum (Zespół Rugby), model rozwoju oprogramowania jest rodzajem zwinnego rozwoju, który stopniowo zyskał popularność w ciągu ostatnich dziesięciu lat.

Podstawowe założenie Scrum
Rozwój oprogramowania jest jak rozwój nowego produktu. Ostateczne procedury produktu oprogramowania nie mogą być zdefiniowane od początku. Proces wymaga badań i rozwoju, kreatywności, prób i błędów, więc nie ma ustalonego procesu, który mógłby zagwarantować sukces projektu.
Scrum porównuje zespół rozwoju oprogramowania do drużyny piłkarskiej. Ma jasno określony najwyższy cel, zna najlepszy model i technologię wymaganą w procesie rozwoju, ma wysoki stopień autonomii, bliską komunikację i współpracę oraz zapewnia rozwiązywanie różnych wyzwań każdego dnia z dużą elastycznością; Każdy etap ma wyraźny postęp w kierunku celu.
Proces Scrum
Proces rozwoju Scrum zazwyczaj zaczyna się od 30-dniowej (lub krótszej) fazy, zaczynając od specyfikacji wymagań nowego produktu klienta, przy czym zespół deweloperski i klient wybierają, które części specyfikacji mają zostać zrealizowane na początku każdej fazy, zespół deweloperski musi dać z siebie wszystko, aby dostarczyć wyniki po 30 dniach, a zespół spotyka się przez 15 minut dziennie, aby przeglądać postępy każdego członka i harmonogram, zrozumieć napotkane trudności i próbować je rozwiązać.
Zalety podejścia zwinnego
Jaką przewagę ma Scrum nad tradycyjnym modelem rozwoju.Cechą wyróżniającą model Scrum jest to, że reaguje na zmiany. Może reagować na zmiany tak szybko, jak to możliwe.
Kiedy tradycyjny system koncentruje się na wstępnym planowaniu, w którym czynniki takie jak koszt, zakres i czas mają znaczenie, podejście zwinne kładzie nacisk na pracę zespołową, współpracę z klientem i elastyczność. W miarę jak specyfikacje wymagań się zmieniają, zespół zwinny może pozostać mobilny i zdolny do reagowania na te zmiany. Jednak nie oznacza to, że strategia planowania adaptacyjnego jest zawsze lepsza od strategii planowania predykcyjnego. Porównajmy te dwie strategie rozwoju projektu w dalszych szczegółach.

Zatem tradycyjne podejście do rozwoju (model kaskadowy, znane również jako oparte na planie) jest liniowe, z wszystkimi fazami procesu występującymi sekwencyjnie. To podejście opiera się na przewidywalnych narzędziach i przewidywalnych doświadczeniach. Każdy projekt przechodzi przez ten sam cykl życia, w tym wykonalność, planowanie, projektowanie, budowę, testowanie, produkcję, wsparcie itd., jak pokazano poniżej.
Cały projekt jest planowany z wyprzedzeniem bez możliwości zmiany wymagań, na przykład PMBOK PMI i PRINCE2 są rygorystyczne i ściśle kontrolowane. Określają różne fazy planowania projektu od początku do końca i zakładają, że masz już wszystkie wymagania i informacje, których potrzebujesz z góry.
Podejście zwinne jest uważane za bardziej nowoczesną strategię rozwoju oprogramowania, ponieważ zostało zaprojektowane głównie w celu przezwyciężenia niektórych niedociągnięć bardziej przewidywalnego podejścia kaskadowego. Jest to model rozwoju oprogramowania, który zachęca do iteracyjnego rozwoju i testowania w całym cyklu życia projektu.
Przegląd procesu Scrum
Scrum jest ramą, która określa role, wydarzeniaartefakty, oraz zasady/wytyczne do wdrożenia tego sposobu myślenia. Innymi słowy, Agile to sposób myślenia, a Scrum to rama, która określa proces wdrażania filozofii zwinnej.
Scrum i agile to nie to samo, ale scrum jest jednym z procesów zwinnych. Opierają się na iteracyjnym rozwoju. Wymagania i rozwiązania zwinne uzyskuje się dzięki współpracy między zespołami wielofunkcyjnymi i samoorganizującymi się, a gdy są wdrażane prawidłowo, mogą pomóc zespołom w rozwiązywaniu złożonych problemów poprzez stopniowe dostarczanie produktów o najwyższej wartości, jednocześnie minimalizując ryzyko.
Scrum obejmuje szybką inspekcję i adaptację, praca zespołowa jest wspierana przez filozofię przywództwa, odpowiedzialność i samoorganizację, najlepsze praktyki inżynieryjne, które pomagają w dostarczaniu szybkiego oprogramowania wysokiej jakości.
Kluczowe terminy Scrum
Backlog: wszystkie zadania, które można przewidzieć, w tym wszystkie zadania funkcjonalne i niefunkcjonalne.
Sprint: Okres czasu dla rozwoju generacyjnego, zazwyczaj maksymalnie 30 dni jako cykl. W tym czasie zespół deweloperski musi zrealizować sformułowany backlog, a ostatecznym wynikiem jest produkt inkrementalny i dostarczalny.
Backlog sprintu: Zadania, które muszą zostać zrealizowane w cyklu sprintu.
Czas-ramy: Okno czasowe na spotkanie. Na przykład, czas-ramy każdego codziennego spotkania scrum to 15 minut.
Spotkanie planowania sprintu: Odbywa się przed rozpoczęciem każdego sprintu. Zazwyczaj jeden dzień (8 godzin). Zadaniem do sformułowania na tym spotkaniu jest: właściciel produktu i członkowie zespołu dzielą backlog na małe moduły funkcjonalne, decydują, ile małych modułów funkcjonalnych musi zostać zrealizowanych w nadchodzącym sprincie, oraz ustalają priorytet zadań w tym Backlogu Produktu. Ponadto spotkanie musi szczegółowo omówić, jak zrealizować te małe moduły funkcjonalne zgodnie z wymaganiami. Obciążenie tych modułów jest obliczane w godzinach.
Codzienne spotkanie Scrum: odbywane przez członków zespołu deweloperskiego, zazwyczaj 15 minut. Każdy członek zespołu deweloperskiego musi zgłosić trzy projekty do Scrum Mastera: Co zostało zrealizowane dzisiaj? Czy napotkałeś przeszkody? Co zamierzasz zrobić? Dzięki temu spotkaniu członkowie zespołu mogą zrozumieć postęp projektu nawzajem.
Spotkanie przeglądowe sprintu: Po każdym sprincie zespół zaprezentuje wyniki sprintu właścicielowi produktu i innym związanym osobom. Zazwyczaj to spotkanie trwa 4 godziny.
Retrospektywa sprintu odbywa się po Przeglądzie sprintu i przed następnym Planowaniem sprintu. To jest maksymalnie trzygodzinne spotkanie dla miesięcznych Sprintów. Sesja retrospektywna to zasadniczo spotkanie „ulepszające”, które ma na celu znalezienie sposobów i środków do zidentyfikowania potencjalnych pułapek, przeszłych błędów i poszukiwania nowych sposobów unikania tych błędów, w którym uczestniczą wszyscy — właściciel produktu, scrum master, członkowie zespołu deweloperskiego oraz opcjonalnie interesariusze.
Scrum Master: Członek zespołu odpowiedzialny za nadzorowanie całego procesu Scrum i rewizję planu.
Właściciel Produktu który posiada produkt w imieniu firmy, jest częścią zespołu Scrum. Jednak właściciel produktu nie ma władzy nad innymi członkami zespołu, tak jak Scrum Master. Właściciel Produktu jest odpowiedzialny za opiekę nad produktem przez dłuższy czas i odpowiada za osiągnięcie sukcesu produktu. Jako właściciel produktu powinieneś bezpośrednio współpracować z klientami i użytkownikami, zespołem deweloperskim oraz innymi kluczowymi interesariuszami, jak pokazano na poniższym obrazku.
Zespół Scrum Zespół jest zbiorem osób (zazwyczaj między pięcioma a dziewięcioma członkami) pracujących razem, aby dostarczyć wymagane przyrosty produktu. Ramy Scrum zachęcają do wysokiego poziomu komunikacji wśród członków zespołu, aby zespół mógł:
- Podążać za wspólnym celem
- przestrzegać tych samych norm i zasad
- okazywać sobie nawzajem szacunek

Jak działa Scrum?
Proces Scrum różni się od innych procesów zwinnych specyficznymi koncepcjami i praktykami, podzielonymi na trzy kategorie ról (właściciel produktuscrum master, zespół deweloperski i inni interesariusze), wydarzenia, artefakty i zasady.
Aby rozpocząć proces Scrum, właściciel produktu tworzy priorytetową listę życzeń zwaną backlogiem produktu. Podczas planowania sprintu backlog jest oceniany pod kątem złożoności i wartości biznesowej (priorytet). Właściciel produktu (klient) i zespół deweloperski decydują, które elementy backlogu zostaną dodane do sprintu. Zespół ma określoną ilość czasu (nazywaną sprintem, zazwyczaj od dwóch do czterech tygodni) na zakończenie swojej pracy, ale spotyka się codziennie, aby ocenić postępy (codzienny Scrum). W międzyczasie Scrum Master utrzymuje zespół skoncentrowany na jego celu. Na koniec sprintu zespół przegląda swoje postępy, pokazuje klientowi działający produkt i ocenia, co poszło dobrze, a co należy poprawić w następnym sprincie. Następnie cykl się powtarza.

Ten post dostępny jest również w Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文