Scrum

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Scrum – iteracyjne i przyrostowe ramy postępowania (ang. framework) zgodne ze Scrum Guide[1]. Może mieć zastosowanie w realizacji projektów w oparciu o metodyki zwinne zgodne z manifestem Agile.

Rozwój produktu podzielony jest na trwające maksymalnie jeden miesiąc iteracje, zwane sprintami. Po każdym sprincie zespół powinien być w stanie dostarczyć działającą wersję produktu. Scrum jest często stosowany podczas tworzenia i rozwijania oprogramowania, nie jest jednak ograniczony tylko do tej dziedziny.

Historia[edytuj | edytuj kod]

Ogólne założenia podejścia zostały zaprezentowane przez Hirotakę Takeuchiego i Ikujiro Nonakę w artykule The new new product development game, opublikowanym w „Harvard Business Review” w 1986[2]. Definicja Scruma w zastosowaniu do produkcji oprogramowania została sformalizowana przez Kena Schwabera w 1995[3].

Opis ogólny[edytuj | edytuj kod]

Zespół pracuje w określonych przedziałach czasowych zwanych przebiegami lub sprintami (ang. sprint). Zmiany wprowadzane w każdym przebiegu powinny wnosić zauważalną dla użytkowników nową wartość funkcjonalną. Przebieg nie może trwać dłużej niż jeden miesiąc. W praktyce sprinty trwają od 1 do 4 tygodni. Zaleca się stosowanie przebiegów o stałych długościach.

Na początku pracy nad produktem zbierana jest lista wymagań użytkownika, są one przeważnie gromadzone w postaci historyjek (ang. User Stories). Każda historyjka opisuje jedną cechę systemu. Właściciel produktu (ang. Product Owner) jest też zobowiązany do przedstawienia priorytetu wymagań oraz głównego celu pierwszego przebiegu. Po tym formułowany jest rejestr wymagań (ang. Product Backlog). Cel przebiegu jest zapisywany w widocznym miejscu w pokoju członków zespołu.

Następnie podczas planowania przebiegu (ang. Sprint Planning) wybierane są zadania o najwyższym priorytecie, a jednocześnie przyczyniające się do realizacji celu przebiegu. Szacuje się czas realizacji, pracochłonność, złożoność i ryzyko każdego zadania. Lista zadań wraz z oszacowaną czasochłonnością nosi nazwę rejestru zadań przebiegu (ang. Sprint Backlog).

Po planowaniu zespół przechodzi do realizacji przebiegu. W jego trakcie Właściciel Produktu powinien cały czas pracować z zespołem nad jak najlepszym zrozumieniem wymagań nie ingerując jednocześnie w sposób ich implementacji. Nie powinno się także zmieniać zakresu Sprintu.

Zespół z założenia jest ciałem samoorganizującym się, nie ma mowy o odgórnym przypisywaniu zadań poszczególnym członkom zespołu. Dokonują oni wyboru realizowanych zadań, według wspólnych ustaleń, umiejętności czy innych preferencji.

Naczelną zasadą metody jest przeprowadzanie codziennych (maksymalnie 15-minutowych) spotkań (ang. Daily Scrum), na których omawiane są zadania zrealizowane poprzedniego dnia, problemy występujące przy ich realizacji oraz zadania do wykonania w dniu spotkania.

Każdy Sprint kończy się spotkaniem (ang. Sprint Review), na którym prezentowany jest produkt wykonany podczas przebiegu. Powinni w nim uczestniczyć wszyscy zainteresowani projektem. Na spotkaniu każdy członek zespołu może zabrać głos i wyrazić opinię o produkcie. Na zakończenie ustalany jest termin spotkania planistycznego do następnego przebiegu.

Realizacja projektu według Scrum skupia się na:

  • dostarczaniu kolejnych, coraz bardziej dopracowanych wyników projektu,
  • włączaniu się przyszłych użytkowników w proces wytwórczy,
  • samoorganizacji zespołu projektowego.

Zespół i role[edytuj | edytuj kod]

Zazwyczaj Zespół Scrum składa się z od 3 do 9 osób. Dobrze, gdy ma charakter interdyscyplinarny i składa się z osób reprezentujących różne umiejętności. Główne role w projekcie grają: Scrum Master, Właściciel Produktu (ang. Product Owner) i Zespół Deweloperski (ang. Development Team).

Role główne[edytuj | edytuj kod]

  • Zespół Deweloperski (ang. Development Team) – grupa osób, składająca się z od trzech do dziewięciu osób, odpowiedzialna za dostarczenie produktu
  • Właściciel produktu (ang. Product Owner) – osoba reprezentująca klienta. Właściciel produktu może być członkiem zespołu, jednak nie jest zalecane, aby jednocześnie był Scrum Masterem.
  • Scrum Master – osoba odpowiedzialna za usuwanie wszelkich przeszkód uniemożliwiających zespołowi wykonanie zadania, oraz za poprawną implementację procesu i metod.

Zobacz też[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]

  1. http://www.scrumguides.org/docs/scrumguide/v2016/2016-Scrum-Guide-Polish.pdf
  2. Hirotaka Takeuchi, Ikujiro Nonaka. The new new product development game. „Harvard Business Review. Jan”. Vol. 64 Issue 1, s. 137–146, Jan/Feb 1986. 
  3. The Scrum Primer

Linki zewnętrzne[edytuj | edytuj kod]