Jak zacząć pracę z rozwojem agilnym przy użyciu frameworku Scrum

Podstawy frameworku Scrum zostały przedstawione w 1986 roku przez Hirotakę Takeuchiego i Ikujiro Nonakę w artykule z Harvard Business Review pt. „Nowa nowa gra w rozwoju produktów”. Autorzy opisali dwa podejścia do zarządzania rozwojem produktów. Niektóre zespoły działają jak biegacze sztafetowi w linii prostej, przekazując baton w miarę postępu. Inne zespoły działają jak zawodnicy rugby w jednym meczu, przekazując piłkę tam i z powrotem, gdy to konieczne.

Takeuchi i Nonaka stwierdzili, że metoda sztafetowa stosowana w systemie fazowym planowania NASA jest przestarzała. Argumentowali, że model rugby zapewni firmom narzędzia potrzebne do konkurencji na globalnym rynku handlowym.

W 1993 roku Jeff Sutherland, John Scumniotales i Jeff McKenna eksperymentowali z rozwojem oprogramowania Scrum w firmie Easel Corp. W 1995 roku Ken Schwaber i Sutherland, wraz z innymi, w tym McKenną i Scumniotales, opublikowali artykuł pt. „Proces rozwoju Scrum”. Spowodowało to istotny przeskok, który zmusił programistów do zastanowienia się nad skutecznością klasycznego modelu rozwoju oprogramowania w formie wodospadu.

W listopadzie 2020 roku Sutherland i Schwaber wydali zaktualizowaną wersję „Przewodnika Scrum”, która zawiera oficjalną definicję Scrumu.

Związek między Scrumem a Agile

Agile to podejście do rozwoju i planowania projektów. Jak wyjaśniono w Manifeste Agile, ma ogólne filozoficzne podejście lub ramy, które kierują metodami poniżej niego. Scrum to jedna z wielu metod agilnych.

Scrum można traktować jako praktyczny sposób wdrożenia Agile. Podobnie jak Agile, Scrum zawiera zestaw wartości i zasad. Zespoły rozwojowe integrują Scrum w swoją strategię agilną, aby dodać warstwę szczegółowości.

Jedną z zasad rozwoju agilnego jest regularne omawianie przez członków zespołu sposobów poprawy efektywności, a następnie dostosowanie ich zachowania. Scrum zawiera formalny proces wspomagający zespół w tej czynności. Codzienne spotkania pozwalają zespołowi zastanowić się, co musi zostać zrobione w ciągu kolejnych 24 godzin, i dostosować podejście w oparciu o oczekiwania lub napotkane przeszkody.

Inna zasada agilna uznaje, że najlepsze wyniki pochodzą od samodzielnych zespołów. Scrum Master odgrywa tutaj kluczową rolę. Dostarcza zespołowi tego, co potrzebne do wykonania pracy, oraz wolności, by sami ustalili swój sposób działania. Następnie działa jako lider sługi, kierując zespołem w rozwiązywaniu problemów, osiąganiu celów i rozwiązywaniu konfliktów.

Kolumny i wartości Scrumu

Trzy kolumny Scrumu to Adaptacja, Inspekcja i Przejrzystość.

  1. Adaptacja. Zespoły ciągle dostosowują swoje podejście do rozwiązywania problemów i przyjmują nowe metody, gdy pojawiają się nowe kwestie.
  2. Inspekcja. Zespoły systematycznie analizują i oceniają własną wydajność.
  3. Przejrzystość. Zespół pracuje w otwartej atmosferze, w której wszyscy członkowie rozumieją procesy siebie nawzajem i są świadomi wyzwań, z jakimi borykają się inni.

Pięć podstawowych wartości Scrumu

Te wartości wspierają trzy kolumny:

  1. Zaangażowanie. Zespół jest samodzielny, a każdy jest poświęcony zakończeniu ustalonej pracy.
  2. Odwaga. Zespół działa jako całość — sukcesy i porażki są wspólne. Członkowie robią to, co trzeba, i podejmują się trudnych kwestii.
  3. Skupienie. Zaburzenia są ograniczone, a zespół skupia się na pracy, którą trzeba wykonać dziś.
  4. Otwartość. Zespół poświęca czas na dzielenie się tym, co działa dobrze, i tym, co wymaga poprawy.
  5. Szacunek. Członkowie zespołu mają różne siły, a siły każdego są szanowane. Nikogo nie obwinia się, gdy rozwiązuje się problemy.

Scrum to framework zarządzania projektami, który podkreśla pracę zespołową, odpowiedzialność i postępy iteracyjne w kierunku dobrze zdefiniowanych celów. Framework zaczyna się od prostego założenia: zacznij od tego, co można zobaczyć lub znać. Następnie śledź postępy i dostosuj, jeśli to konieczne.

Scrum jest często częścią rozwoju oprogramowania agilnego. Nazwa pochodzi od formacji rugby, w której każdy ma swoją rolę. Role w Scrum w rozwoju oprogramowania obejmują:

  • Właściciel produktu — Ta osoba pełni rolę pośrednika między zespołem rozwojowym a klientem. Właściciel produktu zapewnia, że oczekiwania dotyczące gotowego produktu są przekazywane i skoordynowane.
  • Scrum Master — Znany jako współtwórca projektu. Zapewnia, że stosowane są najlepsze praktyki Scrum. Musi być doskonałym liderem i menedżerem projektu, a także mieć doświadczenie w współpracy, rozwiązywaniu konfliktów i poprawie procesów.
  • Zespół rozwojowy — Członkowie zespołu rozwojowego Scrum pracują razem, aby tworzyć i testować iteracyjne wersje końcowego produktu. Programiści muszą zrozumieć Scrum i praktyki rozwoju agilnego.

