Agile czy waterfall. Jak dobrać metodykę do projektu

Rozwój projektów w metodykach zwinnych w ostatnich latach święci triumfy, wypierając tradycyjny, kaskadowy model pracy. Jednak oba podejścia mają swoje wady, zalety i odpowiednie zastosowania.

Agile i waterfall należą dziś do najpopularniejszych, najczęściej stosowanych metodyk zarządzania projektami. Pierwsza, na najbardziej ogólnym poziomie, polega na dzieleniu procesu projektowego na wiele krótkich odcinków, co pozwala na szybsze dostarczanie kolejnych, małych porcji projektu. Działający produkt uzyskujemy więc na stosunkowo wczesnym etapie, tyle że jego funkcjonalność jest przyrostowo rozbudowywana.

W drugim, bardziej linearnym podejściu, gotowy produkt pojawia się na samym końcu procesu rozwojowego. Problem w tym, że taki produkt może nie spełniać aktualnych wymagań zamawiającego, ponieważ powstawał w oparciu o założenia ustalone kilka czy kilkanaście miesięcy wcześniej. I to jest jedna z podstawowych bolączek waterfalla.

Zobacz również:

  • Partnerstwo w zakresie rozwoju oprogramowania - 5 najlepszych praktyk
  • Panfofelki, ameby, koty… Scrum jako droga do efektywnej organizacji szczęśliwych pracowników

Czy to znaczy, że los metodyki kaskadowej, szczególnie we współczesnym, dynamicznym środowisku biznesowym ukształtowanym w drodze transformacji cyfrowej, jest przesądzony? Niekoniecznie – sporo zależy od typu projektów, które organizacja chce zrealizować, struktury zespołu oraz umiejętności i kompetencji pracowników. Spójrzmy na wady i zalety poszczególnych podejść.

Czym jest Agile

Termin Agile w kontekście metodyk projektowych utrwalił się po 2001 r. gdy opublikowany został tzw. Manifest Agile, zawierający cztery podstawowe wartości Agile i 12 zasad zwinności. Manifest opisuje kluczowe fazy procesu projektowego. Są to:

  • Planowanie: na tym etapie klienci i kluczowi interesariusze wspólnie opracowują koncepcję i założenia produktu, definiują priorytety, ustalają zasoby i budżet projektu.
  • Prace projektowe: specjaliści od user experience, pod kierownictwem Scrum mastera, współpracują z klientem, zespołem produktowym i innymi interesariuszami, aby określić kluczowe komponenty produktu.
  • Prace rozwojowe: w tej fazie zespół produktowy przygotowuje kolejne iteracje produktu w ramach wspomnianych wyżej krótkich etapów, zwanych sprintami.
  • Faza testowa to moment, gdy sprawdzana jest zgodność produktu z wymaganiami. W razie wykrycia błędów lub niedoróbek produkt wraca do fazy rozwojowej, a po usunięciu problemów – jest ponownie testowany. Cykl powtarza się do skutku, tj. gdy produkt osiąga pełną zgodność ze specyfikacją zamawiającego.
  • Faza wdrożeniowa: gdy dopracowany produkt jest przekazywany klientowi.
  • Informacja zwrotna: etap obejmujący analizę procesu rozwojowego, umożliwiający zespołowi poprawę jakości pracy nad kolejnymi produktami lub ogólną efektywność zespołu.

Eksperci Agile’a podkreślają, że

jedną z najważniejszych, o ile nie najważniejszą w ogóle, cechą charakteryzującą model pracy zwinnej, jest „klientocentryczność” – w centrum procesu są zawsze potrzeby i wymagania klienta.
Członkowie zespołów muszą także potrafić pracować w stale zmieniającym się środowisku. Oznacza to łatwość dostosowywania się do nowych wymagań i elastyczne podejście do zmian w założeniach projektowych, które mogą pojawić się na którymś z etapów pracy.

Czym jest waterfall

