Metodyka Hybrydowa: połącz Waterfall z Agile i skorzystaj z zalet obu metodyk

maj 19, 2021 | Metodyka testów

Wytwarzanie oprogramowania przypomina wirtualną grę w bilard, w której zaplanowane działania zderzają się z rzeczywistymi wymaganiami klienta, możliwościami technologicznymi i nieoczekiwanymi trudnościami technicznymi. Dlatego wciąż poszukujemy najlepszej metodyki pracy,  która pozwalałaby na przewidywalny rozwój oprogramowania, a zarazem byłaby wystarczająco elastyczna, aby podążać za potrzebami współczesnego biznesu. Odpowiedzią na to wyzwanie jest metodyka hybrydowa, łącząca w sobie zalety podejścia Waterfall i Agile.

Każdy, kto choć raz grał w bilard, mógł zauważyć, że po pierwszym rozbiciu bil, ogólny plan na grę trzeba korygować odpowiednio do tego, w jakim miejscu aktualnie znajduje się prowadząca kula. Wytrawni gracze są w stanie zaplanować wszystkie sekwencje posunięć z wyprzedzeniem.  Jednak nawet oni muszą czasem rozegrać spotkanie niezgodnie z wcześniej zaplanowaną kolejnością. Wszystko zależy od tego, jaką pozycję po kolejnym uderzeniu zajmie biała kula. Planowanie kaskadowe jest jak próba przewidzenia wszystkich ruchów na stole bilardowym. W metodykach zwinnych dopuszczamy korektę planu lub inny kierunek działania w zależności od rozwoju sytuacji.

Waterfall, czyli zaplanowane od początku do końca

Podstawowe pytanie, które zadajemy sobie, planując nowy projekt IT, brzmi: Jakiego podejścia do procesu wytwarzania oprogramowania będziemy używać? Rozwiązanie tej kwestii wiąże się zazwyczaj z wybraniem jednej z dwóch metodyk – Waterfall lub Agile.

Waterfall to jedna z pierwszych metodyk, która próbowała systematyzować i ułatwiać pracę twórców oprogramowania poprzez działanie zgodnie z ustalonym harmonogramem zadań. Z czasem ewoluowała, poprzez uaktualnienia i modyfikacje. W efekcie powstały modele V, a następnie W, uwzględniające testowanie równolegle do innych działań.

Waterfall jest modelem kaskadowym, czyli składa się z etapów, które kolejno po sobie następują. Schemat zawiera kilka elementów: Zebranie i uporządkowanie wymagań biznesowych, analizę, projektowanie systemu, programowanie, testowanie i walidację a na końcu wdrożenie. Pożądane założenia i budżet określane są zazwyczaj na samym początku wytwarzania oprogramowania. Możliwe jest również określenie precyzyjnej daty zakończenia przedsięwzięcia. Metodyka Waterfall jest zatem dla tych, którzy cenią sobie pewność kolejnych działań i trzymanie się przejrzystego konceptu. 

Rys. 1. Etapy pracy w modelu kaskadowym Waterfall / Soflab

Co to znaczy Agile?

Programowanie zwinne Agile jest metodyką otwartą na zmiany, która nie ma zamkniętego i silnie ustrukturyzowanego planu działania. Charakteryzuje się elastycznością – możliwością wdrażania zmian, reagowania na akcję i sterowania budżetem w trakcie trwania projektu.

W Agile pracę dzielimy na krótkie cykle – sprinty. Są one od siebie niezależne. W czasie trwania każdego sprintu należy spełnić określoną listę priorytetowych zadań. Wszystkie działania wpisujące się w metodykę Agile prowadzone są tak, aby osiągnąć sprecyzowany cel, dopasowując działania do bieżącej potrzeby i możliwości. 

Agile to tak naprawdę cała grupa metodyk zwinnych, które obejmują różne sposoby zwinnego wytwarzania oprogramowania, np. najpopularniejszy Scrum czy powszechne XP, Lean, Kanban, DSDM itd. Ogólnym schematem towarzyszącym działaniu metodyki Agile jest bieżące tworzenie, wdrażanie pomysłów, testowanie rozwiązań i jednoczesne poprawianie kolejnych części oprogramowania. Podejście to zadowoli zatem klientów ceniących sobie elastyczność i możliwość wprowadzania szybkich reakcji na pojawiające się zmiany.

