Scrum w IT: Efektywne zarządzanie projektem zespołu programistycznego

Scrum w IT: Efektywne zarządzanie projektem zespołu programistycznego

21 lipca 2023

Zarządzanie projektem informatycznym stanowi wyzwanie o znacznym stopniu skomplikowania. Wymaga nie tylko odnalezienia odpowiednich specjalistów IT, co w obliczu deficytu kadry na rynku nie jest zadaniem łatwym... ale także skutecznego kierowania pracami zespołu. Niedotrzymanie harmonogramu projektu staje się coraz bardziej prawdopodobne, jeśli brakuje właściwego nadzoru i koordynacji działań.

W związku z tym nie powinno nikogo dziwić, że w XXI wieku stale poszukuje się takich sposobów na zarządzanie projektem, które umożliwią sprawne kierowanie zespołem, a w konsekwencji – realizację celów biznesowych. Jest to ważne np. w branży IT, w której stworzenie oprogramowania dla biznesu czy aplikacji webowej wymaga koordynacji prac różnych specjalistów (programistów, web developerów, UX designerów itp.). To jednak niejedyne wyzwanie, jakiemu musi stawić czoła software house. Oprócz tego konieczne jest takie kierowanie projektem IT, które pozwoli na dostosowywanie przedsięwzięcia do zmieniających się wymogów – a te mogą ulegać nieraz rewolucyjnym zmianom, ponieważ środowisko biznesowe cechuje się w XXI wieku niezwykłym dynamizmem.

Wydaje się, że remedium na te problemy jest metodyka Scrum, czyli zwinne zarządzanie projektami IT. Czym jest Scrum? W pewnym uproszczeniu zakłada ona, że projekt dzieli się na niewielkie etapy – Sprinty – po wykonaniu których przeprowadza się modyfikacje założeń projektu. Dzięki temu można uniknąć sytuacji, w której projekt zostanie wykonany, ale już po zakończeniu prac okaże się, że trzeba zrewidować założenia oraz dokonywać zmian w całym przedsięwzięciu.

W pewnym sensie można porównać metodykę do taktyki „żabich skoków”, którą realizowała... armia Stanów Zjednoczonych podczas drugiej wojny światowej (stopniowe zdobywanie wysp japońskich, a po zdobyciu każdej wyspy – ustalanie kierunku dalszego natarcia).

Zwinne metodyki wytwarzania oprogramowania w IT to rozwiązanie, które cechuje się elastycznością. Dzięki temu można szybko i sprawnie dostosować aktualnie prowadzone prace nad oprogramowaniem do nowych wymagań zgłaszanych przez klienta.

Czasem Scrum i metodyka zwinna Agile są traktowane jako wyrażenia o takim samym znaczeniu. W rzeczywistości jednak Agile to zbiór różnych metodyk – Scrum jest jedną z nich.

Scrum vs tradycyjne metody zarządzania projektami IT

W porównaniu z tradycyjnymi metodami zarządzania projektami IT Scrum cechuje się elastycznością – poszczególne etapy prac są realizowane w ściśle określonych czasowo sprintach, co pozwala na reagowanie „na bieżąco” na ewentualne problemy. Ponieważ członkowie zespołu mają często odmienne specjalizacje, zachowują oni dzięki temu większą kontrolę nad przebiegiem całego projektu. 

Scrum to jedna z metodyk zwinnych Agile. Nie należy jednak mylić jej z takimi podejściami jak np. Kanban, który opiera się na ciągłej pracy i eliminowaniu marnotrawstwa, podczas gdy filarem Scrum są ściśle ograniczone czasowo sprinty. Ponadto, zespoły pracujące w metodyce Kanban samodzielnie podejmują decyzje co do sposobu przydzielania zadań i monitorowania postępów. W Scrum zespół jest bardziej zhierarchizowany i oparty na takich członkach jak Scrum Master czy Product Owner.

Odpowiednio wdrożony Scrum może pomóc software house'om w takich obszarach jak np.:

  • poprawa komunikacji między zespołami
  • łatwiejsze dostosowanie się do zmian wymagań klienta
  • reagowanie na problemy
  • zarządzanie dostępnymi zasobami, w tym w szczególności czasem pracy podległego zespołu

Role w Scrumie

