Metodyka kaskadowa: kompleksowy przewodnik

Atlassian Autor: Atlassian
Przeglądaj tematy

Jeśli zarządzaniem projektami zajmujesz się już jakiś czas, z pewnością zdarzyło Ci się spotkać z metodyką kaskadową. To nieco przestarzała metoda tworzenia oprogramowania mająca swoje korzenie jeszcze w latach 70. XX wieku.

W procesie kaskadowym przed przejściem do każdego kolejnego etapu projektu konieczne jest ukończenie etapu poprzedzającego. To dosyć sztywny model liniowy. Metoda ta w dużym stopniu bazuje na wszystkich wymaganiach i podejściu typu „skończ jedno, zanim zaczniesz drugie”.

Jeśli takie podejście nie obiło Ci się o uszy, nie przejmuj się. Przyjrzymy się tutaj metodzie kaskadowej i zasadzie jej działania.

Czym jest metodyka kaskadowa?

Metodyka kaskadowa to dobrze ugruntowany przepływ pracy w zarządzaniu projektami. Proces ten przepływa kaskadowo przez pięć stopni (wymagania, projektowanie, wdrożenie, weryfikacja i utrzymanie).

Twórcą tej metody jest inżynier komputerowy Winston Royce, który opisał ją w swoim artykule z 1970 roku na temat tworzenia oprogramowania. Co prawda Royce nigdy nie posłużył się nazwą „kaskada” do opisu swojego modelu, jednak to właśnie jemu przypisuje się stworzenie liniowego, rygorystycznego systemu zarządzania projektami.

W przeciwieństwie do innych metod, takich jak Agile, model kaskadowy nie dopuszcza żadnej elastyczności. Nie można zacząć kolejnego etapu, dopóki nie ukończy się poprzedniego. Zespół nie może iść naprzód, dopóki nie rozwiąże ewentualnych problemów. Ponadto, jak wskazano w wytycznych zawartych w naszym przewodniku wprowadzającym do zarządzania projektami, zespół nie może usuwać błędów ani zajmować się długiem technicznym, jeśli przeszedł już do kolejnego etapu projektu.

Jakie etapy zakłada model kaskadowy?

Metoda kaskadowa obejmuje pięć etapów: wymagania, projektowanie, wdrożenie, weryfikację i utrzymanie. Przyjrzyjmy się zatem pięciu etapom kaskadowego modelu tworzenia oprogramowania i sprawdźmy, dlaczego tak ważne jest ukończenie każdego z nich, zanim przejdzie się do następnego.

Wymagania

Na etapie wymagań określa się, co powinien robić system. Ustala się wówczas zakres projektu — od zobowiązań biznesowych po potrzeby użytkownika. Pozwala to uzyskać ogólny zarys całego projektu. Wymagania powinny określać:

  • zasoby potrzebne do realizacji projektu;
  • do kogo i na jakim etapie będą przypisane poszczególne elementy prac;
  • oś czasu dla całego projektu z uwzględnieniem czasu trwania poszczególnych etapów;
  • szczegóły dotyczące poszczególnych etapów procesu.

Jednak jak twierdzi Steven Zeil, profesor informatyki na Uniwersytecie Old Dominion, wymagania te „mogą wahać się od bardzo abstrakcyjnych do szczegółowych specyfikacji matematycznych”. Wynika to z faktu, że wymagania mogą nie nakreślać dokładnie sposobu wdrożenia, ponieważ tym zajmują się programiści na późniejszych etapach.

Projekt

Po zebraniu wszystkich wymagań czas przejść do etapu projektowania. Na tym etapie projektanci opracowują rozwiązania spełniające wymagania. Do zadań projektantów na tym etapie należą:

  • opracowanie harmonogramów i kamieni milowych projektu;
  • dokładne określenie, co ma być dostarczone;
  • stworzenie projektów i/lub szablonów tych dostarczanych elementów.

Dostarczane elementy mogą mieć postać oprogramowania lub fizycznego produktu. Projektanci mogą na przykład ustalić architekturę systemu i przypadki użycia oprogramowania. W przypadku fizycznego produktu ustalają konkretną specyfikację wymaganą do jego produkcji.

Implementacja

Po sfinalizowaniu i zatwierdzeniu projektu nadchodzi czas jego wdrożenia. Projektanci przekazują specyfikacje twórcom odpowiedzialnym za realizację.