Jakie są najistotniejsze różnice między Waterfall a Agile?

Waterfall to praca zgodna z ustalonym harmonogramem działań w projektach podzielonych na kolejne etapy. Jest to liniowy model działania ze ściśle określonymi założeniami i budżetem, a także datą zakończenia całego projektu. Przyjęte na początku założenia są konsekwentnie realizowane aż do samego końca. Dopiero wtedy następuje weryfikacja dotycząca tego, czy projekt jest zgodny z pożądanym wyobrażeniem.

Istotną różnicą podejścia zwinnego (Agile) w stosunku do podejścia kaskadowego jest to, że właściciel może decydować o kierunku rozwoju w trakcie prowadzenia prac. Odbywa się to na podstawie obserwowania postępów oraz sprawdzania zgodności z czynnikami, które dochodzą lub zmieniają się w trakcie.

Metodyka hybrydowa

Skoro każda zwinna metodyka polega na dobieraniu najefektywniejszego narzędzia i najlepszego sposobu realizacji projektu IT, dlaczego by nie dołączyć pożądanych rozwiązań z Waterfall do Agile? Wykorzystać kilka praktyk lub ceremonii, które się sprawdzają i stworzyć z nich własną metodę do wytwarzania oprogramowania. Elastycznie skompilowana metodyka Agile, łącząca w sobie elementy Scrum, Kanban lub Waterfall daje szersze spektrum narzędzi do realizacji projektu. De facto taka sytuacja ma miejsce już od dawna, na co wskazuje poniższa grafika: 

Rys. 2. Jaki model wytwarzania jest aktualnie stosowany w twoim projekcie?
Źródło: HP online survey of 601 development and IT professionals

Metodyka hybrydowa jest stosowana w dużej części obecnie prowadzonych projektów. Adaptuje i modyfikuje Scruma na potrzeby firmy.

Dane dotyczącego popularności posługiwania się poszczególnymi metodykami ukazuje przedstawiony raport o stanie Scruma, opublikowany przez ScrumAlliance (dane z ponad 90 krajów). Dokument pokazuje tendencje wzrostu korzystania z projektów hybrydowych. Okazało się, że w ostatnich latach coraz mniej ankietowanych używało „czystego” Scruma, bez jego modyfikacji. W roku 2017 spadek był ogromny – aż o połowę w stosunku do roku 2016. Jednocześnie w tym samym okresie znacząco wzrósł odsetek osób posługujących się mieszanymi metodykami.

Rys. 3. Metodyka hybrydowa – tendencje wykorzystania metodyk w projektach.
Źródło grafiki: https://www.monolit-it.pl/2018/02/Water-Scrum-Fall

Gdzie może sprawdzić się metodyka hybrydowa?

Realizacja krótkoterminowego projektu o ustalonym budżecie i jasno określonych wynikach

Dzięki poszczególnym właściwościom, czyli ustalonej strukturze w modelu Waterfall oraz dynamicznemu działaniu i wykorzystaniu pracy zespołowej w modelu Agile, możesz podzielić koncept na mniejsze fragmenty, jednocześnie zachęcając zespół do ściślejszej współpracy z klientem i, co najważniejsze, możesz dostarczyć produkt spełniający oczekiwania nabywców.

Realizacja krótkoterminowego projektu o ograniczonym ryzyku i z dużym gronem interesariuszy

Jeśli zlecenie musi zostać ukończone w krótkim terminie, a ryzyko ma być ograniczone do minimum, podejście Waterfall pozwoli Ci skutecznie zapobiec powstaniu potencjalnego niebezpieczeństwa i dopilnować terminu ukończenia scenariusza. Model Agile dostarczy natomiast informacji zwrotnych od zainteresowanych. W podejściu hybrydowym możesz łatwo połączyć ze sobą obie te potrzeby.

Metodyka hybrydowa – model Water-Scrum-Fall

