- Zarządzanie projektami
Metodyki zarządzania projektami IT — przegląd najpopularniejszych rozwiązań
Liczba modeli, metodyk i podejść do zarządzania projektem sięga niemal 8,5 tysiąca — jak więc wybrać sposoby zarządzania projektami, które najlepiej będą pasować do danego produktu i twojego zespołu?
Metodyka zarządzania projektami jest zbiorem zasad, pozwalających na osiągnięcie celu projektu. Wśród najbardziej popularnych z nich znajdują się Waterfall i metodyki zwinne i to właśnie nim warto przyjrzeć się bliżej. Popularność użycia danych modeli wynika głównie z rodzaju projektu, w jakich są stosowane i z powszechności ich zastosowania, jednak, według raportu Pulse of the Profession 2018, prawie 71% organizacji stosuje podejście Agile.
Spis treści
Waterfall
Waterfall przez wiele lat był jednym z podstawowych modeli zarządzania projektami IT. Jego nazwa związana jest z liniowym sposobem realizowania zadań (analogia do spływającej wody), bowiem każdy z etapów pracy rozpoczynany jest po zakończeniu poprzedniego. Waterfall prezentuje więc tradycyjne podejście do zarządzania projektami, gdzie wszystkie etapy zaprojektowane są od początku do końca.
Podejście Waterfall sprawdzi się więc w projektach, które są powtarzalne, gdzie wszystko jest dokładnie opisane i znamy wymagania, które zasadniczo nie ulegną zmianie. Jeśli podobne projekty były realizowane w przeszłości i wiemy dokładnie, jaki rezultat chcemy osiągnąć, to warto zdecydować się na takie zarządzanie projektem IT. Jeśli praca w modelu Waterfall jest dobrze zorganizowana, podejście to sprawdzi się również w budowaniu i skutecznym dostarczaniu innowacyjnych produktów.
Agile – popularne podejście do zarządzania projektami IT
Zwinne podejście do wytwarzania oprogramowania uznawane jest za najpopularniejszy sposób pracy nad projektami IT. Agile jest zestawem zasad i wartości, zebranych w 2001 roku w formie Manifestu Agile. Jego główną cechą, z punktu widzenia osoby nadzorującej projekt, jest elastyczność, co ułatwia zarządzanie zakresem projektu i reagowanie na zmiany. Pozwala to więc na szybkie rozpoczęcie pracy, bez konieczności czekania na dokładną specyfikację, zawierającą poszczególne kroki. Dzięki temu zespół może znacznie szybciej dostarczyć gotowy produkt lub jego użyteczne części, co ułatwia zweryfikowanie założeń i dostosowanie zakresu kolejnych prac.
Wśród najbardziej znanych frameworków Agile i metod realizacji projektów znajdują się Scrum, programowanie ekstremalne i Kanban.
1. Scrum — jeden z frameworków Agile, pozwalający rozwiązywać złożone problemy. Projekt w Scrumie realizowany jest w oparciu o iteracyjne podejście do planowania i pracy. Realizacja zadań podzielona jest więc na sprinty (każdy może trwać od 1 do 4 tygodni), których wynikiem jest działający produkt (początkowo w ograniczonym zakresie), co pozwala na elastyczność biznesową i inżynierską.
Po kilku iteracjach można więc otrzymać MVP, czyli gotowy produkt z podstawowymi funkcjonalnościami, przynoszący wartość biznesową, który nadal może być rozwijany. Scrum jest więc chętnie stosowany w długoterminowych, złożonych projektach. Warto wspomnieć, że MVP może być również tworzony z użyciem podejścia Waterfall.
Podstawowe zasady Scrum opisane są w Scrum Guide, który określa jego główne filary, jak przejrzystość, inspekcja i adaptacja oraz główne role w zespole scrumowym. W skład zespołu wchodzą:
- Product owner — tzw. właściciel produktu, którego główną rolą jest planowanie pracy i ustalanie priorytetów. Wiąże się z tym konieczność ustalenia celu produktu oraz stworzenie tzw. product backlog, czyli zbioru wszystkich elementów produktu, które przyniosą mu wartość. Osoba ta reprezentuje więc klienta końcowego i inne strony, komunikując ogólną wizję produktu.
- Developerzy — to nie tylko programiści, ale również testerzy czy projektanci. Grupa ta odpowiedzialna jest za wybór odpowiednich zadań z backlogu i zaplanowanie pracy tak, by osiągnąć cel sprintu.
- Scrum master — osoba odpowiedzialna za proces tworzenia produktu i upewnienie się, że każdy w zespole rozumie zasady Scruma. Scrum master dba więc o efektywność zespołu.
2. Programowanie ekstremalne (Extreme Programming, XP) — celem tego frameworku jest dostarczenie wysokiej jakości oprogramowania bez utrudniania życia programistom. Jego głównymi wartościami są komunikacja, prostota, informacja zwrotna, odwaga i szacunek. XP opiera się na wzajemnie powiązanych praktykach tworzenia oprogramowania, wśród których znajdują się m.in. gra planistyczna, częste wydania, testowanie, metafory czy programowanie w parach.
Zastosowanie wspomnianych praktyk i skupienie się na jak najlepszym ich wykorzystaniu pozwala zespołom na zwiększenie efektywności przy realizacji projektu. Dzięki temu otrzymujemy wyższej jakości kod i stabilne systemy z mniejszą liczbą błędów. Zaangażowanie klienta w proces rozwoju produktu ułatwia dostarczenie dokładnie tego, czego oczekiwał.
3. Kanban — metoda zarządzania przepływem pracy, oparta na wizualizacji pracy, maksymalizacji wydajności i ciągłym doskonaleniu. Nazwa metody pochodzi z języka japońskiego i tłumaczona jest jako wizualna tablica.
Sama tablica Kanban reprezentuje rzeczywisty stan przepływu pracy wraz z uwzględnieniem ryzyka i specyfikacji. Taki system ułatwia śledzenie postępów i wyłapywanie wąskich gardeł. Wszystkie zespoły zaangażowane w projekt mogą w czasie rzeczywistym monitorować swoje postępy i decydować, na czym skupić się teraz i co robić dalej. To pozwala na bardziej owocną pracę pomiędzy członkami zespołu, a tym samym sprawniejszą realizację zadań.
Do głównych zalet metody Kanban należą stała informacja o przebiegu pracy, możliwość dostosowania do zmieniających się priorytetów czy lepsza przewidywalność.
Inne popularne metodyki zarządzania projektami
Project Management Body of Knowledge (PMBoK)
PMBoK nie jest sposobem zarządzania projektami samą w sobie, a przewodnikiem po dobrych praktykach, opracowanym przez międzynarodową organizację zrzeszającą kierowników projektów. Określa on ramy standardów, procesów, najlepszych praktyk, terminologii i wytycznych, stanowiących branżowe podstawy zarządzania projektami. PMBoK odnosi się do pięciu etapów procesu zarządzania projektem: inicjowanie, planowanie, realizacja, kontrolowanie i procesy końcowe.
PRojects IN Controlled Environments (PRINCE2)
Jest to metodyka kontrolowanego zarządzania projektami, dzieląca projekty na wiele etapów, z których każdy ma swój własny plan i procesy do wykonania. PRINCE2 daje zespołom większą kontrolę nad zasobami oraz możliwość skutecznego ograniczania ryzyka, najlepiej sprawdza się więc w dużych, przewidywalnych projektach korporacyjnych. PMBoK i PRINCE2 często występują jako uzupełniające się wzajemnie podejścia wodospadowe.
Rapid Application Development (RAD)
Kluczowym celem podejścia RAD jest przyspieszenie całego procesu tworzenia oprogramowania. Metodyka ta opiera się na czterech krokach: planowanie, projektowanie prototypu, budowanie i implementacja. Procesy projektowania powtarzają się do momentu, gdy produkt będzie spełniał wszystkie wymagania. RAD sprawdza się wyłącznie, gdy priorytety są dobrze zaplanowane i ograniczone, więc najlepsze efekty przyniesie w małych i średnich projektach.
Feature-Driven Development (FDD)
FDD to iteracyjne podejście przeznaczone dla dużych zespołów, korzystających z programowania obiektowego. Technika ta składa się z pięciu faz — pierwsza polega na zbudowaniu ogólnego modelu, następnie tworzy się listę funkcjonalności, planuje każdą z nich, a ostatnie dwie fazy obejmują planowanie według funkcjonalności i tworzenie według nich. Plusem takiego rozwiązania jest możliwość jednoczesnej pracy wielu zespołów, jednak sukces w dużej mierze zależy od kierownika i liderów projektu.
Zarządzanie projektami informatycznymi — jak wybrać odpowiednią metodykę?
Każdy projekt jest inny, zatem nie ma jednego uniwersalnego podejścia do zarządzania projektami IT. Przy wyborze metody ważny jest jej dobór do projektu i do środowiska, w którym pracuje zespół, a nie odwrotnie.
Ważne jest zwrócenie uwagi na poszczególne aspekty danej metody — od początku wszystko powinno być zrozumiałe dla każdego członka zespołu, a każdy element metodyki powinien być stosowany zgodnie z przeznaczeniem, dzięki czemu etapy tworzenia projektu będą przebiegać płynnie. Warto więc zaangażować zespół w proces podejmowania decyzji, oparty na ich znajomości metod zarządzania projektami i doświadczeniu z różnymi technikami.
Niezbędna jest tutaj rola project managera czy osoby odpowiedzialnej za realizację projektów. Zdanie zespołu jest ważne, jednak równie istotne jest zebranie informacji na temat najefektywniejszych sposobów używanych przez daną organizację przy wcześniejszych projektach. Ułatwi to oszacowanie czasu i korzyści wynikających z zastosowania danej metodyki.