Aby umożliwić efektywne zarządzanie projektem IT w oparciu o metodykę Scrum, konieczne jest odpowiednie ukształtowanie struktury zespołu. W tym kontekście, istnieje ograniczona przestrzeń dla inwencji twórczej, ponieważ podejście Scrum narzuca specyficzny sposób w jaki organizuje się zespół Scrumowy:

  • Product Owner, czyli właściciel produktu – jego celem jest sprawienie, by produkt zyskał na wartości. W jaki sposób można to osiągnąć? Proste: poprzez konsultacje z klientem biznesowym oraz przekazywanie na tej podstawie wytycznych podległym pracownikom. W pewnym sensie Product Owner dba o to, by przełożyć język biznesowy na techniczny. Wreszcie, Product Owner przygotowuje backlog produktu, czyli listę zadań do wykonania.
  • Scrum Master – pełni kluczową rolę w eliminowaniu wszelkich przeszkód i blokad, które mogą wpłynąć na wydajność zespołu oraz zapewnia, że zespół pracuje w zgodzie z przyjętymi wartościami i zasadami, dążąc do ciągłego doskonalenia procesu wytwarzania produktu.
  • Development Team/Scrum Team (zespół odpowiedzialny za rozwój) – jest to zespół składający się z kilku, czasem kilkunastu pracowników, którzy wykonują powierzone im zadania. Zazwyczaj do Development Team’u należą profesjonaliści z różnych profesji, dzięki czemu możliwe jest opracowanie produktu IT z różnych stron (w tym np. część wizualna, responsywność czy sprawnie działający kod programistyczny, dzięki któremu działa cała aplikacja).

Oczywiście, podział na poszczególne role nie oznacza, że członkowie zespołu pracują osobno. Scrum team to nie grupa X specjalistów, ale jeden zespół. Przykładowo, podczas codziennych spotkań (Daily) Product Owner może wraz ze Scrum Masterem ustalać zasady ustalania backlogu czy monitorowania postępów w projekcie.

Podczas kompletowania zespołu Scrumowego dba się o to, by miał on „międzyfunkcyjny” (multifunkcyjny) charakter. Dzięki temu możliwe będzie opracowanie całego produktu od A do Z. Jeśli chodzi o optymalną liczebność zespołu, to zaleca się, by w jego skład wchodziło około 5-7 osób, choć oczywiście zależy to od specyfiki danego przedsięwzięcia.

Niezależnie od wielkości zespołu celem jest przygotowanie takiego teamu, który jest w stanie sam zorganizować swoje działania.

Korzyści z zastosowania Scrum w projektach IT

Scrum w IT: Efektywne zarządzanie projektem zespołu programistycznego
Korzyści z zastosowania Scrum w branży IT

Odpowiednio wdrożona metodyka Scrum w projektach IT przyczynia się nie tylko do oszczędności czasu, wynikającej m.in. z precyzyjnego planowania działań operacyjnych i spotkań koordynacyjnych, ale również do uwolnienia potencjału samodzielności członków zespołu. Jednym z kluczowych elementów Scrum jest poleganie na indywidualnej inicjatywie i odpowiedzialności członków zespołu, co sprzyja efektywnemu realizowaniu zadań i rozwijaniu ich pełnego potencjału. Metoda cieszy się tak dużym uznaniem ze względu na liczne korzyści w branży IT, które z niej wynikają:

  • możliwość dostosowania oprogramowania wraz ze zmieniającymi się potrzebami klienta – poprawki można wnieść w trakcie kolejnej iteracji (Sprintu).
  • lepsza komunikacja między pracownikami – jest to możliwe dzięki codziennym spotkaniom oraz retrospekcjom po Sprincie. Możliwe jest wtedy wykrycie ewentualnych problemów (bugów) w oprogramowaniu.
  • swoboda działań – pomimo tego, że kierunek następnych działań jest omawiany jeszcze przed rozpoczęciem Sprintu, to w czasie samego Sprintu pracownicy mają względną niezależność.
  • niższe ryzyko opóźnień – jest tak, ponieważ ściśle określa się, z uwzględnieniem ewentualnych rezerw, czas na realizację konkretnych działań.

Tym samym zwinne metodyki wytwarzania oprogramowania mogą przynieść korzyści zarówno dla software house’u (usprawnienie działań prowadzonych przez zatrudnionych pracowników) oraz jego klienta biznesowego (otrzymanie produktu IT w krótszym czasie i po niższych kosztach).

Ponieważ w ramach Scrum zakłada się systematyczną współpracę z klientem, zlecający usługę może liczyć na wykonanie oprogramowania dopasowanego w pełni do jego potrzeb.

