Zwinna a tradycyjna metodologia tworzenia oprogramowania
W branży oprogramowania istnieje obecnie wiele różnych metod opracowywania oprogramowania. Metoda rozwoju wodospadu jest jedną z najwcześniejszych metod tworzenia oprogramowania. Model V, RUP i kilka innych liniowych, iteracyjnych i połączonych metod liniowo-iteracyjnych, które pojawiły się po metodologii kaskadowej, miały na celu wymazanie wielu zagadnień metody kaskadowej. Wszystkie te wcześniejsze metody 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 testowanie i bardzo wczesne wypuszczenie działającej wersji produktu, poprzez rozbicie systemu na bardzo małe i łatwe do zarządzania podzespoły.
Co to jest tradycyjna metodologia tworzenia oprogramowania?
Metodologie oprogramowania, takie jak metoda Waterfall, V-Model i RUP, nazywane są tradycyjnymi metodologiami tworzenia oprogramowania. Metodologia Waterfall jest jednym z pierwszych modeli tworzenia oprogramowania. Jak sama nazwa wskazuje, jest to proces sekwencyjny, w którym postęp przepływa przez kilka faz (analiza wymagań, projektowanie, rozwój, testowanie i wdrożenie) od góry do dołu, analogicznie do wodospadu. Model V jest uważany za rozszerzenie modelu rozwoju oprogramowania Waterfall. Model V wykorzystuje te same relacje między fazami zdefiniowanymi w modelu Waterfall. Ale zamiast schodzić liniowo (jak model Waterfall) Model V schodzi po przekątnej, a następnie przesuwa się z powrotem (po fazie kodowania), tworząc kształt litery V. RUP (Rational Unified Process) jest adaptowalną strukturą procesu (nie pojedynczy konkretny proces), który organizacja rozwoju może dostosować do swoich potrzeb. Nieco podobny do wodospadu, ma ustalone fazy początkowe, opracowania, budowy i przejścia. Ale w przeciwieństwie do wodospadu, RUP jest procesem iteracyjnym.
Co to jest Agile?
Agile to najnowsza metodologia tworzenia oprogramowania (a dokładniej grupa metodologii) oparta na manifestie zwinnym. Zostało to opracowane w celu rozwiązania pewnych niedociągnięć w tradycyjnych metodologiach tworzenia oprogramowania. Metody zwinne opierają się na nadaniu wysokiego priorytetu uczestnictwu klienta na wczesnym etapie cyklu programowania. Zaleca wcześniejsze i częste przeprowadzanie testów przez klienta. Testowanie odbywa się w każdym momencie, gdy dostępna jest stabilna wersja. Podstawa Agile opiera się na rozpoczęciu testowania od początku projektu i kontynuowaniu do końca projektu. Programowanie Scrum i Extreme to dwie najpopularniejsze odmiany metod Agile.
Kluczową wartością Agile jest „jakość jest obowiązkiem zespołu”, co podkreśla, że za jakość oprogramowania odpowiedzialny jest cały zespół (nie tylko zespół testujący). Innym ważnym aspektem Agile jest podział oprogramowania na mniejsze części możliwe do zarządzania i bardzo szybkie dostarczenie ich do klienta. Dostarczenie działającego produktu ma ogromne znaczenie. Następnie zespół kontynuuje ulepszanie oprogramowania i ciągłe dostarczanie na każdym ważnym etapie. Osiąga się to poprzez bardzo krótkie cykle uwalniania (zwane sprintami w Scrumie) i uzyskiwanie informacji zwrotnych na temat ulepszeń na końcu każdego cyklu. Współpracownicy bez większych interakcji zespołu, tacy jak programiści i testerzy we wcześniejszych metodach, teraz współpracują w ramach modelu zwinnego.
Jaka jest różnica między zwinną a tradycyjną metodologią tworzenia oprogramowania?
Chociaż metoda Agile opiera się na iteracyjnym rozwoju, ponieważ niektóre tradycyjne podejścia, metody Agile i Traditional mają kluczowe różnice. Tradycyjne metody wykorzystują planowanie jako mechanizm kontroli, podczas gdy modele zwinne wykorzystują informacje zwrotne od użytkowników jako główny mechanizm kontroli. Zwinność można nazwać podejściem skoncentrowanym na ludziach niż metodami tradycyjnymi. Zwinny model zapewnia działającą wersję produktu bardzo wcześnie w porównaniu z tradycyjnymi metodologiami, dzięki czemu klient może wcześnie dostrzec niektóre korzyści. Czas cyklu testowania Agile jest stosunkowo krótki w porównaniu do tradycyjnych metod, ponieważ testy są wykonywane równolegle z programowaniem. Większość tradycyjnych modeli jest bardzo sztywna i stosunkowo mniej elastyczna niż model Agile. Ze względu na te wszystkie zalety, Agile jest w tej chwili preferowana w stosunku do tradycyjnych metod.