Centrum wiedzy o technologiach i pracy w IT
waterfall

Metodyka Waterfall a Scrum

Ostatnia aktualizacja 2 czerwca, 2023

Model kaskadowy (z angielskiego Waterfall model) jest jednym z najstarszych podejść do zarządzania projektami w tworzeniu oprogramowania. W latach 70. XX wieku Winston W. Royce opisał model kaskadowy w artykule pt. “Zarządzanie procesem tworzenia dużych systemów oprogramowania”, jednak zastrzegł, że model liniowy może bywać zawodny.

Można powiedzieć, że były to prorocze słowa. Szybki rozwój technologiczny wymusił zmiany w zarządzaniu projektami i w 2001 roku, z inicjatywy 17 programistów, powstał Agile Manifesto, który dał początek zwinnym metodom pracy. Pod parasolem Agile’a kryje się m.in. Scrum. Zdobył on popularność ze względu na swoją adaptacyjność i skupienie na dostarczaniu wartości dla klienta w krótkich iteracjach.

Nie udało się zapisać Twojej subskrypcji. Spróbuj ponownie.
Udało się! Widzimy się niebawem – newsletter wysyłamy w każdy wtorek

Otrzymuj za darmo unikalne poradniki, dane i wiedzę o pracy w IT – dostarczane co tydzień

Klikając “Zapisz mnie” wyrażasz zgodę na otrzymywanie e-maili od redakcji, a także ofert partnerów oraz akceptujesz naszą Politykę prywatności.

Waterfall – cechy charakterystyczne

Waterfall to sekwencyjny proces projektowy, w którym poszczególne etapy są realizowane jeden po drugim, tworząc wizualizację procesu przypominającą wodospad.

Zasady działania tego modelu są proste i jasne – fazy projektu występują jedna po drugiej, w stałej kolejności, tworząc kaskadowy ciąg etapów.

Proces ten można zobrazować na schemacie:

Analiza wymagań
↓
Projektowanie
↓
Implementacja
↓
Testowanie
↓
Utrzymanie

Analiza wymagań

Na tym etapie zespół projektowy gromadzi wszystkie informacje i wymagania od klienta. Obejmuje to rozmowy z klientem, a także pracę analityków systemowych. Efektem tej fazy jest zrozumienie celów biznesowych, które ma realizować oprogramowanie oraz zebranie wszystkich wymagań funkcjonalnych i niefunkcjonalnych.

Projektowanie

Na podstawie zgromadzonych wymagań, zespół projektowy tworzy architekturę systemu. Zazwyczaj obejmuje to tworzenie modeli danych, interfejsów użytkownika, diagramów systemu oraz planów implementacji różnych funkcji. W efekcie powstaje szczegółowy plan, który będzie podstawą do napisania kodu.

Implementacja

Na tym etapie programiści zaczynają pisać kod na podstawie projektu. Zwykle realizuje się go w małych częściach, które są stopniowo integrowane z całością. Na koniec tej fazy powinno powstać działające już oprogramowanie.

Testowanie

Po implementacji przeprowadza się testy, które mają na celu wykrycie błędów i niedociągnięć. Obejmują one przede wszystkim:

  • testy jednostkowe,
  • testy integracyjne,
  • testy systemowe,
  • testy akceptacyjne.

Na tym etapie testerzy sprawdzają, czy oprogramowanie działa zgodnie z założeniami.

Utrzymanie

Po dostarczeniu oprogramowania wchodzi ono w fazę utrzymania. Obejmuje to wsparcie dla użytkowników, naprawianie błędów, dodawanie nowych funkcji oraz aktualizację oprogramowania do zmieniających się wymagań biznesowych lub technologicznych.

Jednym z głównych ograniczeń modelu kaskadowego jest fakt, że każdy etap musi być zakończony przed rozpoczęciem kolejnego, co sprawia, że zmiany są trudne do wprowadzenia po rozpoczęciu procesu. Dlatego jest często zastępowany przez bardziej elastyczne metodyki, np. Scrum.

Ponadto model Waterfall wymusza skupienie na planowaniu i dokumentacji, a nie na dostarczaniu wartości, co może prowadzić do opóźnień w dostawach.

Dalsza część tekstu znajduje się pod wideo:

Scrum

Scrum jest elastycznym, iteracyjnym modelem pracy, który skupia się na dostarczaniu wartości dla klienta w krótkich cyklach zwanych sprintami. W przeciwieństwie do modelu kaskadowego, Scrum pozwala na wprowadzanie zmian i adaptację do nowych wymagań podczas trwania projektu. Umożliwia skupienie się na ciągłym doskonaleniu, dlatego jest idealny dla projektów wymagających szybkiego reagowania na zmiany.

Proces w Scrumie zawiera następujące elementy:

  • Planowanie Produktu (Product Backlog) – Właściciel Produktu (Product Owner) tworzy i priorytetyzuje listę funkcji, które mają być zaimplementowane w produkcie.
  • Planowanie Sprintu (Sprint Planning) – zespół Scrum wybiera elementy z Product Backlogu do pracy w nadchodzącym sprincie (zazwyczaj 2-4 tygodnie). W tym czasie określane są cele sprintu.
  • Sprint – przez ustalony okres zespół pracuje nad wybranymi zadaniami.
  • Codzienne spotkania (Daily Scrum / Stand-up) – każdego dnia zespół spotyka się na krótkim 15-minutowym spotkaniu, aby omówić postępy i ewentualne przeszkody.
  • Przegląd Sprintu (Sprint Review) – na końcu sprintu zespół prezentuje ukończone funkcje Product Ownerowi i zbiera informacje zwrotne.
  • Retrospektywa Sprintu (Sprint Retrospective) – zespół omawia, co poszło dobrze, co można poprawić i jakie zmiany wprowadzić w następnym sprincie.
  • Następny Sprint – proces zaczyna się od nowa z nowymi elementami z Product Backlogu.

Wady Scruma

Scrum również ma swoje wyzwania. Jest trudny do nauczenia i wymaga silnego przywództwa oraz samodzielnych zespołów. Co warto mieć na uwadze, chcąc stosować tę metodykę?

  • Wysokie wymagania co do zaangażowania – Scrum wymaga intensywnej komunikacji i adaptacji, co może być obciążające.
  • Potrzeba samodzielnych zespołów – metodyka Scrum działa najlepiej z samodzielnie decydującymi zespołami, co może być trudne w hierarchicznych organizacjach.
  • Zmiana roli klienta – klienci muszą być aktywnie zaangażowani, co nie zawsze jest możliwe lub pożądane.
  • Brak konkretnej dokumentacji – Scrum może nie generować wystarczająco szczegółowej dokumentacji dla niektórych sektorów.
  • Trudność w szacowaniu – precyzyjne szacowanie czasu i kosztów może być trudne z powodu iteracyjnej natury Scruma.

Czytaj więcej:

Wypalenie zawodowe zbiera żniwo w IT

ChatGPT może być pomocny w walce z hakerami

Design – co warto wiedzieć przed wejściem do branży

HTML a różne ustawienia tekstu

Formaty papieru, kartek, muzyki, zdjęć, wideo

Total
0
Shares
_podobne artykuły