Jak zastosować Scrum, by osiągnąć lepsze wyniki projektowe?

W celu osiągnięcia sukcesu w projekcie IT przy wykorzystaniu metodyki, istotne jest skupienie się na rekrutowaniu specjalistów o różnych specjalnościach i zróżnicowanym poziomie doświadczenia. Umożliwi to wymianę wiedzy i doświadczeń między poszczególnymi członkami zespołu.

To jeszcze nie wszystko – warto również zachęcać członków Teamu do odwagi oraz asertywności. Metodyka Scrum powinna być daleka od autorytarnego zarządzania; warto kłaść nacisk na merytoryczny dialog z pracownikami. Podczas stosowania Scrum należy zwracać uwagę na backlog produktu – nie powinna być to odgórnie narzucona lista zadań, ale raczej efekt wspólnych ustaleń zespołu.

Jeśli chodzi o działanie po Sprincie, trzeba zadbać o jego odpowiednią retrospekcję, czyli ocenę. Dobrym pomysłem jest połączenie retrospekcji ilościowej (ocena poprzez mierniki liczbowe) i jakościowej. Konieczne jest przedyskutowanie ewentualnych trudności z każdym członkiem zespołu z osobna oraz znalezienie sposobów na lepszą efektywność w przyszłości.

Jakie są najważniejsze narzędzia do zarządzania projektami w Scrum

Zarządzanie projektem w Scrum wymaga odpowiednich narzędzi – bez nich zorganizowanie nawet doświadczonych pracowników w Scrum Team oraz osiągnięcie celów biznesowych może przynieść niemałe problemy. Oto niektóre spośród przydatnych narzędzi:

  • Jira
  • Monday.com
  • Asana.com
  • Podio.com
  • BaseCamp
  • Slack
  • Google Docs

Dlaczego warto sięgać po tego typu oprogramowanie? Cóż, dzieje się tak, ponieważ pozwalają one na analizę efektywności pracy oraz sprawną alokację dostępnych zasobów (finansowych, czasowych, ludzkich). Oprócz tego ważną rolę pełnią takie fizyczne akcesoria jak np. Scrum board, czyli tablica, na której przedstawia się aktualne zadania oraz postępy w realizacji prac.

To, jak będzie wyglądać oraz co zawierać Scrum board, jest ustalane przez cały zespół. Zadaniom, które znajdą się na diagramie, przypisywane są trzy statusy, tzn.: To Do, In Progress oraz Done. Na tablicy Scrum określa się m.in. to, co ma zostać wykonane podczas najbliższego sprintu.

Nie będzie przesadą stwierdzenie, że Scrum board to swego rodzaju drogowskaz dla zespołu. Pokazuje on, w jakim miejscu znajduje się team oraz co należy zrobić, by osiągnąć sukces, czyli sfinalizować projekt.

Przykład Scrum Board w Jira

Jak efektywnie planować sprinty w projekcie IT

Scrum to sposób działania ściśle oparty na wcześniej przyjętych założeniach – podobnie jak ma to miejsce w wielu innych rozwiązań z branży informatycznej, stawia się tu nacisk na właściwe przygotowanie całego procesu.

