Rola Scrum Mastera w procesie wytwarzania oprogramowania

Sylwester Kułakowski | Rozwój oprogramowania | 23.09.2020

Zwinne podejście do wytwarzania oprogramowywania umożliwia bieżący przegląd efektywności komunikacji w zespole, dostarczanych funkcjonalności i wprowadzanie działań usprawniających. A jak w tym cały procesie wygląda praca Scrum Mastera i dlaczego firmy zlecające rozwój oprogramowania coraz chętniej korzystają z jego pomocy? Przeczytaj artykuł i dowiedz się, w czym Scrum Master może pomóc nie tylko zespołowi, ale też całej organizacji.

Według raportu „State of Scrum Master 2019 r.” 35% badanych organizacji jest na etapie wczesnej adopcji modelu zwinnego. To pokazuje, że zapotrzebowanie na Scrum Masterów w najbliższej przyszłości może wzrosnąć – nie bez powodu zresztą zawód ten od lat znajduje się na listach najbardziej obiecujących profesji w świecie IT. Bycie Agile to nie tylko kwestia umiejętności miękkich. Zwinne wytwarzanie oprogramowania powoli staje się standardem. Wiele mówi się o roli Scrum Mastera w procesie wytwarzania oprogramowania. Często to osoba, która nie zajmuje się programowaniem ani testowaniem. Jaki jest więc wkład Scrum Mastera w proces rozwoju aplikacji i funkcjonalności?

Czytaj także: Outsourcing usług IT wspiera realizację projektów

Scrum Master zaczyna od pytań

  • Dlaczego chcemy pracować nad tą funkcjonalnością?
  • Na czym polega dana zmiana?
  • Czy konkretne zagadnienie jest potrzebne?
  • Jakie osoby (umiejętności) są potrzebne do realizacji zadania? Czy wiemy, jak przetestować daną funkcjonalność?
  • Czy ktoś potrzebuje wsparcia?
  • Czy ktoś może pomóc tej osobie w wykonaniu zadania?
  • Czy pojawiły się jakieś przeszkody, które blokują zespół w bieżącej pracy?

To tylko przykłady pytań, jakie może zadawać Scrum Master. Powinien on dostosować się on do sytuacji i poruszyć kwestie, które najbardziej pomogą w danym momencie. Rolą Scrum Mastera jest wsparcie zespołu w procesie wytwarzania oprogramowania. Pozwala to określić, co należy zrobić, aby przybliżyć zespół do realizacji celu Sprintu.

Poprzez zadawanie odpowiednich pytań Scrum Master sprawdza, w jakim stopniu zespół rozumie temat. Dzięki temu pomaga mu uświadomić sobie aspekty, które są potrzebne podczas analizy, tworzenia kodu czy testowania. Scrum Master nie powinien jednak sugerować gotowych rozwiązań, bo propozycje nie muszą być zawsze właściwe w danym momencie. Powinien pobudzić zespół, tak aby wszyscy wspólnie znaleźli najlepsze podejście. Zamiast wydawania poleceń Scrum Master dba więc o to, aby padły właściwe pytania, które stworzą potrzebne rozwiązania. Scrum Master nie zna odpowiedzi na wszystkie pytania (np. dotyczące zakresu funkcjonalności, kwestii technicznych lub organizacyjnych), jednak powinien znaleźć właściwą osobę, która będzie w stanie pomóc i wyjaśnić nurtujący temat.

27.08 JPro cover 2 - Rola Scrum Mastera w procesie wytwarzania oprogramowania

Jak zrozumieć Agile?

Dlaczego Agile bywa niezrozumiany? Jakie są podstawy technik zwinnych i dlaczego nie zawsze działają? Przeczytaj artykuł, który napisał jeden ze Scrum Masterów w Inetum i dowiedz się, jak uniknąć najczęstszych błędów.

PRZECZYTAJ ARTYKUŁ

Niezależne spojrzenie na pracę Zespołu Developerskiego

