Niedawno miałam przyjemność uczestniczyć w bardzo ciekawym szkoleniu na temat metodyki Scrum. Dowiedziałam się m.in. jakie są podstawy Scruma.
Podstawy Scruma
Sam Scrum pewnie znany jest większości osób, które mają styczność z wytwarzaniem oprogramowania. Myślę, że metodyka ta swoją popularność zawdzięcza głównie temu, że narzuca pewną strukturę zarządzania pracą/czasem/zespołem, jednocześnie dając wolność adaptacji do własnych potrzeb. Cechy te podkreślają filary, na których opiera się Scrum, zwłaszcza ostatni:
- Transparency – przejrzystość
- Inspect – inspekcja
- Adapt – adaptacja!
Podstawową wiedzę na temat Scrum warto czerpać z oficjalnego podręcznika. Jest dostępny po polsku tutaj: http://scrumguides.org/docs/scrumguide/v2016/2016-Scrum-Guide-Polish.pdf. Kopia: [2016-Scrum-Guide-Polish]
Framework
Scrum to framework – co to oznacza w praktyce? Podręcznik przedstawia to tak: Scrum to „baza”, ramy, na których zespół buduje swoją własną „implementację”. Na bazę składa się naprawdę niewiele elementów. Są to:
- Zespół i role: Product Owner, Scrum Master oraz zespół developerski: programiści, testerzy, graficy, analitycy biznesowi itd.,
- Zdarzenia: Sprint (przebieg), Sprint Planning (planowanie przebiegu), Daily Scrum (jak idzie praca nad celami?), Sprint Review (demonstracja i inspekcja przyrostu pracy), Sprint Retro (czego się nauczyliśmy?),
- Artefakty: Product Backlog, Sprint Backlog i cel Sprintu,szkolenia scrumowego
- Reguły: łączące wszystkie elementy tej układanki.
Dodatki
Pozostałe praktyki, jakie często kojarzone są ze Scrumem, są tylko dodatkiem, implementacją, zestawem dobrych praktyk. Nie są składnikiem frameworka. Przykłady:
- Planowanie Sprinta za pomocą kart do Scrum pokera,
- Pozycja stojąca podczas Daily Scrum,
- Spotkania groomingowe – backlog refinement to nie tylko spotkania, ale także praca własna nad backlogiem! Zespół powinien spędzić nad tym tematem 10% czasu, przygotowując się do kolejnego sprintu – ten czas można przeznaczyć np. na szukanie technologii do realizacji przyszłych zadań itd.
Ciekawą rzeczą, jaką wyniosłam ze szkolenia była informacja, że podczas Sprintu zespół powinien dostarczyć całą, lecz uproszczoną funkcjonalność! Niedopuszczalne jest zatem np. wykonanie części prac w bazie danych, ale niezrobienie niczego w interfejsie. Zadania powinny być zatem upraszczane, a nie dzielone. Ciekawa zasada, chyba nie zawsze jednak respektowana.