Aby zrealizować projekt, twórcy muszą:

  • opracować plan wdrożenia;
  • zebrać wszelkie dane lub badania konieczne do przygotowania kompilacji;
  • przypisać konkretne zadania i przydzielić zasoby poszczególnym członkom zespołu.

Na tym etapie może nawet okazać się, że pewnych części projektu nie da się wdrożyć. Jest to ogromny problem, ponieważ trzeba się wówczas cofnąć i powrócić do etapu projektowania.

Weryfikacja

Gdy programiści napiszą kod do projektu, przychodzi czas na zapewnienie jakości. Ważne, aby testy obejmowały wszystkie przypadki użycia i pozwalały zapewnić użytkownikom przyjazne środowisko. W końcu nie chcesz udostępnić klientom produktu zawierającego błędy.

Etap zapewniania jakości obejmuje również takie elementy, jak:

  • napisanie przypadków testowych;
  • udokumentowanie wszelkich błędów wymagających naprawy;
  • testowanie kolejno poszczególnych aspektów;
  • ustalenie wskaźników QA, które mają być śledzone;
  • uwzględnienie zróżnicowanych scenariuszy przypadków użycia i środowisk.

Obsługa

Po wydaniu produktu programiści prawdopodobnie będą musieli uporać się z błędami. Klienci będą powiadamiać dział wsparcia technicznego o pojawiających się problemach. Wówczas zadaniem zespołu będzie obsługa tych wniosków i wydanie nowszych wersji produktu.

Jak widać, każdy etap jest zależny od etapu poprzedzającego. Nie pozostaje zbyt wiele miejsca na błędy między poszczególnymi etapami ani w trakcie ich trwania.

Jeśli na przykład interesariuisz zechce dodać wymaganie, gdy projekt jest na etapie weryfikacji, konieczne będzie ponowne przeanalizowanie całego projektu. Może to oznaczać konieczność wyrzucenia wszystkiego do kosza i rozpoczęcia od nowa.

Zalety metodyki kaskadowej

Korzyści płynące ze stosowania metodyki kaskadowej sprawiły, że stała się ona modelem przepływu pracy w projektach, których wynik jest sztywno określony. Przeprowadzone w 2020 roku badanie wykazało, że 56% specjalistów zajmujących się projektami korzystało w minionym roku z tradycyjnych modeli kaskadowych.

Kilka korzyści płynących z planowania według modelu kaskadowego:

  • Przejrzysta struktura projektu: Rygorystyczne planowania sprawia, że model kaskadowy praktycznie eliminuje zamieszanie. Masz wyraźnie sformułowany cel końcowy, do którego dążysz.
  • Ustalone koszty: Dzięki rygorystycznemu planowaniu koszty oraz czas potrzebne na realizację projektu są znane z wyprzedzeniem.
  • Łatwiejsze monitorowanie: Ocena postępów przebiega szybciej, ponieważ jest mniej zadań interdyscyplinarnych. Można nawet zarządzać całością projektu na wykresie Gantta dostępnym w Jira Software.
  • Powtarzalność procesu: Jeśli projekt się powiedzie, można wykorzystać proces po raz kolejny do innego projektu o podobnych wymaganiach.
  • Kompleksowa dokumentacja projektowa: W metodyce kaskadowej tworzysz szablon i prowadzisz rejestr historyczny projektów, dzięki czemu zyskujesz wyczerpujący ogląd projektu.
  • Lepsze zarządzanie ryzykiem: Intensywne planowanie z wyprzedzeniem zmniejsza ryzyko. Pozwala to programistom uchwycić problemy projektowe jeszcze przed napisaniem kodu.
  • Wyższy poziom odpowiedzialności: Zespoły biorą odpowiedzialność za prace na każdym etapie procesu. Każdy etap ma jasno sformułowany zestaw celów, kamieni milowych i harmonogramów.
  • Większa dokładność wykonywania pracy przez osoby niedoświadczone: Model kaskadowy pozwala mniej doświadczonym członkom zespołu lepiej włączyć się w proces.
  • Mniej opóźnień z powodu dodatkowych wymagań: Zespół z wyprzedzeniem zna potrzeby, dlatego nie ma ryzyka napływania dodatkowych próśb od interesariuszy lub klientów.

Ograniczenia metodyki kaskadowej

Model kaskadowy nie jest pozbawiony ograniczeń, dlatego wiele zespołów produktowych decyduje się na stosowanie metodyki Agile.

