Opozycja między Agile a Waterfall nie jest tak bardzo teoretyczna, jak praktyczna. Wybór metodologii, która nie pasuje do twojego projektu, w najlepszym przypadku spowolni jego rozwój, a w najgorszym wyśle go na listę „Największe porażki roku”. Elastyczny i kaskadowy projekt rozwoju projektu (Agile i Waterfall odpowiednio) — jest jedną z najpopularniejszych metodologii zarządzania.
Po zbadaniu cech twojego projektu i uzbrojeniu się w wiedzę z tego artykułu, będziesz w stanie pewnie odpowiedzieć na następujące pytanie: „Co lepiej pasuje do mojego biznesu — Agile czy Waterfall?”
Agile — system idei i „elastycznych” zasad zarządzania projektami, które stanowią podstawę dla innych popularnych metod, takich jak Scrum, Kanban i innych. Kluczową zasadą jest rozwój poprzez krótkie iteracje (cykle), a na koniec każdego z tych cykli klient (użytkownik) otrzymuje działający kod lub produkt.
Waterfall — metoda zarządzania projektami, która implikuje sekwencyjny porządek od jednego etapu do drugiego, bez pomijania czegokolwiek i bez powrotu do wcześniejszych etapów.
Co to jest Agile
Jak inne popularne metodologie rozwoju i zarządzania projektami, Agile pojawił się stosunkowo niedawno w USA. W przeciwieństwie do CPM i CCPM, grupa ludzi, 17 amerykańskich specjalistów IT z Utah, odpowiada za powstanie tej elastycznej metodologii rozwoju. Wraz z „Manifestem elastycznego rozwoju oprogramowania”, gdzie po raz pierwszy wprowadzono termin „Agile”, wymyślili 12 zasad Agile-development.
Istota tych zasad sprowadza się do następujących kluczowych zasad, które definiują charakter elastycznej metody rozwoju:
- Ludzie i współpraca są ważniejsi niż procesy i narzędzia.
- Działający produkt jest ważniejszy niż szczegółowa dokumentacja.
- Współpraca z klientem jest ważniejsza niż negocjowanie warunków umowy.
- Gotowość do stawienia czoła zmianom jest ważniejsza niż podążanie za początkowym planem.
Agile stał się podstawą dla całego zbioru elastycznych metod, takich jak Scrum, Lean i
programowanie ekstremalne (XP), aby wymienić tylko kilka.
Scrum — metodologia elastycznego rozwoju oparta na Agile, która opiera się na „sprintach” — okresach od 1 do 4 tygodni, po których powinna zostać uzyskana działająca wersja produktu.
Lean — metoda, która wyrosła z systemu produkcyjnego Toyoty. Jej fundamenty to filozofia ciągłego doskonalenia na wszystkich poziomach organizacji, gdzie jednym z kluczowych pojęć jest — wartość (za co klient jest gotów zapłacić).
Extreme Programming (XP) — jedna z metod Agile, w której ważną rolę odgrywa okresowe planowanie z udziałem klienta. Pozwala to na odkrycie wszystkich wad poprzedniej integracji, priorytety zadań oraz pożądane funkcje produktu z uwzględnieniem życzeń klienta.
Zalety i wady metody Agile
Zalety to:
- Krótkie i jasne iteracje — cykle rozwoju trwają od 2 tygodni do 2 miesięcy, po których klient otrzymuje działającą wersję produktu.
- Wysoki stopień zaangażowania wykonawców, menedżerów i klientów.
- Działający produkt jest na czołowej pozycji jako główny wskaźnik postępu — to można traktować zarówno jako zaletę, jak i wadę, ponieważ wymaga to dużych wymagań dotyczących samodzielności.
Waterfall okazał się podobnie jak wiele innych wynalazków: Herbert Bennington w 1956 roku i Hosier w 1961 roku przyczynili się do rozwoju metodologii, podczas gdy Walker wykorzystał ich pracę, zabezpieczając nazwisko „Twórcy Waterfall”. Jak mówią, zwycięzców się nie ocenia…
Model rozwoju Waterfall zakłada sekwencyjne przechodzenie procesu, podzielonego na etapy. Przejście do nowego etapu jest możliwe tylko po zakończeniu poprzedniego.

