Zarządzanie ryzykiem w metodykach zwinnych – co warto wiedzieć?
Nie istnieją projekty pozbawione ryzyka. Statystyki przytoczone przez Magazyn Zarządzanie Projektami pokazują, że więcej niż połowa projektów, szczególnie tych dużych, w ogóle się nie udaje. Wiele ambitnych przedsięwzięć nie kończy się w terminie lub przekracza budżet.
Jedną z przyczyn takiej sytuacji z pewnością jest niedostateczna uwaga, jaką poświęca się na identyfikację, ocenę i obsługę ryzyka lub nawet kompletny jej brak mimo wielu potencjalnych zagrożeń w realizacji złożonych projektów.
Dlatego też w dzisiejszym wpisie chciałbym się skoncentrować na zarządzaniu ryzykiem w ujęciu różnych metodologii projektowych, ze szczególnym naciskiem na metodyki zwinne – czyli jedno z najpopularniejszych teraz podejść do wytwarzania oprogramowania.
Jednak aby mieć punkt odniesienia, zacznijmy wpierw od tego, jak do tematu ryzyka podchodzą klasyczne metody projektowe.
Zarządzanie ryzykiem w tradycyjnych metodykach zarządzania projektem
Niezależnie od przyjętej metodyki projektowej, zarządzanie ryzykiem można rozumieć jako identyfikację, szacowanie i reagowanie na potencjalne i istniejące zagrożenia w trakcie cyklu życia projektu. Jest to proces ciągły, ale niezbędny, bez względu na to czy pracujemy kaskadowo czy zwinnie.
W metodykach klasycznych, takich jak PMBok czy Prince2, zarządzanie ryzykiem jest pojmowane jako dokładnie zdefiniowany i podzielony na kilka etapów cykl.
W obu przypadkach zazwyczaj mamy do czynienia z elementami takimi, jak aktualizowany na bieżąco rejestr ryzyk oraz plany reakcji, unikania czy minimalizacji zagrożeń. Na etapie planowania zakłada się również tworzenie rezerw finansowych i czasowych przeznaczonych na identyfikację zagrożeń.
Każda z tych faz wykorzystuje różne techniki i narzędzia wspomagające lub ułatwiające realizację funkcji, jaką dane stadium ma spełnić w całym procesie zarządzania ryzykiem. Natomiast sposobów adaptacji tych procesów w PMBoK i Prince2 jest tyle, ile projektów i menedżerów nimi kierujących 😉
Należy tutaj ponownie podkreślić, że zarządzanie ryzykiem w klasycznych metodach projektowych powinno być procesem ciągłym, powtarzanym na wszystkich etapach realizacji mimo ich kaskadowego modelu.
Agile a zarządzanie ryzykiem
Sprawa zupełnie inaczej przedstawia się w wypadku projektów prowadzonych w metodykach zwinnych. Zarządzanie ryzykiem jest poniekąd wpisane w filozofię Agile i stąd często traktowane jako element naturalny realizacji.
Przekonanie takie z pewnością może wynikać z tego, że podejście iteracyjne w projekcie pozwala na śledzenie postępów prac z dużą dokładnością, dając możliwość szybkiej reakcji i zmniejszając potencjalne koszty wystąpienia ryzyka.
Metodyki zwinne cechują się przy tym większą odpowiedzialnością całego zespołu za powodzenie projektu, zorientowaniem na działania oraz stałym uwidacznianiem zagrożeń na linii styku technologii i biznesu.
W zależności od rodzaju stosowanej metodyki zwinnej można wyróżnić odmienne podejścia do zarządzania ryzykiem: tzw. aktywne (AgilePM, DSDM) oraz lekkie (SCRUM, XP, Lean).
Rozważmy teraz główne różnice między tymi dwoma spojrzeniami na zagadnienie ryzyka.
Zarządzanie ryzykiem w Agile: podejście aktywne
Na pierwszy rzut oka podejście aktywne może do złudzenia przypominać sposoby znane z metodyk tradycyjnych.
Na początek potencjalne zagrożenia w projekcie powinny zostać odpowiednio zidentyfikowane i ocenione. Następnie należy zaplanować i przeprowadzić działania powiązane ze zidentyfikowanymi ryzykami , a potem także je monitorować. Poniżej prezentuję krótkie omówienie wszystkich tych etapów.
Etapy „Identyfikuj & Oceń”
W identyfikację ryzyk powinny być zaangażowane wszystkie osoby mające wpływ na projekt – od Product Ownera, poprzez Sponsorów i Zespół Developerski, a na Użytkownikach skończywszy.
Warto przy tym wykorzystać dobrze znane z metodyk tradycyjnych źródła z poprzednich projektów jak np. lessons learned, rejestry ryzyk, ale też techniki takie, jak np. warsztaty facylitowane. Jak w przypadku metodyk kaskadowych, w podejściu Active Agile powinniśmy przynajmniej na początku projektu zorganizować spotkanie, którego efektem będzie opracowanie listy zagrożeń.
Taka ocena ma ułatwić ustawienie priorytetów w zakresie zidentyfikowanych ryzyk oraz oszacować ich wagę. Jedną z najczęściej stosowanych praktyk jest także stosowanie iloczynu prawdopodobieństwa wystąpienia danego zagrożenia oraz konsekwencji, jeśli zagrożenie to się zmaterializuje.
W odróżnieniu od metodyk tradycyjnych, w aktywnym podejściu Agile zaleca się odwrót od czasochłonnej i kosztownej oceny ilościowej ryzyka. W tym miejscu można natomiast zastosować metodę estymacji często wykorzystywaną w metodykach zwinnych – Planning Poker. Ciekawy opis tej metody pracy można znaleźć np. na blogu ProCognita.
Etapy „Planuj & Działaj”
Planowanie działań umożliwia przygotowanie właściwych reakcji na konkretne, zidentyfikowane ryzyka w odpowiednim czasie. Taki proces może odbywać się podczas cyklicznych, dedykowanych spotkań zespołu. Tu możliwości działania są podobne, jak w metodach klasycznych: akceptacja, unikanie, łagodzenie oraz przeniesienie.
Na etapie realizacji zaplanowanych działań, w Agile możemy wyróżnić dwa podstawowe sposoby na włączanie tego procesu. Pierwszy to wydzielenie odpowiedniej ilości czasu na identyfikację, ocenę oraz reakcję na ryzyka w iteracji. Drugi to stworzenie dodatkowych user stories i potraktowanie ich analogicznie jak innych standardowych wymagań – co może oznaczać, że nadajemy im odpowiedni priorytet i estymujemy wartość.
Etap „Monitoruj”
Przedstawienie etapu monitorowania na końcu procesu w grafice nie powinno nas zwieść. Kontrola ryzyka powinna odbywać się w trybie ciągłym lub przynajmniej cyklicznie, w ustalonych przez zespół momentach.
Kluczowe zagrożenia, przedstawione np. w postaci rejestru ryzyk, powinny być widoczne dla zespołu przez cały okres trwania projektu i aktualizowane po każdym sprincie. Zapewnia to ciągły i stosunkowo mało kosztowny mechanizm monitorowania.
Zmiany w ryzykach mogą być również przedstawiane w postaci tzw. Risk Burndown Chart, czyli wykresu pokazującego status ryzyk na przestrzeni kolejnych iteracji.
Zarządzanie ryzykiem: podejście lekkie
Podczas gdy zarządzenie ryzykiem w Active Agile może do złudzenia przypominać metodyki klasyczne, tzw. „podejście lekkie” stawia na niwelowanie zagrożeń poprzez częste dostawy produktów – czyli np. kolejnych fragmentów kodu lub funkcjonalności, a także regularny kontakt z klientem.
W stale zmieniającym się otoczeniu projektu pozwala to na eliminowanie czynników ryzyka na bieżąco. Takie podejście w znacznym stopniu opiera się o założenie, że zyski z zarządzania ryzykiem są nieadekwatne do nakładów potrzebnych, by taki proces prowadzić.
Zamiast tego, w podejściu lekkim eliminacja zagrożeń następuje w oparciu o procesy zwinne, takie jak:
- Codzienne spotkania, czyli tzw. daily zespołu pozwalają identyfikować i eliminować typowe ryzyka związane ze sprintem.
- Retrospekcje sprintów wpływają na usprawnianie procesów oraz eliminowanie zagrożeń.
- Praca z Backlogiem, zwłaszcza tzw. „pielęgnowanie” pozwala na unikanie ryzyk związanych z błędną interpretacją wymagań.
- Przyrostowe dostarczanie produktu, a także jego regularne prezentacje dla użytkowników końcowych pozwalają na szybką weryfikację, czy tworzone funkcjonalności spełniają oczekiwania docelowych odbiorców.
- Code review, czyli eliminowanie błędów i dbanie o „czystość” kodu na poziomie deweloperskim.
W podejściu lekkim zarządzanie ryzykiem nadal jest obecne, choć na pierwszy rzut niewprawne oko mogłoby odnieść wrażenie, że nie jest to w pełni świadomy proces.
Podejście to ma jedną zasadniczą zaletę. O ile zmiany zakresu lub ryzyka z nim związane w metodyce klasycznej lub Active Agile mogą w skrajnych przypadkach powodować wzrost kosztów i opóźnienia, o tyle podejście lekkie nie zna takich ograniczeń. Dzieje się tak, bo zagrożenia oraz powiązane wymagania nie są specyfikowane na początku procesu, za to klient w trakcie realizacji może doprecyzowywać je ze sprintu na sprint, dodatkowo zgłaszając uwagi na koniec każdej iteracji.
Zamiast podsumowania, czyli ujarzmiając ryzyko w sposób zwinny
Mimo niewątpliwych zalet zwinnego zarządzania ryzykiem, należy wspomnieć, że podejścia te nie zawsze w pełni mogą uwzględnić zagrożenia wynikające np. ze zmian w finansowaniu przedsięwzięcia czy sytuacji rynkowej. Tymi aspektami nie da się zarządzać poprzez krótkie iteracje czy dostarczanie wartości dla klienta.
Jednak bez względu na które z powyższych podejść zdecydujemy się w naszym projekcie, jednego możemy być pewni. Świadome zarządzanie ryzykiem pomoże nam ograniczyć lub nawet wyeliminować zagrożenia w realizacji, zwłaszcza te związane z technologią czy zakresem prac.
Jako specjaliści od realizacji złożonych projektów technologicznych, zawsze pomagamy w doborze odpowiedniej metodologii, aby zminimalizować potencjalne zagrożenia na drodze do realizacji celów naszych klientów.
Opieramy się przy tym na certyfikatach i doświadczeniu w pracy w najpopularniejszych metodykach projektowych – zarówno tych klasycznych – kaskadowych, takich jak Prince2, ITIL, IPMA czy PMP, czy zwinnych – od AgilePM po Professional Scrum Master. Choć oczywiście najbliżej nam do podejścia Active Agile, chętnie doradzamy i stosujemy inne metodyki, jeśli widzimy, że są one korzystniejsze dla konkretnego projektu. Ale to już temat na inny post 😉
Zapraszamy do kontaktu – dobierzemy nie tylko właściwe technologie dla Twojego projektu, ale również metodykę jego realizacji.