MythBuster vs Agile – Mit 1: Ako upoređujemo Agilne metodologije sa tradicionalnim Agilno je uvek superiornije

Od kad se je počelo sa razvojem softvera, tako što se je dvoje ili više ljudi okupilo da bi zajedno radili na razvoju nekog softverskih rešenja, a pogotovu sa komercijalizacijom softverskih proizvoda, postojala je potreba za organizovanjem rada tih ljudi, grupisanjem određenog skupa procesa u sistem koji je nazivan nekim imenom kome je dodavana reč procesi,  metodologija ili u nekim slučajevima framework.

Zadnjih godina se kad je  u pitanju razvoj softverskuh proizvoda, u praksi, literaturi na Internetu  pojavljuje pojam Agilnog. Kod mnogih je, ono što je Agilno, još uvek dosta maglovito, ali svi generalno imaju utisak o Agilnom da je to nešto što donosi gomilu novih izuzetnih ideja koje omogućavaju veoma optimizovan i isplativ razvoj softverskih proizvoda.  Vrlo često se argumentovano a takođe i veoma neargumentovano, Agilnom pripisuju razne karakteristike i rezultati koje se upoređuju sa karakteristikama i rezultatima “tradicionalnih” metodologija za upravljanje razvojem softverskih projekata i uvek je pojam tradicionalnog povezan sa utiskom da je to nešto što je prevaziđeno i loše. Da li je to baš tako?

Pošto sam u zadnje tri godine pročitao gomilu knjiga, radova i napisa na Internetu koji se odnose na Agilne metodologije, a pošto sam upoznat i teorijski a i praktično sa Microsoft Solution Framework-om kao predstavnikom “tradicionalnih metodologija” a takođe i sa SCRUM-om kao predstavnikom Agilnih metodologija imam potrebu da kroz postove na ovom blogu podelim neke svoje zaključke sa svima koje to interesuje.

Istorijat

Prva poznata prezentacija  koja opisuje korišćenje sličnih fraza u softverskom inženjerstvu je održana od strane Herberta D. Beningtona na Simpozijumu o naprednim metodama programiranja za digitalne kompjutere 29. juna  1956. Ova prezentacija  je bila o razvoju softvera za SAGE. 1983 objavljen je rad  sa predgovorom koji je napisao Benington koji ukazuje  na to da  se proces u stvari ne odvija striktno od vrha prema dnu, već da zavisie od prototipa (McConnell, 2006).

Vremenom su, na osnovu iskustva metodologije proširivane i menjane tako da su nastajale nove grupe metodologija koje su sadržale neke postavke prethodnih metodologija, koje su se istorijski pokazali kao dobre, sa novinama koje su donosile značajne promene u pogledu na upravljanje razvojem softverskih proizvoda. Danas se te metodologije, uslovno rečeno dele na tri grupe metodologija koje su se primenjivale i primenjuju se u praksi: Prediktivne metodologije, Iterativne metodologije i Agilne metodologije (Dean Leffingwell, 2001).

Pojava novih metodologija nije dovodila do prestanka korišćenja prethodnih. I danas se u svetu raznim razvojnim softverskim projektima upravlja u skladu sa Prediktivnim, i Iterativnim metodologijama.

Mit 1: Ako upoređujemo Agilne metodologije sa tradicionalnim Agilno je uvek  superiornije

Prva grupa metodologija, koje se nazivaju Prediktivnim su Vodopad (Waterfall-like) metodologije. Kao prvi formalni opis modela vodopada često se navodi članak Vinstona W. Rojsa iz 1970, iako nije  korišćen termin „vodopad“ u tom članku. Ovaj model je predstavljen kao primer nesavršenog modela (Royce, 1970). Ovo je, u stvari, način na koji  se ovaj termin  obično koristi kada se piše o razvoju  softvera tj. da se opiše kritički pogled na uobičajenu softversku praksu (McConnell, 2006). Osnovna premisa Vodopad metodologija je da se softverski proizvodi realizuju u jednom ciklusu (iteraciji) gde se zasebni procesi razvoja celokupnog projekta izvršavaju sukcesivno tj. naredni proces započinje tek kad je u potpunosti završen prethodni.

Mit koji je stvoren u literaturi a i na raznim konferencijama gde se o Agilnom priča i koji se odnosi na apsolutnu superiornost Agilnih metodologija u odnosu na tradicionalne je nastao zbog toga što se Agilno uvek upoređuje sa modelom Vodopada. Problem je u tome što se zanemaruju Iterativne metodologije koje su ne samo novije po datumu u odnosu na model Vodopada već su i nastale kao odgovor na probleme Vodopad modela. Među Iterativnim metodologijama postoje kandidati (recimo Microsoft Solution Framework) čiji su nedostaci u odnosu na Agilne metodologije, može se reći, minorni. S druge strane Iterativne metodologije imaju razrađene mnoge oblasti upravljanja projektina razvojem softverskih rešenja kojih se teoretičari, recimo Scrum-a kao prestavnika Agilnih metodologija, uopšte ne dotiču. Pre svega ovde mislim na upravljanje rizicima.

Mit 1: Nepotvrđen

Literatura:

Leave a Reply

%d bloggers like this: