Ze Scrumem jest tak: jeśli już pracujesz w IT to z pewnością wiesz mniej więcej o co w nim chodzi. Nie przeraża Cię używane słownictwo, w praktyce poznałeś/poznałaś rodzaje wydarzeń w Scrumie. Nawet jeśli nie był to najlepiej zorganizowany Scrum na świecie to chociaż wiesz jak może on wyglądać w praktyce. Gorzej jeśli dopiero zaczynasz swoją karierę w IT. Wtedy ten sposób organizacji pracy zapewne będzie dla ciebie nieznany. Warto wcześniej dowiedzieć się o nim więcej, by ułatwić sobie wejście w branżę (a także np. zabłysnąć na rozmowie kwalifikacyjnej). Dziś dostarczam Wam pigułkę wiedzy na start plus linki, gdzie możecie dowiedzieć się więcej. Zaczynamy!

Scrum jest podejściem, sposobem organizacji pracy, bardzo popularnym w branży IT. Należy do większej rodziny metodyk zwinnych (z ang. Agile). Oprócz Scruma w tej grupie znajdują się także np. Kanban, Lean czy Extreme Programming. O co jednak chodzi w tej zwinności? Zamiast planować stworzenie całej aplikacji od A do Z przed startem projektu, decydujemy się na bieżąco odkrywać i dodawać kolejne wymagania, tworzyć nowe funkcjonalności aplikacji i testować. Takie podejście sprawia, że stajemy się bardziej zwinni - dostosowujemy się na bieżąco do wymagań rynku, użytkowników, szybko zbieramy informację zwrotną i ulepszamy produkt na jej podstawie. Przechodzimy przez wszystkie fazy tworzenia aplikacji w szybkich iteracjach - zbieramy wymagania, kodujemy, testujemy, tworzymy dokumentację, zbieramy feedback i powtarzamy.

W kontrze do tego sposobu pracy stoi metodyka waterfall. W przypadku takiego podejścia tworzymy plany na długo w przód, rozpisujemy wymagania dla całego projektu na początku, a potem je realizujemy. Przechodząc do kolejnego etapu prac, nie cofamy się do już zakończonych etapów, np. jeśli przejdziemy do tworzenia rozwiązania to nie wracamy już do zbierania wymagań lub np. zaczynamy testować aplikację, gdy programiści skończą nad nią w całości pracować. Taki model pracy sprawdza się np. w branży budowlanej czy przy tworzeniu samolotu (raczej nie będziemy przeprojektowywać domu, gdy ściany już stoją 😉).

Czymś charakterystycznym dla Scruma są iteracje, zwane sprintami. Jest to z góry określony czas, np. tydzień lub dwa, w trakcie którego zespół chce osiągnąć konkretny rezultat. Sprint rozpoczyna się planowaniem (z ang. "planning"). W trakcie tego spotkania wybiera się z backlogu (naszej listy zadań/funkcjonalności/historyjek użytkowników) te zadania, które będziemy realizować w nadchodzącym sprincie. Zespół estymuje jak dużo jest w stanie zrobić w trakcie następnej iteracji. Zadania, które postanawiamy wykonać w nadchodzącym czasie lądują w sprint backlogu.

Gdy już rozpoczniemy iterację to na bieżąco śledzimy nasze postępy. Zespół regularnie (najczęściej codziennie) uczestniczy w krótkich statusowych spotkaniach zwanych daily. Często rozpoczynają one dzień pracy i mają za zadanie zsynchronizować pracę członków i członkiń zespołu, wspierać radzenie sobie z pojawiającymi się problemami i służyć szybkiej wymianie wiedzy. Często odbywają się na stojąco (stąd też inna nazwa - “stand-up”), by upewnić się, że będą szybkie i nie będą się przeciągać. Dodatkowo stan prac jest śledzony również na tablicy (coraz rzadziej w formie offline, a częściej za pomocą narzędzi takich jak Jira, Trello czy Asana).