Metoda kaskadowa pozwala zdziałać cuda w przypadku przewidywalnych projektów, ale kompletnie nie sprawdza się w projektach obarczonych wieloma zmiennymi i niewiadomymi. Przyjrzyjmy się również innym ograniczeniom planowania kaskadowego:

  • Dłuższy czas dostarczania: Dostarczanie produktu końcowego może potrwać dłużej niż zwykle ze względu na nieelastyczny proces wymuszający wykonywanie prac krok po kroku, w przeciwieństwie do iteracyjnego modelu, takiego jak Agile lub Lean.
  • Ograniczona elastyczność sprzyjająca innowacji: Każde nieoczekiwane zdarzenie może oznaczać koniec projektu realizowanego zgodnie z tym modelem. Jeden problem może spowodować cofnięcie całego projektu o dwa kroki.
  • Ograniczone możliwości uzyskania opinii klientów: Po ukończeniu etapu wymagań klienci nie mają dostępu do projektu.
  • Mnóstwo wniosków o funkcje: Klienci mają niewiele do powiedzenia podczas realizacji projektu, dlatego po jego wdrożeniu może pojawić się mnóstwo wniosków o zmiany, na przykład o dodanie nowych funkcji do istniejącego kodu. Może to spowodować dalsze problemy z utrzymaniem i wydłużenie czasu wdrożenia.
  • Odsuwanie terminu: Jeśli na jednym z etapów pojawi się istotny problem, wszystko zostaje wstrzymane. Nikt nie może ruszyć naprzód, dopóki zespół nie rozwiąże problemu. Rozwiązanie problemu może nawet wymagać cofnięcia się do poprzedniego etapu.

Poniższa ilustracja przedstawia projekt realizowany według podejścia kaskadowego. Jak widać, projekt jest podzielony na sztywne bloki czasowe. Taka sztywność sprzyja kreowaniu środowiska, w którym programiści, menedżerowie produktu i interesariusze żądają przydziału maksymalnej ilości czasu na każdy blok, ponieważ w przyszłości może nie być możliwości jego powtórzenia.

Przykład wydawania w modelu kaskadowym | Atlassian Agile Coach

Czym różni się model kaskadowy od metodyki zarządzania projektami Agile?

Zarówno metodyka Agile, jak i model kaskadowy prowadzą w zarządzaniu projektami do osiągnięcia tego samego celu końcowego: idealnej realizacji projektu. W modelu kaskadowym w trakcie planowania przypisuje się zespoły oddzielnie do poszczególnych etapów, natomiast metodyka Agile umożliwia interdyscyplinarną współpracę między wieloma etapami projektu. Zamiast sztywnych kroków, zespoły trzymają się cyklu planowania, wykonywania i oceny, powtarzając go w miarę realizacji projektu.

Manifest Agile tak wyjaśnia korzyści, które przynosi model Agile w porównaniu z modelem kaskadowym:

  • Ludzi i interakcje od procesów i narzędzi
  • Działające oprogramowanie od szczegółowej dokumentacji
  • Współpracę z klientem od negocjacji umów
  • Reagowanie na zmiany ponad realizację założonego planu

Jeśli poszukujesz narzędzi obsługujących model zarządzania projektami Agile, a jednocześnie służących do realizacji tego samego celu końcowego, który przyświeca modelowi kaskadowemu, warto rozważyć system Jira Software. Jest on najlepiej dostosowany do obsługi projektów Agile i pomaga w następujących zadaniach:

Narzędzia Atlassian wykorzystujące metodykę Agile wspierają cykl rozwoju produktu. Istnieją nawet wskaźniki Agile do śledzenia. Jira Work Management pozwala realizować cały proces Agile. Wykorzystuje formularze zgłoszeniowe do śledzenia pracy wykonywanej przez wewnętrzne zespoły oraz zapewnia powtarzalny proces obsługi wniosków.

Te produkty Jira integrują się natywnie z aplikacją, zapewniając ujednolicone środowisko pracy, a tym samym szybszą pracę zespołów.

Metodyka Agile w zarządzaniu projektami

Metodykę kaskadową od dawna stosuje się w zarządzaniu projektami, ale często nie jest to właściwy wybór dla współczesnych twórców oprogramowania. Metodyka Agile zapewnia większą elastyczność.