Scrum Master nie jest bezpośrednio zaangażowany w pracę wytwórczą, co pozwala mu zyskać niezależny obraz sytuacji wewnątrz zespołu. Będąc „z boku”, obserwuje prace i sposób komunikacji osób w zespole. Dzięki temu Scrum Master:

  • Zna odczucia Zespołu Developerskiego na temat sposobu komunikacji i czasu poświęconego na pracę z innymi zespołami, a to pozwala na pracę nad efektywnością wytwarzania oprogramowania.
  • Potrafi określić, czy kontaktów zewnętrznych jest za dużo czy może odwrotnie: jest potrzeba organizacji spotkań ze specjalistą lub członkiem z innego zespołu.
  • Potrafi określić optymalną długość spotkań. Podejście do spotkań omawia z zespołem: „Czy nie są za długie?” „Czy nie jest ich za dużo?” „Czy wszyscy muszą uczestniczyć w danym spotkaniu?”

Scrum Master rozmawia z członkami zespołu

Scrum Master rozmawia nie tylko z menadżerem projektu, Product Ownerem czy innymi Scrum Masterami. Przede wszystkim regularnie rozmawia z członkami Zespołu Developerskiego. Bez oceny, bez krytyki. Szczera rozmowa, którą inicjuje Scrum Master, pozwala obu stronom poznać wzajemne odczucia na temat pracy, a szczególnie ważna jest rozmowa indywidualna. Idealną sytuacją jest, jeśli Scrum Master posiada umiejętność prowadzenia otwartej rozmowy, bez specjalnej otoczki i planowania w tym celu spotkań.

Ważne, aby za rozmową stała konkretna potrzeba. Zdarza się przecież, że ktoś w zespole ma trudny dzień z przyczyn prywatnych lub zadania w pracy nie idą pomyślnie. Scrum Master jest jak uważny obserwator, który zwraca uwagę na takie właśnie momenty. Jego rolą i pożądaną sytuacją jest stworzenie atmosfery, w której członkowie zespołu sami zwracają się do niego prośbą o przyjacielską rozmowę lub na ogólnym spotkaniu zgłaszają ważny temat bez poczucia skrępowania.

Budowanie zaufania

Budowanie relacji i zaufania jest bardzo ważne. Według badań, na które powołuje się ICAN Institute, styl zarządzania i kultura organizacyjna firmy 41% ankietowanych osób wskazuje jako ważny aspekt, podczas gdy warunki finansowe – 34%. Budowanie kultury organizacyjnej to praca nad komunikacją, budowanie dobrej atmosfery opartej na wzajemnym zaufaniu. Zespoły, które pracują w modelu samozarządzania, wiedzą, jak ważne jest mieć kogoś, kto wysłucha, ale też  pomoże podjąć dalsze kroki do realizacji. Tym kimś jest właśnie Scrum Master, który stara się, by każda osoba z jego otoczenia otrzymała właściwe wsparcie, nawet jeśli on sam nie zna odpowiedzi na dane pytanie.

Scrum Master a organizacja pracy

Według Edwardsa Deminga, który badał zarządzanie jakością i wpływ kontroli kierownictwa na zespół wydajność danej osoby jedynie w 5-15% zależy od samego pracownika. Az 85-95%  sukcesu zależy od organizacji pracy. Scrum Master zapewnia wsparcie organizacyjne podczas pracy wytwórczej, które odbywa się w krótkich iteracjach (Sprintach). Taki model pracy buduje ducha zespołu. Członkowie Zespołu Developerskiego coraz lepiej poznają się wzajemnie, ale też  coraz lepiej poznają tworzony przez siebie produkt.

Rola Scrum Mastera:

  • Rozpoczynając od etapu analizy i tworzenia „User stories” przez zespół (pojedynczych zadań opisanych z perspektywy użytkownika końcowego, które po zrealizowaniu przyniosą zdefiniowane wartości), dba o zachowanie podstawowych elementów, z których zadania powinny się składać.
  • Upewnia się, że zadania zawierają szczegóły, które umożliwią zespołowi zrozumienie nowego tematu i dba o wyjaśnienie otwartych jeszcze kwestii.
  • Ma wkład w przypisywanie zadań do odpowiednich osób. Podczas opracowywania nowych funkcjonalności, które zespół będzie mógł zawrzeć w Sprincie, Scrum Master zadaje pytania i odnosi się do zakończonych Sprintów (jeżeli takie już się odbyły). Pozwala to znaleźć osoby, które najlepiej pod kątem merytorycznym, technicznym oraz doświadczenia pasują do danego zagadnienia.
  • Dba o koordynację zadań. Scrum Master upewnia się, że każde nowe zadanie będzie miało osobę, która będzie dbała o koordynację prac w danym zagadnieniu.
  • Monitoruje bieżący postęp prac. Za Sprint jest odpowiedzialny cały zespół, ważne jest jednak, aby Scrum Master znał postęp prac i dbał o to, aby zadania płynnie przechodziły ścieżkę od analizy, przez tworzenie funkcjonalności po testy.

