Waterfall czy Agile? Jak wdrażać oprogramowanie dla biznesu?

Zapewne nie będzie dla nikogo zaskoczeniem, gdy napiszę, że nie istnieje jedyny słuszny sposób wdrażania oprogramowania w firmie. W różnych warunkach, przedsiębiorstwach i ich otoczeniu mogą sprawdzić się zupełnie inne techniki – zwane również metodykami. Metodyka wdrożeniowa to zestaw strategii, dobrych praktyk i narzędzi ułatwiających zarządzanie projektami informatycznymi (i nie tylko). Dwie, zdecydowanie najpopularniejsze to tzw. Waterfall oraz Agile. Sprawdźmy, którą z nich wybrać, aby skutecznie wdrożyć oprogramowanie w naszej firmie.

Waterfall

Waterfall (z j. angielskiego wodospad) to tzw. podejście tradycyjne. Model kaskadowy, bo tak również często się go nazywa, zakłada wdrożenie oprogramowania w oparciu o kilka ściśle określonych, postępujących po sobie etapów: planowanie wdrożenia, analizę potrzeb, projektowanie rozwiązania, implementację (prace programistyczne), testowanie oraz pielęgnację wdrożonego już systemu. Jest to podejście bardzo uporządkowane – poszczególne fazy nie nachodzą bowiem na siebie, są dokładnie zaplanowane i zabudżetowane. Rozwój oprogramowania w oparciu o model kaskadowy specyfiką przypomina nieco budowę domu, gdzie również mamy do czynienia z fazą projektowania, budowy fundamentów, kolejnych pięter, wykończeniówką, a dopiero na końcu – odbiorem technicznym oraz przez klienta. Jest to podejście naturalne i właściwe, gdy jesteśmy absolutnie pewni, co zamierzamy zbudować. Jednak nawet w przypadku budowy domu zdarza się, że widząc efekt końcowy, jesteśmy w pewnym stopniu zaskoczeni rezultatem, niezadowoleni. Niestety, z oprogramowaniem zdarza się tak jeszcze częściej.

Agile

Receptą na ten problem ma być, sformułowany w 2001 roku, tzw. Manifest Agile (agile – z j. angielskiego oznacza zwinność). Jest to zbiór wartości, którymi jego twórcy zalecają kierować się podczas pracy nad oprogramowaniem. Według nich, większe znaczenie dla końcowego sukcesu wdrożenia ma m.in. działający produkt niż rozbudowana dokumentacja techniczna, a efektywna współpraca z klientem przynosi więcej pożytku niż wyczerpujący, formalny kontakt.

Są to zasady zdroworozsądkowe, z którymi trudno się nie zgodzić – dlatego też, Manifest Agile stał się bazą oraz inspiracją dla wielu tzw. zwinnych metodyk rozwoju oprogramowania (zarówno nowych, jak i już istniejących).

Scrum

Zdecydowanie najpopularniejszą metodą pracy, w oparciu o zasady Agile jest Scrum. Jest to podejście do wytwarzania nowych produktów (nie tylko informatycznych), w których otrzymujemy ich działającą, wartościową wersję regularnie – w małych przyrostach (tzw. sprintach). W Scrumie wszystkie tradycyjne fazy rozwoju oprogramowania (analiza, planowanie, implementacja, testowanie itd.) trwają w zasadzie równolegle i bez przerwy, dzięki czemu budowany produkt jest w stanie bardzo szybko otrzymać informację zwrotną (a zespół projektowy w razie potrzeby dostosować plan i kierunki jego dalszego rozwoju).

Gdybyśmy zechcieli użyć przytoczonego wcześniej przykładu z budową domu, w Scrumie, po pierwszym sprincie, zamiast samych (ale kompletnych) fundamentów otrzymalibyśmy zapewne, fundament pod jeden, niewielki pokój, wraz ze ścianami i prowizorycznym zadaszeniem – tak, aby w razie konieczności można się było do tego pomieszczenia wprowadzić. W kolejnych przyrostach dobudowywalibyśmy (w razie potrzeby) kolejne pokoje i usprawnienia. Być może czasami należałoby również co nieco zburzyć (czego Scrum również się nie boi).

Kiedy Waterfall, a kiedy Agile?

O tym, który sposób wdrożenia sprawdzi się lepiej w przypadku konkretnego produktu, sytuacji oraz firmy decyduje wiele czynników. Najważniejsze spośród nich to:

  • Rodzaj wdrażanego systemu biznesowego

