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.
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.:
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:
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.
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ą:
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.
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.
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:
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.
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):
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.:
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.