Budując dom pozornie potrzebujemy jedynie “budowlańców” albo “ekipy”. Jednak każda osoba naznaczona doświadczeniem grubszego remontu przyzna, że nie chciałaby mieszkać w lokalu, który projektował parkieciarz, a elektrykę kładł hydraulik. Podobnie jest w IT.
Na pozór mamy deweloperów, (oby) analityków i testerów oraz managerów. Ale jeśli przyjrzeć się dokładniej to, szczególnie w dużych organizacjach mamy całą armię ról, które dbają o to, żeby projekty nie tylko ruszyły z miejsca, ale też działały sprawnie po ich wdrożeniu do klienta. Role to pojawiają się na różnych etapach cyklu życia oprogramowania (SDLC – Software Development Life Cycle) i często mają bezpośredni wpływ na siebie nawzajem.
Dziś na warsztat bierzemy pięć kluczowych stanowisk:
- Release Managera,
- Service Level Managera,
- Program Managera,
- Project Portfolio Managera,
- Project Managera.
Jakie mają zadania? Gdzie się przecinają? Wszystko poniżej.
Czym jest SDLC i dlaczego nas to interesuje?
SDLC (Software Development Life Cycle), czyli Cykl Życia Oprogramowania, to proces, który określa etapy tworzenia oprogramowania. Od wstępnej koncepcji, do jego wdrożenia i utrzymania (niezawodnego działania na co dzień). To jasno określone etapy, które pomagają zespołom projektowym w planowaniu, projektowaniu, tworzeniu, testowaniu i wdrażaniu oprogramowania w sposób efektywny i pozwalający ocenić jego sukces.
Poszczególne role, które omawiamy poniżej (np. Release Manager czy Service Level Manager) – mogą pojawiać się zarówno na wszystkich, jak i tylko na wybranych etapach.
Release Manager i jego rola w SDLC
Wdrożenie nowej wersji systemu bez odpowiedniego planu to przepis na chaos i konkretne kłopoty. Tu wchodzi do gry Release Manager, który odpowiada za to, żeby nowe funkcje i poprawki były wdrażane płynnie i bezpiecznie. (Release to po polsku wdrożenie, czyli nic innego jak opublikowanie nowej wersji oprogramowania; może to być aktualizacja aplikacji, nowa funkcja w systemie albo poprawka błędów).
Planowanie, testowanie i skoordynowanie release’ów to codzienność pracy Release Managera. To de facto Project Manager, którego projektami są wydania kolejnych wersji danej aplikacji, czy platformy. Release Manager dba, aby aktualizacje nie psuły istniejących funkcji i nie powodowały przestojów (albo incydentów). Współpracuje zarówno z zespołami deweloperskimi, jak i operacyjnymi (np. z Service Level Manager’em).
Zakres obowiązków Release Managera:
- Planowanie i koordynacja wdrażania nowych wersji oprogramowania i aktualizacji.
- Zarządzanie środowiskami testowymi i produkcyjnymi. Która wersja oprogramowania jest na ktorym środowisku. Czy w tym samym momencie nie dzieje się inne wdrożenie albo czyszczenie baz danych. Czy usługi do wdrożenia są w odpowiednim stanie np. przetestowane i uznane za tzw. “stabilne”.
- Minimalizowanie ryzyka awarii i przestojów podczas wdrażania (unika tzw. downtime systemu).
- Komunikacja z zespołami deweloperskimi, testowymi i operacyjnymi oraz tzw. interesariuszami (najczęsciej managerami innych działów). Raportowanie postępów przygotowania oraz realizacji wdrożenia.
- Pojawia się na różnych etapach rozwoju oprogramowania, od planowania i rozwoju po samo wdrożenie, gdzie już gra główne skrzypce.
Co taki Release Manager musi umieć?
- Znać się na procesie wdrażania oprogramowania (np CI/CD, DevOps, ITIL, Change Management, Configuration Management, testowanie).
- Dobrze planować, koordynować i zarządzać ryzykiem.
Last, but not least – musi jego (albo ją) cechować odporność na stres i akceptacja pracy poza standardowymi godzinami pracy. Release’y bardzo często dzieją się w nocy albo weekendy. Kojarzycie te komunikaty z waszej apki bankowej, że przez weekend nie możesz się zalogować – to wtedy robią release. I pół biedy jak wszystko pójdzie sprawnie. Gorzej, jak padnie połowa systemów, a wy macie godzinę, aby wszystko odzyskać.
Co w SDLC robi Service Level Manager?
Kiedy produkt IT jest już na rynku (po wdrożeniu i wydaniu pierwszej oficjalnej wersji), klienci oczekują, że będzie działać szybko, stabilnie i niezawodnie, zgodnie z ustalonymi standardami jakości i dostępności systemu. Ten etap to faza utrzymania usług informatycznych (Maintenance) i to właśnie tutaj, cały na biało, pojawia się Service Level Manager.
To osoba, która pilnuje, żeby te obietnice były dotrzymywane. Definiuje, negocjuje i monitoruje SLA (Service Level Agreements) – umowy dotyczące poziomu świadczenia usług, np. czasu dostępności systemu (np. może być niedostępny maksymalnie 30 minut w godzinach 9-18 od poniedziałku do piątku i do 2ch godzin poza tymi godzinami), czy czasu reakcji na awarię (np. jak zgłosisz problem, tzw. ticketa, musisz uzyskać pierwszą odpowiedź w ciągu 30 minut). Współpracuje z zespołami operacyjnymi i monitoruje wydajność usług, dbając o to, żeby wszystko było zgodne z ustaleniami.
To czym się zajmuje na co dzień:
- Zapewnia że system/produkt/usługa działa zgodnie ze zdefiniowanymi SLA.
- Analizuje wydajność tych systemów, identyfikuje problemy gdy coś nie działa jak powinno oraz planuje działania naprawcze.
- Często (bo w naprawdę wielkich wdrożeniach są to osobne role) zarządza incydentami i problemami dotyczącymi systemów, za które odpowiada. Incydent to zgodnie z ITIL (Information Technology Infrastructure Library – chyba najpopularniejsza metodyka mówiąca jak z głową zarządzać utrzymaniem systemów) nieplanowana przerwa w usłudze albo obniżenie jej jakości. Po ludzku: incydent jest wtedy, kiedy system nie działa albo działa inaczej niż oczekiwano.
- Raportuje o poziomie usług oraz satysfakcji klientów z tych usług
- Często współpracuje z Release Managerem, który to rozwija te usługi i systematycznie wdraża ich najnowsze wersje.
- Często przejmuje produkt IT, który jest wynikiem projektu IT od Project albo Program Managera.
Co Service Level Manager musi umieć?
- Przede wszystkim znać się na produkcie, który ma w swoich usługach.
- Przynajmniej podstawowo znać standard ITIL (Information Technology Infrastructure Library).
- Analizować dane i raportować, ale też przydadzą się dobre umiejętności negocjacyjne i ogarnianie stresu w sytuacjach, gdy system nie działa jak powinien.
A co w kontekście SDLC robi Program Manager?
Gdy firma realizuje duże inicjatywy, często składają się one z wielu powiązanych projektów. Ktoś musi spojrzeć na całość i upewnić się, że wszystkie elementy układanki pasują do siebie – tym właśnie zajmuje się Program Manager.
Jego główne zadanie to koordynacja kilku projektów, które razem mają osiągnąć większy cel biznesowy. Na przykład, jeśli firma wdraża nową platformę e-commerce, mogą być w to zaangażowane osobne projekty dotyczące interfejsu użytkownika, systemu płatności, magazynowania i analityki danych. Może koordynować prace np. kilku release i project managerów tak, aby to, co wytworzą ich zespoły dobrze zgrywało się czasowo, technicznie i biznesowo.
Na co dzień Program Manager:
- Zapewnia, że wszystkie projekty w programie są skutecznie skoordynowane i prowadzą do osiągnięcia głównego celu biznesowego (zwykle wyższego, niż nawet sam cel projektu).
- Monitoruje zależności i potencjalne konflikty między projektami oraz dba o ich priorytetyzacji.
- Zarządza ryzykiem i usuwa przeszkody, które mogłyby spowolnić realizację programu.
- Współpracuje z Project Managerami, Release Managerem, Service Level Managerem i zespołami technicznymi, aby harmonogramy i wdrożenia były dobrze zsynchronizowane.
- Raportuje postępy i wyniki programu do interesariuszy biznesowych oraz Project Portfolio Managera, który podejmuje strategiczne decyzje o inwestycjach w projekty.
Co musi cechować Program Managera?
- Doskonała organizacja (i tu nie przesadzam, dużo jest do koordynacji i ogarniania na takim poziomie) i umiejętność łączenia kropek. Program Manager musi rozumieć zarówno perspektywę biznesową, jak i operacyjną
- Znajomość metodyk zarządzania programami, takich jak MSP czy SAFe (dla środowisk Agile).
- Zdolność do podejmowania decyzji w warunkach niepewności – programy to złożone inicjatywy, w których często trzeba reagować na zmiany nie mając pełnego spojrzenia na szczegóły każdej inicjatywy.
- Dobre umiejętności komunikacyjne i negocjacyjne – Program Manager musi dogadywać się zarówno z zespołami technicznymi, jak i z kadrą zarządzającą (częściej z nimi).
- Zrozumienie budżetowania i zarządzania zasobami oraz talentami – Program Manager często decyduje o alokacji środków i ludzi między projektami.
Project Portfolio Manager i jego rola w SDLC
W każdej dużej firmie prowadzonych jest wiele projektów jednocześnie. To tak zwane portfolio projektów. Ku zgrozie wielu osób nie wszystkie projekty w portfelu są równie ważne i ktoś musi decydować, gdzie warto przyznać potrzebny budżet, zasoby i czas, a gdzie trzeba je okroić, lub nawet całkowicie zablokować. Inaczej mogłoby się zdarzyć, że firma przeznaczyła najlepszych ludzi i nieograniczone środki do projektu stworzenia nowych emoji do wewnętrznego komunikatora, a równocześnie nie działa jej strona internetowa, bo nie ma komu jej naprawić (wszelkie podobieństwa do prawdziwych osób i sytuacji przypadkowych).
Tym właśnie zajmuje się Project Portfolio Manager. To osoba, która dba o to, żeby inwestycje w projekty były zgodne ze strategią firmy i przyniosły realną wartość biznesową. To osoba, która mówi “wam damy tyle, ile chcieliście, bo ma to najwięcej sensu”, “wam damy trochę mniej, niż prosicie”, “wasz projekt musimy zamrozić”.
To czym się zajmuje na co dzień:
- Ocenia całe portfolio projektów, które z nich najlepiej wpisują się w cele biznesowe lub strategiczne firmy.
- Priorytetyzuje projekty, przydziela budżet i decyduje, które inicjatywy dostaną zielone światło.
- Dzięki raportom PMów, Program Managerów i narzędzi do analizy danych, monitoruje postępy projektów i sprawdza, czy przynoszą oczekiwane korzyści – jeśli nie, może zdecydować o ich zmianie lub zatrzymaniu.
- Pomaga Program Managerom i Project Managerom w negocjacji zasobów, budżetu i talentów z zarządem trzymającym kasę.
- Tworzy raporty i prezentuje wyniki zarządowi, pomagając podejmować decyzje o dalszych inwestycjach.
Co taki Project Portfolio Manager musi umieć?
- Patrzeć szeroko i myśleć jak inwestor czyli rozumieć strategię biznesową i finansową.
- Podejmować decyzję o wysokiej stawce – zarządza budżetami i zasobami, decydując, które projekty mają największy sens.
- Zarządzać priorytetami i analizowanie ryzyka – portfolio projektowe to ciągła gra w balansowanie zasobami i eliminowanie zagrożeń.
- Współpracować zarówno z zarządem, jak i z zespołami projektowymi i ciągle być między młotem a kowadłem sprzecznych interesów.
- Znajomość frameworków zarządzania portfelem projektów, takich jak MoP (Management of Portfolios) czy standardy PMI.
Jak wszystkie te role wpływają na siebie nawzajem?
Wyobraźmy sobie dużą firmę IT, która rozwija swoją platformę e-commerce:
- Project Portfolio Manager decyduje, że kluczowe są projekty poprawiające wydajność systemu i te priorytetyzuje, budując z nich program.
- Program Manager koordynuje kilka zespołów projektowych, żeby nowy program dla tej aplikacji/systemu powstały na czas.
- Release Manager dba o to, żeby wdrożenia nowych funkcji były bezpieczne i zgodne z harmonogramem zbudowanym przez Program Managera.
- Service Level Manager monitoruje, czy po wdrożeniu wszystko działa zgodnie z obietnicami dla klientów.
A gdzie tutaj miejsce na Project Managera?
To on zazwyczaj rozpoczyna cały cykl – buduje pierwszą wersję systemu, platformy czy rozwiązania. Gdy produkt istnieje, pałeczkę przejmują Release, Service Level, Program i Portfolio Managerowie, którzy go rozwijają, stabilizują i optymalizują. Można powiedzieć, że Project Manager przeciera szlak, który oni potem utwardzają i prowadzą dalej.
Mamy nadzieję, że teraz wszystko to jest (przynajmniej trochę) jaśniejsze.
Autorka tekstu:
Judyta Wolak – Technical Program Manager, Trenerka, Wykładowczyni oraz Entuzjastka Agile.