Taki stan rzeczy sprawia, że aktywności, jakie przyjmuje się w ramach metodyki, opiera się na koncepcji określanej jako tzw. "Time Boxes", co w języku angielskim oznacza tzw. przedziały czasowe. W związku z tym dzieli się Scrum na następujące zdarzenia (etapy, fazy):

  • Planowanie Sprintu. Jest to etap, w trakcie którego właściciel produktu zajmuje się ustaleniem, jakie powinny być cechy produktu/usługi, by efekt później podjętych prac odpowiadał wizji klienta biznesowego. Rzecz jasna, plan ten może ulec modyfikacjom w późniejszych etapach – taka jest bowiem, jak już wiesz, istota podejścia Scrum, tzn. iteracje w celu dostosowania produktu do wymogów stawianych przez dynamiczne otoczenie biznesowe. Właściciel produktu określa priorytety, jakie powinien mieć na uwadze zespół, a zespół zadaje ewentualne pytania, by uniknąć wszelkich nieporozumień w przyszłości.
  • Sprint. Sprint w IT to właściwy etap prac, w trakcie którego realizuje się wcześniej założone zadania. Warto przy tym pamiętać, że w trakcie Sprintu nie wprowadza się żadnych poważniejszych zmian; wszystko odbywa się w oparciu o wcześniej ustalony plan. Po zakończeniu zadań na tym etapie efekty pracy są prezentowane właścicielowi Produktu oraz Scrum Masterowi; omawia się wówczas również kwestie techniczne dotyczące zrealizowanego zakresu zadań. Czas trwania Sprintu jest precyzyjnie ustalany jeszcze na etapie planowania. Według ogólnych zasad wynosi 30 dni, ale, co oczywiste, jest to tylko teoria; rzeczywistość biznesowa jest na tyle różnorodna, że restrykcyjne trzymanie się tej zasady jest naprawdę trudne.
  • Daily Scrum. Jest to krótkie spotkanie (meeting), które powinno się odbywać każdego dnia w trakcie Sprintu. To właśnie wtedy Scrum Master powinien zadawać takie pytania jak: Co zespół zrobił w czasie realizacji Sprintu? Co zamierza zrobić w najbliższym czasie w celu realizacji Sprintu? Jakie przeszkody napotkano w osiągnięciu celu? Takie spotkania powinny mieć ściśle ustaloną agendę (plan spotkania), co pozwoli na skrócenie czasu ich trwania, a także zwiększy efektywność.
  • Przegląd Sprintu. Jest to spotkanie, które odbywa się po zakończeniu Sprintu. Cel takiego review jest bardzo prosty: omawia się na nim cechy tworzonego produktu oraz to, jakie postępy zostały dotąd poczynione.
  • Retrospektywa Sprintu. Po każdym zakończonym Sprincie trzeba poświęcić nieco czasu na refleksje. W tym właśnie celu członkowie zespołu Scrum spotykają się i omawiają najważniejsze kwestie dotyczące zarówno tworzonego produktu, jak i organizacji pracy. Na podstawie informacji wymienionych podczas tego spotkania definiuje się wnioski i planuje ulepszenia (rzecz jasna, jeśli takie ulepszenia są w ogóle potrzebne).

Sprinty to absolutna podstawa, jeśli chodzi o metodykę Scrum. Powtarzające się sprinty w IT pozwalają stworzyć oprogramowanie, a następnie dopasować je do wymogów klienta.

Aby móc sprawnie przeprowadzić sprint w Scrumie, konieczne jest odpowiednie zaplanowanie go. Jeszcze przed rozpoczęciem tego etapu trzeba z wyprzedzeniem ustalić takie kwestie jak zadania do wykonania, sposób ich realizacji oraz czas na wykonanie zadania. Konieczne jest przeprowadzenie – po zakończeniu sprintu – krótkiego przeglądu/podsumowania, które pokaże, co się udało zrealizować, a z czym są problemy.

Oprócz tego podczas planowania sprintu trzeba pamiętać o takich kwestiach jak np.:

  • ustalenie realnego do osiągnięcia celu,
  • zaplanowanie czasu na ewentualne poprawki – częstym błędem jest zaplanowanie zadań na 100% dostępnego czasu, ponieważ niemal na pewno pojawią się nieprzewidziane zdarzenia. W takiej sytuacji niezwykle łatwo o opóźnienia,
  • unikanie zbyt dużej szczegółowości – błędem jest planowanie zadań z dokładnością np. co do kwadransów.
Scrum w IT: Efektywne zarządzanie projektem zespołu programistycznego
Podsumowanie metodyki

Podsumowanie

Z uwagi na swoje zalety metodyka zwinna Scrum jest chętnie wykorzystywana m.in. w branży IT. Dzięki niej software house jest w stanie sprawnie realizować powierzone projekty, a jeśli pojawią się wcześniej nieprzewidziane trudności czy po prostu nowe wyzwania – dostosować się do nich podczas kolejnych iteracji.

Wdrożenie zarządzania projektami Scrum w IT nie jest niczym prostym. Wręcz przeciwnie – jest to dość poważne wyzwanie. Wymaga ono z jednej strony doświadczenia w branży programistycznej, z drugiej zaś – zaufania do innych członków zespołu, ich kreatywności oraz motywacji do osiągania założonych wcześniej celów biznesowych… oraz wytężonej pracy podczas sprintów.

autorem artykułu jest:

Justyna Łazarz

W InterSynergy pełnię rolę kierownika projektów. Moje zainteresowania koncentrują się na zwinnym zarządzaniu projektami i praktycznym zastosowaniu metodyk takich jak Scrum, Kanban i Lean, mających na celu optymalizację procesów w firmie.

Powiązane wpisy