Im system biznesowy (np. system księgowy) bardziej sformalizowany (tj. jego konstrukcja i funkcjonalność ściśle wynikają z przepisów prawa), tym trudniej podchodzić do niego zwinnie. I odwrotnie – im sukces oprogramowania bardziej zależy od zadowolenia i optymalizacji pracy jego użytkownika, tym więcej powodów dla zarządzania projektem w podejściu Agile (produkt lepiej dopasowany do potrzeb klienta).

  • Dynamika otoczenia biznesowego

Jeśli realia, w których prowadzimy nasz biznes zmieniają się szybko – i ma to wpływ na nasze potrzeby względem oprogramowania, wówczas zdecydowanie lepszym pomysłem jest wdrożenie systemu w podejściu zwinnym. Scrum pozwala na korektę planu i inwestycję w te funkcje, które rzeczywiście są w danym momencie potrzebne. Natomiast pozbawiony bieżących inspekcji, pieczołowicie zaplanowany produkt w Waterfallu, po kilku miesiącach realizacji może okazać się po prostu nieaktualny. Z drugiej strony, jeśli mamy pewność, że zmiany wymagań nie nastąpią (gdyż potrzeby biznesowe są stabilne), wówczas naturalnym wyborem wydaje się podejście tradycyjne.

  • Długość/wielkość projektu wdrożeniowego

Scrum jest podejściem adaptacyjnym, preferującym długie (przynajmniej kilkutygodniowe) projekty wdrożeniowe. W przypadku krótszego okresu adaptacja (czyli optymalizacja samego produktu oraz procesu wytwórczego na podstawie otrzymywanej informacji zwrotnej) nie jest możliwa. Wtedy zdecydowanie lepiej sprawdzi się metodyka kaskadowa, z góry definiująca zakres oraz plan projektu.

  • Elastyczność przedsiębiorstwa

Mówi się, że Scruma łatwo zrozumieć, ale bardzo trudno wdrożyć. Dzieje się tak dlatego, że ludzie – zwłaszcza ci zarządzający firmami – bardzo przywiązują się do planów i budżetów, niechętnie je (nawet w razie konieczności) zmieniając. W tak sztywnych warunkach próba rozwoju oprogramowania w podejściu zwinnym po prostu nie ma sensu, a jedynym słusznym wyborem jest Waterfall. Aby skutecznie realizować przedsięwzięcia informatyczne w oparciu o wartości Agile, musi je wspierać całe przedsiębiorstwo – łącznie z kadrą zarządzającą wyższego szczebla.

Niezależnie od powyższych, istnieje jeszcze jeden powód, dla którego warto spróbować w firmie podejścia Agile. Doświadczenie pokazuje, że wdrożenie oprogramowania w ten sposób, nie tylko gwarantuje (w większości przypadków) otrzymanie produktu lepiej dostosowanego do potrzeb użytkownika, ale przynosi również zdecydowanie więcej frajdy – zarówno firmie wdrożeniowej, jak i klientowi.

Wszystkich zainteresowanym tematyką wyboru sposobu wdrożenia oprogramowania w firmie odsyłam do wywiadu, którego jakiś czas temu udzieliłem na antenie Słodki Live.

Pola oznaczone* są obowiązkowe.

*Wyrażam zgodę na przetwarzanie przez UNIT4 Polska sp. z o.o. z siedzibą we Wrocławiu,przy ul. Powstańców Śląskich 7A, przekazanych przeze mnie danych osobowych, w celach marketingowych, w tym w celu utrzymywania kontaktu, przesyłania propozycji zawarcia nowych umów lub świadczenia kolejnych usług przez UNIT4 Polska sp. z o.o. jako administratora przekazanych danych osobowych. Potwierdzam jednocześnie, że zostałem poinformowany o dobrowolności wyrażenia zgody na przetwarzanie danych osobowych w odniesieniu do każdego z celów ich przetwarzania, o prawie do wycofania zgody w dowolnym momencie oraz o zgodności z prawem przetwarzania, którego dokonano na podstawie zgody przed jej wycofaniem. Więcej informacji o przetwarzaniu danych osobowych pod linkiem Polityka prywatności

X
Pobierz darmowy e-book i poznaj 3 kroki, by zarządzać efektywnością pracowników
Tak, chcę wiedzieć więcej