Agile vs tradycyjna metodologia tworzenia oprogramowania
Obecnie w branży oprogramowania stosuje się wiele różnych metodologii tworzenia oprogramowania. Metoda wodospadu jest jedną z najwcześniejszych metod tworzenia oprogramowania. V-Model, RUP i kilka innych liniowych, iteracyjnych i kombinowanych liniowo-iteracyjnych metod, które pojawiły się po metodologii kaskadowej, miały na celu zlikwidowanie wielu problemów związanych z metodą kaskadową. Wszystkie te wcześniejsze metodologie nazywane są tradycyjnymi metodologiami tworzenia oprogramowania. Model zwinny to nowszy model tworzenia oprogramowania wprowadzony w celu usunięcia niedociągnięć występujących w tradycyjnych modelach. Głównym celem Agile jest jak najwcześniejsze wprowadzenie testów i bardzo wczesne wydanie działającej wersji produktu, poprzez rozbicie systemu na bardzo małe i łatwe w zarządzaniu części podrzędne.
Co to jest tradycyjna metodologia tworzenia oprogramowania?
Metodologie oprogramowania, takie jak metoda Waterfall, V-Model i RUP nazywane są tradycyjnymi metodologiami tworzenia oprogramowania. Metodologia wodospadu jest jednym z najwcześniejszych modeli tworzenia oprogramowania. Jak sama nazwa wskazuje, jest to proces sekwencyjny, w którym postęp przebiega przez kilka faz (analiza wymagań, projektowanie, rozwój, testowanie i wdrażanie) od góry do dołu, analogicznie do kaskady. V-Model jest uważany za rozszerzenie modelu rozwoju oprogramowania Waterfall. V-Model wykorzystuje te same relacje między fazami zdefiniowanymi w modelu Waterfall. Ale zamiast schodzić liniowo (jak model Waterfall) V-Model schodzi w dół po przekątnej, a następnie cofa się (po fazie kodowania), tworząc kształt litery V. RUP (Rational Unified Process) jest adaptowalną strukturą procesu (nie jeden konkretny proces),które organizacja programistyczna może dostosować do swoich potrzeb. Nieco podobny do wodospadu, ma ustalone fazy, takie jak powstanie, opracowanie, budowa i przejście. Ale w przeciwieństwie do kaskady, RUP jest procesem iteracyjnym.
Co to jest Agile?
Agile to bardzo nowa metodologia tworzenia oprogramowania (a właściwie grupa metodologii) oparta na manifeście zwinnym. Zostało to opracowane, aby rozwiązać pewne niedociągnięcia w tradycyjnych metodologiach tworzenia oprogramowania. Metody zwinne polegają na nadaniu wysokiego priorytetu uczestnictwu klienta na wczesnym etapie cyklu rozwoju. Zaleca jak najwcześniejsze i częste przeprowadzanie testów przez klienta. Testowanie jest wykonywane w każdym momencie, gdy dostępna jest stabilna wersja. Podstawą Agile jest rozpoczęcie testowania od początku projektu i kontynuacja do końca projektu. Programowanie Scrum i Extreme to dwie najpopularniejsze odmiany metod Agile.
Kluczową wartością Agile jest „jakość to odpowiedzialność zespołu”, co podkreśla, że za jakość oprogramowania odpowiada cały zespół (nie tylko zespół testujący). Innym ważnym aspektem Agile jest rozbicie oprogramowania na mniejsze, łatwe do zarządzania części i bardzo szybkie dostarczenie ich do klienta. Dostarczenie działającego produktu jest sprawą najwyższej wagi. Następnie zespół nadal ulepsza oprogramowanie i dostarcza je na każdym ważnym etapie. Osiąga się to poprzez bardzo krótkie cykle wydawania (zwane sprintami w Scrumie) i otrzymywanie informacji zwrotnych na temat ulepszeń pod koniec każdego cyklu. Współtwórcy bez wielu interakcji zespołu, tacy jak programiści i testerzy we wcześniejszych metodach, teraz współpracują w ramach modelu Agile.
Jaka jest różnica między zwinną a tradycyjną metodologią tworzenia oprogramowania?
Chociaż metoda Agile opiera się na iteracyjnym rozwoju, jak niektóre z tradycyjnych podejść, metodologie Agile i Tradycyjne mają kluczowe różnice. Tradycyjne podejścia wykorzystują planowanie jako mechanizm kontroli, podczas gdy modele zwinne wykorzystują informacje zwrotne od użytkowników jako główny mechanizm kontroli. Agile można nazwać podejściem zorientowanym na ludzi niż tradycyjne metody. Model Agile dostarcza działającą wersję produktu bardzo wcześnie w porównaniu z tradycyjnymi metodologiami, dzięki czemu klient może wcześnie zdać sobie sprawę z niektórych korzyści. Cykl testowania Agile jest stosunkowo krótki w porównaniu z tradycyjnymi metodami, ponieważ testowanie odbywa się równolegle z rozwojem. Większość tradycyjnych modeli jest bardzo sztywnych i stosunkowo mniej elastycznych niż model Agile. Ze względu na wszystkie te zalety Agile jest obecnie preferowana w stosunku do tradycyjnych metodologii.