Scrum Master powinien zwracać uwagę na powyższe elementy, tak aby praca nad zadaniami nie zatrzymała się z powodu błędu, braku przypisanej osoby czy otwartej zależności i dzięki temu mogła zmierzać ku końcowi.

Scrum Master motywuje zespół

Scrum Master nie jest Team Managerem, ale w codziennej pracy nie powinien zapominać o regularnym docenianiu członków Zespołu Developerskiego. Zespół dobrze wykonał pracę? Developer poświęcił dodatkowy czas na wsparcie kolegi czy koleżanki w wykonaniu trudnego zadania? Scrum Master docenia takie zachowanie i w ten sposób zachęca zespół do wzajemnej pomocy i efektywnej pracy nad realizacją zadań w Sprincie. Jeżeli pochwały będą prawdziwe i zasadne, pracownicy będą mu ufać. Szczere pochwały motywują do jeszcze lepszej pracy i poprawiają atmosferę w zespole. Dodatkowo po prostu miło jest zakończyć dzień po usłyszeniu podziękowań za swoją pracę.

Scrum Master jako wsparcie dla organizacji

Praca Scrum Mastera nie kończy się na współpracy z developerami czy Product Ownerem. Współpracuje on aktywnie także z osobami spoza własnego zespołu. Warto wymieniać doświadczenia w szerokim gronie, zgłaszać napotkane problemy, uczyć się nie tylko na własnych błędach.

Przykład: Scrum Master zauważa, że proces przepływu informacji w organizacji nie funkcjonuje poprawnie. Zespół Developerski nie uzyskuje informacji niezbędnych do ukończenia zadań. Scrum Master powinien zgłosić ten problem osobom z poziomu organizacji, tak aby wspólnie zastanowić się, jaki model komunikacji będzie optymalny.

Scrum Master nie tylko dzieli się własnymi pomysłami, ale też korzysta z wiedzy i doświadczenia innych. Przykładowo, jeżeli jakiś zespół wypracował metodę, która sprawia, że proces wytwarzania oprogramowania działa sprawnie, pozwala wyeliminować błędy,  a tym samym zmniejsza czas realizacji –  warto przekazać te informacje dalej, do innych osób i zespołów.

Rozwój osobisty Scrum Mastera

Scrum Master nie spoczywa na laurach! Aby być wsparciem dla zespołu, powinien ciągle się rozwijać, poznawać techniczne aspekty pracy, a także bacznie obserwować zachowania ludzi, z którymi pracuje. Scrum Master ciągle poznaje swój zespół i organizację, budując zaufanie. Rozwój osobisty to nie tylko certyfikacje i szkolenia, ale też umiejętność wyciągania wniosków z własnych niewłaściwych decyzji czy spóźnionych reakcji. Dzięki regularnym spotkaniom w zespole i projekcie jest w stanie stwierdzić, co nie działa, zrozumieć potrzebę członków zespołu, przekazać wskazówki i zaproponować działania, które w przyszłości zminimalizują lub wyeliminują trudności.

Podsumowanie

Rola Scrum Mastera jest ważna w procesie wytwarzania oprogramowania. Jednak aby jego wysiłek przynosił skutek, Scrum Master powinien ciągle pracować z zespołem i osobami w projekcie nad usprawnieniem prac i rozwojem indywidualnym każdej osoby. Dobry Scum Master nie tylko zadaje odpowiednie pytania, ale też wyciąga wnioski i wprowadza wraz z zespołem akcje, które umożliwią wyeliminowanie napotkanych problemów w przyszłości. Także poprzez osobisty rozwój wnosi wkład w proces wytwarzania oprogramowania, a tym samym – wartość dla zespołu i organizacji.