Oto dlaczego większość zespołów woli proces Agile:

  • Zdolność przystosowania się do zmian: jeśli pojawi się jakaś zmiana, zespół będzie mógł lepiej na bieżąco się do niej dostosować. Sztywność metodyki kaskadowej utrudnia radzenie sobie z przeszkodami.
  • Ciągły obieg informacji zwrotnych: nieustanne doskonalenie wymaga obiegu informacji zwrotnych. Dzięki metodyce Agile można zbierać informacje zwrotne od interesariuszy podczas procesu i odpowiednio go iterować.
  • Efektywniejsza komunikacja: w procesie Agile zespoły współpracują ze sobą. Metodyka kaskadowa to seria przekazywania wyników pracy między różnymi zespołami, co utrudnia skuteczną komunikację.


W metodyce Agile przydaje się narzędzie do zarządzania projektami, takie jak Jira Software. W projektach Agile można też używać szablonu zarządzania projektami. Członkowie zespołu mogą planować i dostarczać projekty oraz współpracować przy nich i przekazywać raporty na ich temat za pomocą jednego narzędzia. Narzuca to wszystkim wspólny kierunek działań w każdym projekcie oraz usprawnia zarządzanie projektami.

Metodyka kaskadowa — często zadawane pytania

Dla kogo najlepsza jest metodyka kaskadowa?

Metodyka kaskadowa najlepiej sprawdza się w przypadku kierowników projektów pracujących nad projektami o następującej charakterystyce:

  • Mniej złożone cele: metodykę kaskadową najlepiej stosować w projektach, w których nie ma skomplikowanych wymagań.
  • Przewidywalne wyniki: metodyka kaskadowa działa najskuteczniej w przypadku projektów powtarzalnych i sprawdzonych.
  • Zmniejszone prawdopodobieństwo niekontrolowanej zmiany zakresu projektu: odpowiedni do metodyki kaskadowej jest projekt, w którym klienci prawdopodobnie nie wprowadzą nowych wymagań w ostatniej chwili.

Dla kogo najlepsza jest metodyka kaskadowa?

Metodyka Agile jest idealna w przypadku zwinnych zespołów z nastawieniem na iterację, takich jak:

  • Zespoły interdyscyplinarne: zespół ludzi o różnych umiejętnościach, które umożliwiają pracę nad różnymi aspektami projektu. Takie osoby są elastyczne i nastawione na współpracę.
  • Samoorganizujące się zespoły: autonomiczne zespoły, które w małym stopniu potrzebują prowadzenia za rękę. Są w stanie kontrolować element losowości w projekcie i świetnie rozwiązują problemy. Dzięki takiemu sposobowi myślenia skuteczniej panują nad wynikami.
  • Start-upy i małe firmy: odnoszą korzyści, stosując podejście „działaj szybko i niekonwencjonalnie”. Mogą więc szybko ponosić porażki, uczyć się i działać coraz skuteczniej.

Metodyka Agile działa dobrze również w projektach zorientowanych na klienta, w których jego wkład pozwala na iterację.

Jakie czynniki należy wziąć pod uwagę przed wdrożeniem określonego podejścia do zarządzania projektami?

Wybierając metodykę do wdrożenia w zarządzaniu projektami, należy wziąć pod uwagę cztery główne czynniki: złożoność projektu, cele organizacyjne, fachową wiedzę zespołu i zaangażowanie zainteresowanych.

Przyjrzyjmy się każdemu z nich:

  • Złożoność projektu: metodyka kaskadowa może pomóc w rozbiciu większych, bardziej złożonych projektów na mniejsze zestawy oczekiwań i celów. Ze względu na swoją sztywność nie radzi sobie jednak dobrze z niewiadomymi lub zmianami. Metodyka Agile jest lepsza w przypadku złożonych projektów z wieloma zmiennymi.
  • Cele organizacyjne: co organizacja chce osiągnąć? Czy chce wprowadzać innowacje, czy też woli utrzymać status quo? Podejście Agile jest najlepsze, jeśli organizacja chce usunąć bariery informacyjne. Zespoły wykonują swoje zadania, w większym stopniu opierając się na współpracy i korzystając z większej autonomii.
  • Fachowa wiedza zespołu: metodyka Agile to doskonały wybór w przypadku zespołu złożonego ze specjalistów w różnych dziedzinach i posiadających różne umiejętności. Jeśli członkowie zespołu polegają w dużym stopniu na jednym zestawie umiejętności, metodyka kaskadowa może okazać się lepsza.
  • Zaangażowanie interesariuszy: jeśli interesariusze zamierzają wykazywać się większym zaangażowaniem, najlepiej sprawdzi się metodyka Agile, ponieważ pozwala na ciągłe pozyskiwanie informacji zwrotnych oraz iterację.