Dwie metodologie projektowe
Zwinne (Agile) i kaskadowe (Watterfall) metodologie w podejściu do projektowania oprogramowania komputerowego to dwie główne metody wytwarzania tego oprogramowania, na jakie będziesz się mógł natknąć w pracy programisty. Obie mają swoje unikalne zalety i wady. Wybór odpowiedniej z nich jest pierwszym krokiem do sukcesu projektu. Ważne aby pasowała nie tylko do danego projektu ale nawet całej firmy – często dany software house pracuje w oparciu tylko o jedną metodologię we wszystkich swoich projektach.
Czym się kierować?
To czy lepsza dla Twojej organizacji będzie metoda zwinna czy kaskadowa, zależy głównie od takich czynników, jak typy projektów, które dana firma chce zrealizować, oraz struktura zespołu, umiejętności i talent poszczególnych pracowników.
Co to jest Agile?
Po raz pierwszy metodologia zwinna została omówiona dogłębnie w latach siedemdziesiątych XX wieku w opublikowanym artykule Williama Royce'a na temat rozwoju dużych systemów oprogramowania. Chodzi tu o zarządzanie projektami w krótkich, przyrostowych cyklach rozwoju zwanych „sprintami”. Każdy cykl koncentruje się na ciągłym doskonaleniu w rozwoju produktu lub usługi. Kierując się czterema podstawowymi wartościami i 12 zasadami zawartymi w Manifeście Agile, zapewnia to iteracyjne i zorientowane na ludzi podejście do tworzenia oprogramowania. Obejmuje następujące procesy:
- Planowanie: w tym pierwszym etapie klienci i kluczowi interesariusze pracują razem nad koncepcją, definiowaniem, ustalaniem priorytetów, zasobami i budżetowaniem projektu, który jest następnie zatwierdzany i inicjowany.
- Projekt: eksperci UX współpracują ze Scrum masterem, klientem, zespołem produktowym i innymi kluczowymi interesariuszami, aby określić, jak produkt powinien wyglądać i funkcjonować.
- Rozwój: w tej fazie tworzenia zespół programistów przechodzi różne iteracje zwane „sprintami”, aby stworzyć produkt spełniający wymagania klienta.
- Testowanie: ta faza zapewnia, że produkt jest zgodny z wymaganiami. W przypadku wykrycia defektów produkt przechodzi przez fazę rozwoju, aby naprawić problem, zanim zostanie ponownie przetestowany. Cykl ten trwa, dopóki produkt nie spełni pożądanych specyfikacji lub celów.
- Wdrożenie: po udoskonaleniu produkt końcowy jest przekazywany klientowi.
- Informacje zwrotne: zespoły analizują następnie cały proces, aby ocenić jak ulepszyć produkt lub wydajność zespołu.
A Watterfall?
Metodologia kaskadowa także jest wykorzystywana w rozwoju produktu, ale jest liniowa w stosunku do procesu rozwoju. Przebiega on zgodnie z określoną sekwencją od początku do końca aż do dostarczenia ostatecznego projektu. Zespoły projektowe wykonują i w pełni kończą każdy proces lub cykl w tej samej i dokładnej kolejności. Tymi procesami są:
- Gromadzenie i analiza wymagań: w tym miejscu zbierane są informacje od klientów i innych kluczowych interesariuszy o specyfikacjach funkcjonalnych, systemowych lub technicznych, które mają być wykorzystane w projekcie.
- Projekt: Eksperci UX współpracują z klientami, zespołem produktowym i innymi kluczowymi interesariuszami, aby określić, jak produkt powinien wyglądać i funkcjonować.
- Testowanie: Następnie przeprowadza się testy wydajnościowe, systemów i akceptacji użytkownika, aby upewnić się, że produkt spełnia określone wymagania. Jeśli zostaną wykryte wady lub błędy, są one usuwane przed dostawą.
- Ostateczna dostawa projektu: Po spełnieniu przez produkt specyfikacji ustalonych na początku projektu, jest on dostarczany do klienta.
- Konserwacja: Po dostawie klient może zażądać dodania i zatwierdzenia dodatkowych zmian w projekcie. Stanowi to ryzyko dodatkowych kosztów dla zespołu deweloperskiego.