Metodyka hybrydowa przybiera wiele form i trudno opisać jej wszystkie wersje. Skupię się zatem na jednej z najpopularniejszych kombinacji: Water-Scrum-Fall. Początkowo nazwa ta odnosiła się do wdrożeń, które charakteryzowały się nieudanym wprowadzeniem Scruma. Czy dziś nadal to określenie ma pejoratywną konotację? Nie, ponieważ teraz Water-Scrum-Fall oznacza pełnoprawną metodykę, mimo że jej reguły nie zostały oficjalnie spisane. Jest jedną z możliwości skutecznego wytwarzania oprogramowania. 

Water-Scrum-Fall możemy opisać jako połączenie klasycznego podejścia (tzw. Waterfall) oraz zwinnego procesu wytwarzania oprogramowania (Agile), gdzie w fazie implementacji najczęściej wykorzystuje się metodykę Scrum.

1. Etap „WATER” – faza ustaleń biznesowych, projektowania i planowania. Obejmuje ona: analizę przypadku biznesowego i procesu biznesowego, zbieranie i dokumentowanie wysoko poziomowych wymagań, projektowanie architektury IT,  dekompozycję  procesu  biznesowego  na  wspierające  go  systemy  informatyczne oraz szczegółowe zdefiniowanie interfejsów międzysystemowych docelowej architektury.

2. Etap „SCRUM” – faza implementacji. Zakłada szczegółową analizę systemową i produkcję oprogramowania – czynności są realizowane z zastosowaniem metodyk Agile, w oparciu o produkty etapu Water oraz elementów występujących po jego zakończeniu.

3. Etap „FALL” – faza testów i ich dostarczania w ramach określonych wdrożeń. Rozpoczyna się w momencie doręczenia oprogramowania po zakończeniu etapu Scrum; przewiduje testy systemowe, integracyjne i akceptacyjne. Elementem końcowym jest wdrożenie.

Rys. 4. Metodyka hybrydowa – połączenie Waterfall z Agile / Soflab

Water-Scrum-Fall nie zawsze bywa ostateczną wizją prowadzenia projektu w firmie. Często postrzega się go jako etap pośredni, czyli moment przejścia między metodyką kaskadową a metodyką zwinną. Przedsiębiorstwa celują w posługiwanie się strukturami zwinnymi, dlatego korzystanie ze struktur klasycznych często wynika z ograniczeń i stanu stagnacji firmy. Water-Scrum-Fall wielokrotnie zostaje nazywany metodyką niedojrzałą, niekompletną. 

Metodyka hybrydowa Water-Scrum-Fall świetnie zagospodarowuje nam obszary do łatwej zmiany, pozostawiając te najbardziej problematyczne aspekty tradycyjnemu, kaskadowemu podejściu. W pierwszej kolejności możemy wykorzystać ją w procesie implementacji, który jest fragmentem procesu stosunkowo łatwo adaptującym metodyki zwinne. Mimo wszystko traci on wiele ze swych zwinnych zalet. 

Implementacja zmian bywa trudna w fazach takich jak:

  • dokumentowanie procesu biznesowego,
  • kompletowanie wymagań,
  • projektowania architektury,
  • przeprowadzanie testów oprogramowania.

Dlatego w takim przypadku ich realizacja odbywa się ponownie za pomocą modelu kaskadowego (Waterfall).

Jak uczynić metodykę Water-Scrum-Fall bardziej zwinną?

Fazę zwinnej realizacji projektu w modelu Water-Scrum-Fall możemy próbować poszerzać w dwóch kierunkach:

− poprzez  skracanie  fazy „Water-”, minimalizując liczbę analiz i projektowania jeszcze przed rozpoczęciem budowy oprogramowania (tym samym włączając analizę do zwinnej fazy realizacji);

− poprzez eliminowanie lub skrócenie fazy „-fall”, za pomocą ciągłego dostarczania i częstego wdrażania oprogramowania do środowisk testów akceptacyjnych i produkcyjnych.

Zarówno jedna, jak i druga opcja pogłębiają zwinności metodyk w projekcie. To, w jakim stopniu dana zmiana zostanie zintensyfikowana, zależy od ograniczeń konkretnej organizacji. Jeżeli celem przedsiębiorstwa jest dalsza transformacja i osiągnięcie większej zwinności w metodykach, to należy uwzględnić obowiązkowy punkt planowania projektu – stworzenie dodatkowego planu zarządzania granicami pomiędzy trzema fazami „Water-Scrum-Fall”. W efekcie powinniśmy osiągnąć maksymalną zwinność w projektach. 