Po zakończonym sprincie, w trakcie przeglądu sprintu (z ang. "sprint review"), przyglądamy się temu co osiągnęliśmy w czasie minionej iteracji. Review często łączy się też z demo - pokazem nowo dodanych funkcjonalności. Innym spotkaniem, które towarzyszy zakończeniu iteracji jest retrospekcja. Jest to czas na przeanalizowanie sposobu, w jaki pracujemy. Przyglądamy się ostatniej iteracji, doceniamy to co osiągnęliśmy, myślimy nad tym, jak możemy ulepszyć nasz proces i co zrobić, by nie powtarzać błędów, które popełniliśmy. By skutecznie wpływać na pracę zespołu z retrospekcji chcemy wyjść z listą zmian/akcji, które chcemy wdrożyć (wraz z przypisaną do nich osobą). W trakcie sprintu niektóre zespoły przeprowadzają również spotkania nazywane z ang. refinementami, na których dyskutuje się nad zadaniami w backlogu, doszczegółowia je, sprawdza czy są kompletne i ogólnie przygotowuje je, by były gotowe do pracy w kolejnych sprintach. A po tak zrealizowanym sprincie i wyciągnięciu wniosków przychodzi pora na… kolejną iterację. I cykl się powtarza.

Uważam, że na start warto również wiedzieć o rożnych rolach, które przyjmują osoby pracujące w metodyce Scrum:

  • zespół
    Chcemy, by scrumowy zespół był interdyscyplinarny (np. zawierał osoby o umiejętnościach związanych z front-endem, back-endem, designem (UX/UI), kontrolą jakości (QA)), ponieważ osoby o różnych umiejętnościach są w stanie realizować funkcjonalności od A do Z, a to sprawia, że zespół jest niezależny. Dodatkowo w kontekście zespołu scrumowego często pojawia się hasło - samoorganizujący się. Co to oznacza? Że zamiast czekać na przydział zadania od menedżera członkowie zespołu sami przydzielają sie do zadań, pracują nad ulepszeniem swoich procesów, w ten sposób osiągając lepszą organizację pracy niż sztywna, narzucona z góry (przynajmniej w teorii 😉)

  • Product Owner
    Osoba, która zbiera wszystkie wymagania, od różnych osób, które mają swoje interesy w powstawaniu produktu, zarządza tymi wymaganiami w ramach backlogu oraz określa wśród nich priorytety.

  • Scrum Master
    Osoba, która pomaga zespołowi w działaniu - np. facylituje spotkania, pomaga w usuwaniu różnych blokerów, pomaga w komunikacji z Product Ownerem i utrzymaniu porządku w backlogu tak, by zespół mógł skupić się na pracy nad celem sprintu.

Ten artykuł to tylko bardzo zwięzły wstęp do tematu oparty na moim stanie wiedzy i doświadczeniach. Jeśli chcecie się dowiedzieć więcej, i to od ekspertów w temacie, to linkuję do kilku książek, z których ja uczyłam się Scruma:

  • “Scrum. O zwinnym zarządzaniu projektami” Mariusz Chrapko - recenzja
  • “Labirynty Scruma” Jacek Wieczorek - recenzja
  • “Zwinny samuraj. Jak programują mistrzowie zwinności” Jonathan Rasmusson - recenzja

Oraz innych przydatnych źródeł:

  • Scrum Guide - oficjalny dokument opisujący Scruma
  • Agile247 - polski portal o zwinności (Agile, Scrum i nie tylko)

Jeśli planujesz rozpoczęcie pracy jako programistka lub programista i masz jeszcze jakieś pytania odnośnie tego jak wygląda praca w Agile’u z punktu widzenia developera to pytaj śmiało w komentarzu. Stale pracuję nad tym, by tworzyć treści, które są dla Was przydatne, więc jeśli ten artykuł Ci się przydał to daj znać!

A może chcesz zmienić branżę na IT, uczysz się programowania na własną rękę, ale potrzebujesz pomocy? Masz trudności ze zrozumieniem jakiegoś front-endowego tematu? A może chcesz się przygotować do rozmowy kwalifikacyjnej? Skorzystaj z 30-minutowej darmowej konsultacji ze mną - może będzie to wstęp do cudnej współpracy. Więcej informacji i możliwość zapisu znajdziesz tutaj.

Tyle na dziś, dziękuję Ci za uwagę!

Photo by Lala Azizli on Unsplash
Photo by David Travis on Unsplash