What is Scrum Team? - Scrum Guide

Czym jest proces Scrum?

Proces Scrum zachęca praktyków do wykorzystania tego, co mają, i ciągłego oceniania, co działa, a co nie. Skuteczna komunikacja jest kluczowa i odbywa się poprzez spotkania (nazywane „zdarzeniami”).

Zdarzenia Scrum obejmują następujące elementy:

Scrum Events

  • Codzienny stand-up (codzienny Scrum) — To krótkie, stojące spotkanie codzienne, które odbywa się w tym samym czasie i miejscu każdego dnia. Podczas tych spotkań zespół przegląda to, co zostało zrealizowane wczoraj, i planuje, co zrobić w ciągu kolejnych 24 godzin. To czas, w którym członkowie zespołu omawiają wszelkie problemy, które mogą utrudnić zakończenie projektu.
  • Sprint — Sprint to ustalony czas (zwykle 30 dni), w którym musi zostać zakończona praca. Nowy sprint zaczyna się od razu po zakończeniu poprzedniego.
  • Spotkanie planowania sprintu — Podczas tych spotkań wszyscy uczestniczą w ustalaniu celów. Minimalnym wynikiem jest co najmniej jeden increment — użyteczny fragment oprogramowania.
  • Recenzja sprintu — To czas, w którym prezentuje się increment.
  • Retrospektywa sprintu — Retrospektywa sprintu to spotkanie odbywające się po zakończeniu sprintu. Podczas tego spotkania wszyscy analizują proces. Można także włączyć ćwiczenia zespołowe. Jednym z kluczowych celów tego zdarzenia jest ciągła poprawa.

Czym są artefakty Scrum?

Użyteczne jest przeglądanie artefaktów Scrum podczas spotkań planowania sprintu. Artefakty Scrum obejmują następujące elementy:

Scrum Artifacts

  • Backlog produktu — To lista prac, które jeszcze należy wykonać. Podczas sesji doskonalenia backlogu produktu zespół rozwojowy współpracuje z właścicielem biznesu, aby ustalić priorytety. Backlog produktu można dopasować w procesie zwanym doskonaleniem backlogu.
  • Backlog sprintu — To lista zadań, które muszą zostać wykonane przed dostarczeniem wybranych elementów backlogu produktu. Są one podzielone na opisane w czasie historie użytkownika.
  • Increment produktu — To reprezentuje to, co zostało zakończone w trakcie sprintu — wszystkie elementy backlogu produktu zakończone w tym sprintie — oraz wszystko stworzone w poprzednich sprintach. Increment produktu odzwierciedla osiągnięty postęp.
  • Wykres spadkowy — Wykres spadku to wizualne przedstawienie ilości pozostałej pracy. Ma oś Y pokazującą pracę, a oś X pokazującą czas. Idealnie, wykres pokazuje trend spadkowy, gdy pozostała praca maleje do zera w czasie.

Zalety metody Scrum

Główne korzyści z metody Scrum obejmują:

  • Wysokiej jakości produkty — Część procesu Scrum zwana retrospektywą Sprintu opiera się na opinii i ciągłym doskonaleniu. W rezultacie zespoły programistyczne korzystające z tej metody mogą dostarczać produkty o wysokiej jakości.
  • Praca zespołowa — Scrum tworzy spójne zespoły rozwojowe oprogramowania, które skutecznie komunikują się, spełniają terminy i rozwiązują problemy wspólnie. Członkowie uznają i szanują się wzajemnie oraz rozumieją, że czas ma wartość. Może to oznaczać ograniczenie Daily Scrums do ściśle określonych okien czasowych. Niektóre zespoły oprogramowania wchodzą w „sprint hackowania” w swoim procesie, pozwalając programistom eksplorować nowe koncepcje, testować idee i przejmować odpowiedzialność za produkt.
  • Elastyczność — W Scrum zespoły muszą dostosować swoje narzędzia i procesy do nowych warunków. Definicje produktu mogą się zmieniać w miarę postępu rozwoju, a skuteczne zespoły wprowadzają te zmiany w kilku iteracjach. Regularne spotkania z listą produktu pozwalają zespołowi ponownie ustawić priorytety przed wprowadzeniem elementów do Sprintu.
  • Zredukowane ryzyko — Scrum skupia się na przewidywalnej, zrównoważonej prędkości dostarczania i stałej opinii, dając zespołom możliwość redukowania ryzyka wcześnie i często. Jeśli idea nie działa, krótkie Sprinty pozwalają zespołowi szybko zawieść, co sprawia, że porażka jest zarządzalna.
  • Krótszy czas wypuszczenia na rynek — Scrum został zaprojektowany w taki sposób, by wypuszczać produkty i funkcje w przewidywalnych przyrostach za pomocą dobrze zdefiniowanych Sprintów. Wypuszczanie funkcji nie wymaga ukończenia całego produktu. Sprinty są zaprojektowane tak, by z każdym przyrostem dodawać funkcjonalność gotową do wysyłki. Pełny produkt złożony z tych funkcji nazywany jest produktem złożonym.
  • Wyższy zwrot inwestycji (ROI) — Łączne korzyści z Scrum prowadzą do wyższego zwrotu inwestycji (ROI). Ciągła opinia zmniejsza kosztowne błędy na końcowym etapie procesu i prowadzi do lepszej jakości produktu z mniejszą liczbą wad. Krótszy czas wypuszczenia na rynek i iteracyjne wypuszczanie produktów przynoszą przychód szybciej.

Leave a Reply