Water-Scrum-Fall jako metodyka hybrydowa może być zatem jedynie przystankiem do całkowitej zmiany metodyki w firmie.

Metodyka hybrydowa okiem testera – słabe strony w projektach opartych na Water-Scrum-Fall

Water-Scrum-Fall nie jest idealny. Mimo tego, że wpływają na niego najlepsze praktyki z różnych metodyk, to sama kompilacja też ma wiele wad. Podstawowy problem wiąże się z wydzieleniem poza sprinty zespołu zajmującego się testami bezpieczeństwa, testami funkcjonalnymi i wydajności. Takie rozwiązanie niesie ze sobą kilka wad, ponieważ często prowadzi do realizacji zbędnych zadań i słabej dynamiki pracy nad defektami. Jest również przyczyną opóźnionego reagowania oraz braku opinii na temat produktu.

Kolejną wadą projektów realizowanych w Water-Scrum-Fall są problemy wdrożeniowe. Kultura pracy w tej metodyce powoduje, że wytracamy prędkość, z jaką wprowadzane są zmiany. W związku z tym wdrożenia przebiegają nieregularnie i z mniejszą częstotliwością.

Dalsze problemy wynikają z tego, że z góry zaplanowane etapy determinują wszystkie decyzje dotyczące projektu. Zespoły przyzwyczajone do elastycznych warunków pracy mogą czuć się ograniczone restrykcyjnymi ramami i nie będą w pełni zaangażowane w proces zbierania czy udoskonalania wymagań. 

Metodyki hybrydowe w tym Water-Scrum-Fall wymagają od menedżerów projektu dużych kwalifikacji w zakresie definiowania i delegowania sprintów. W organizacjach niedostosowanych do podejścia zwinnego istnieje ryzyko, że menedżerowie nie będą posiadali  odpowiednich kompetencji. Pracowników przydziela się do danego projektu, jednak ich zrozumienie idei funkcjonowania sprintu może być nikłe, bo dotychczas się z nią nie spotkali. O ile mają umiejętności związane z metodyką Waterfall, o tyle agilowy model pracy może przysparzać im już wielu kłopotów. Obrane podejście hybrydowe może także generować zbyt wiele zmiennych, które doprowadzą do niepożądanych opóźnień i przekroczenia budżetu. 

Jeśli nie metodyka hybrydowa, to co innego?

Przed epoką metodyk hybrydowych, w odpowiedzi na wyzwania i problemy Klientów związane ze skalowaniem projektów został opracowany SAFe®. Są to sprawdzone, zintegrowane praktyki stosowania zwinnych metod Lean-Agile tworzenia oprogramowania w skali dużych organizacji. Skalowalność i budowa modułowa pozwalają dowolnej organizacji na zastosowanie SAFe® w celu uzyskania lepszych wyników biznesowych, poprawy satysfakcji i zaangażowania pracowników.

Ciągły rozwój metodyk wytwarzania oprogramowania

Branża IT przeobraża się niezwykle szybko. Zmieniają się tym samym metodyki wytwarzania oprogramowania. Wydaje się całkiem prawdopodobne, że w przyszłości powstanie nowe podejście do całego procesu, które popularnością dorówna Waterfall i Agile. 

Równie prawdziwe może okazać się to, że Water-Scrum-Fall doczeka się oficjalnych podręczników teoretyczno-praktycznych, ściśle spisanych reguł i zainteresowania organizacji certyfikujących całe podejście. Jakkolwiek ułoży się przyszłość metodyk stosowanych w branży IT, kluczem do skutecznej i efektywnej pracy niezmiennie pozostawać będzie jedno: podejście musi być dopasowane do specyfiki naszej organizacji, projektu i klienta. 

Jeśli chcesz dowiedzieć się więcej na temat testów w metodykach hybrydowych i dzięki temu zyskać podejście do testów, które bezproblemowo pogodzi potrzeby planowania i kontroli ze zwinnym wytwarzaniem oprogramowania, to skontaktuj się z nami i umów na bezpłatną konsultację.

Polecamy również