W metodyce kaskadowej proces rozwoju produktu od początku do końca bazuje na określonej, wyszczególnionej poniżej, sekwencji etapów. Środowisko pracy jest zorganizowane, a procesy i procedury – stabilne i ugruntowane. Zespoły działają metodycznie, przestrzegając zasad i ściśle określonych wytycznych, wykonując każdy cykl w tej samej kolejności.

  • Zbieranie i ocena wymagań: etap gromadzenia informacji (od klientów, interesariuszy) na temat specyfikacji funkcjonalnych, systemowych lub technicznych, które mają być wykorzystane w projekcie.
  • Projektowanie: podobnie jak w podejściu zwinnym, i tu – w porozumieniu z zamawiającym – ustala się najważniejsze funkcjonalności produktu lub usługi, również w kontekście doświadczeń użytkownika.
  • Testowanie: etap testów jakościowo-wydajnościowych. Jeżeli produkt spełnia wymagania, uzyskuje akceptację zamawiającego. W razie wykrycia błędów są one usuwane przez zespół projektowy przed dostarczeniem produktu.
  • Przekazanie produktu: następuje, gdy opracowywany produkt spełnia wszystkie wymagania określone na początku prac projektowych.
  • Utrzymanie / konserwacja: po otrzymaniu finalnego produktu klient może zażądać wprowadzenia w nim dodatkowych zmian (wydłuży to czas finalizacji projektu i zwiększy koszty).

Agile vs waterfall – porównanie zalet i wad

Agile vs waterfall – zalety i wady

Agile

Waterfall

Zalety

Szybki, lecz elastyczny proces rozwojowy.
Możliwość szybszego znajdowania i usuwania błędów – dzięki krótkim sprintom i skupieniu na jakości.
Możliwość przydzielania osobnych zadań małym zespołom, dzięki czemu proces rozwojowy nie jest wstrzymywany lub opóźniany.
Podejście iteracyjne pozwala wprowadzać w produkcie szybkie zmiany na każdym etapie procesu rozwojowego, zgodnie z bieżącym zapotrzebowaniem.

Pomimo większej formalizacji i sekwencyjności cyklu rozwojowego, długie i uporządkowane procesy są łatwe w prowadzeniu niezależnie od wielkości zespołu.
Ustalone cykle rozwojowe mogą zapewnić większą stabilność zespołom o niewielkim doświadczeniu.
Ponieważ specyfikacja produktu jest określana na samym początku, proces wykonawczy jest mniej skomplikowany i zawiera mniej zmiennych.
Projekt jest od początku budżetowany i finansowany, co ułatwia zarządzanie oczekiwaniami i ryzykiem.

Wady

Podejście wymaga zaangażowania Scrum mastera, mentora i przewodnika pomocnego w zarządzaniu kierunkiem prac zespołu oraz relacjami w zespole.
Duża liczba zmian wymaga każdorazowo weryfikacji i akceptacji klienta.
Konieczność dobrej samoorganizacji zespołu i dyscypliny pracy; ich brak może powodować problemy w warunkach pracy zdalnej lub współpracy członków zespołu działających w różnych lokalizacjach geograficznych.

Sekwencyjny charakter procesu rozwojowego oznacza wolniejsze tempo prac i mniejszą elastyczność. Czas trwania projektu zależy od zakończenia poszczególnych etapów.
Usterki wykrywane są zwykle w późniejszych fazach procesu.
Określenie i zatwierdzenie wymagań na początku projektu może utrudnić wprowadzenie zmian w ich zakresie na późniejszych etapach.

Dla kogo?

Wydajne zespoły projektowe, doświadczone zwłaszcza w tworzeniu oprogramowania.
Organizacje dążące do ciągłego doskonalenia swoich procesów.
Duże przedsiębiorstwa, które mogą uprościć swoje procesy i szybciej reagować na zmiany.
Zespoły projektowe, które regularnie i ściśle współpracują ze swoimi klientami i innymi podmiotami zewnętrznymi.
Zespoły, które chcą szybkiej informacji zwrotnej na temat rozwijanych produktów i usług.

Zespoły, które potrzebują bardziej przewidywalnego i sekwencyjnego harmonogramu projektów i mają stały budżet.
Mniej doświadczone zespoły projektowe.
Firmy o niższej tolerancji na zmianę lub ryzyko.
Firmy, których klienci są dysponują ograniczonymi zasobami i czasem, uniemożliwiającymi stałe/częste konsultacje.
Zespoły rozwijające proste projekty o niewielkich wymaganiach.
Zespoły opracowujące projekty długoterminowe.

Opracowano na podstawie artykułu „Agile vs. waterfall: Project methodologies compared”, CIO.com.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200