W oryginalnej pracy Walkera “Zarządzanie rozwojem dużych systemów oprogramowania,” opisano 6 etapów rozwoju produktu. Te 6 etapów zostało zabezpieczonych w standardach pracy z programistami w 1985 roku przez Departament Obrony USA:
- Wymagania systemu i programu: są zabezpieczone w PRD (dokumencie wymagań produktowych).
- Analiza: wcielona w modele, schematy i reguły biznesowe.
- Projektowanie: rozwijana jest wewnętrzna architektura oprogramowania, a także sposoby wdrożenia wymagań. To nie tylko kwestia interfejsu i wyglądu oprogramowania, ale także jego wewnętrznej logiki strukturalnej.
- Kodowanie: kod programu jest pisany bezpośrednio; trwają prace nad integracją oprogramowania.
- Testowanie: testerzy błędów (testery) sprawdzają końcowy produkt, wprowadzając informacje o wadach do systemów śledzenia. W przypadku błędów i dostępności czasu/pieniędzy, następuje ich naprawa.
- Operacje: produkt dostosowuje się do różnych systemów operacyjnych, jest regularnie aktualizowany w celu naprawy błędów znalezionych przez użytkowników oraz dodawania funkcjonalności. Etap ten zapewnia również wsparcie techniczne dla klientów.
Firma Toyota, która uczyniła metody Lean i Kanban popularnymi, korzystała z kaskadowego modelu rozwoju oprogramowania aż do końca lat 2000-tych dla potrzeb produkcyjnych.
Zalety i Wady Waterfall
Największe zalety Waterfall to:
- Jasna i prosta struktura procesu rozwoju — obniża próg wejścia dla zespołów
- łatwe raportowanie — możesz łatwo śledzić zasoby, ryzyko, czas i pieniądze wydane dzięki ścisłej fazowości procesu rozwoju i szczegółowej dokumentacji projektu
- stabilność zadań — zadania, przed którymi staje produkt, są jasne dla zespołu od samego początku rozwoju i pozostają niezmienne przez cały proces
- Os cost and deadlines for the project — czas dostarczenia gotowego produktu, jak również jego całkowity koszt można obliczyć przed rozpoczęciem rozwoju.
Wady metody kaskadowej to:
- proces, który nie ma elastyczności – innymi słowy, jeśli projekt wymaga więcej czasu i zasobów finansowych, niż pierwotnie przyznano, to cały etap testowania staje się chaotyczny. Według badań grupy doradczej Rothmana, koszt naprawy błędów po wydaniu produktu jest średnio 20 razy wyższy niż podczas pełnoprawnego testowania wieloetapowego w trakcie procesu rozwoju
- „opór” wobec zmian — sztywny ramy etapów rozwoju i warunek, że tylko gotowy produkt jest dostarczany, sprawiają, że niemożliwe jest dokonanie poprawek podczas rozwoju
- inercja — na wczesnych etapach prognozowanie czasu i wydatków finansowych może wzrastać, ale niemożliwe jest wprowadzenie zmian w projekcie w kierunku optymalizacji kosztów oraz poprawy funkcjonalności lub koncepcji przed wydaniem gotowego produktu
- zwiększone ryzyko — klasyczny system testowania zakłada testowanie każdego składnika projektu osobno (w tym testowanie składników w współpracy z innymi). Przy użyciu Waterfall gotowy produkt jest testowany.
Częściowo wady modelu rozwoju waterfall są korygowane w zmianach Waterfall: Sashimi, Waterfall z podprojektami, oraz model rozwoju waterfall z funkcją redukcji ryzyka.
Waterfall z podprojektami to model, w którym pracuje się z trzema dużymi blokami: konceptualizacja, projektowanie wymagań i struktura architektoniczna produktu. Następnie dla każdego z nich przeprowadza się etapy (podprojekty) szczegółowego projektowania, kodowania i testowania. Na końcu wszystkie komponenty są integrowane podczas fazy testowania systemu.
Model rozwoju Waterfall z komponentem redukcji ryzyka to modyfikacja klasycznego Waterfall, w której dodawane są spirale redukcji ryzyka, które dzielą projekt na mini-projekty i odpowiadają na jeden lub kilka kluczowych ryzyk.
Agile | Waterfall | |
---|---|---|
Istota | Elastyczny model rozwoju oparty na zasadach iteracyjnych | Kaskadowy system rozwoju oparty na ścisłym, sekwencyjnym procesie rozwoju |
Data powstania | 2001 | 1956, 1961, i 1970 |
Zasady zastosowania |
|
|
Zalety |
|
|
Wady |
|
|
Klienci | Unilever, szereg banków (Alfa Bank, Home Credit, Raiffeisenbank itp.) | Cisco Ericsson AB, Toyota (do 2010) |
To zadziała dla ciebie, jeśli… |
|
|
To nie zadziała dla ciebie, jeśli… |
|
|
Werdykt
Agile i Waterfall — to dwie całkowicie różne metody rozwoju i zarządzania projektami. Każda z nich wygenerowała dziesiątki modyfikacji i metod, „dostosowanych” do konkretnego formatu projektu.
Elastyczny model będzie idealny dla firm IT, start-upów oraz projektów w innowacyjnych obszarach. Model kaskadowy nie traci na znaczeniu w projektach budowlanych lub projektach, gdzie kluczowym ograniczeniem jest czas realizacji projektu, a nie finanse.
Biorąc pod uwagę specyfikę każdej z metod oraz Twój biznes, wraz z kryteriami ryzyka, czasu i zaangażowania interesariuszy, będziesz w stanie samodzielnie określić skuteczną metodologię.