Agilna naspram tradicionalne metodologije razvoja softvera
Postoji veliki broj različitih metodologija razvoja softvera koje se danas koriste u softverskoj industriji. Metoda razvoja vodopada jedna je od najranijih metoda razvoja softvera. V-Model, RUP i nekoliko drugih linearnih, iterativnih i kombiniranih linearno-iterativnih metoda, koje su došle nakon metodologije vodopada, imale su za cilj izbrisati mnoge probleme metode vodopada. Sve ove ranije metodologije nazivaju se tradicionalnim metodologijama razvoja softvera. Agilni model je noviji model razvoja softvera uveden kako bi se riješili nedostaci koji se nalaze u tradicionalnim modelima. Glavni fokus Agilea je uključivanje testiranja što je ranije moguće i objavljivanje radne verzije proizvoda vrlo rano, rastavljanjem sustava na vrlo male i upravljive poddijelove.
Što je tradicionalna metodologija razvoja softvera?
Softverske metodologije poput metode slapa, V-modela i RUP-a nazivaju se tradicionalnim metodologijama razvoja softvera. Waterfall metodologija jedan je od najranijih modela razvoja softvera. Kao što naziv sugerira, to je sekvencijalni proces u kojem napredak teče kroz nekoliko faza (analiza zahtjeva, dizajn, razvoj, testiranje i implementacija) od vrha do dna, analogno vodopadu. V-Model se smatra proširenjem modela razvoja softvera Waterfall. V-model koristi iste odnose između faza definiranih u modelu vodopada. Ali umjesto linearnog spuštanja (poput modela vodopada), V-model se spušta dijagonalno i zatim se pomiče prema gore (nakon faze kodiranja), tvoreći oblik slova V. RUP (Rational Unified Process) je prilagodljiv okvir procesa (ne jedan konkretan proces), koji razvojna organizacija može prilagoditi svojim potrebama. Pomalo sličan vodopadu, ima fiksne faze kao što su početak, razrada, izgradnja i prijelaz. Ali za razliku od vodopada, RUP je iterativni proces.
Što je Agile?
Agile je najnovija metodologija razvoja softvera (ili točnije, skupina metodologija) temeljena na agilnom manifestu. Ovo je razvijeno kako bi se riješili neki nedostaci u tradicionalnim metodologijama razvoja softvera. Agilne metode temelje se na davanju visokog prioriteta sudjelovanju korisnika u ranoj fazi razvojnog ciklusa. Preporuča uključivanje testiranja od strane korisnika ranije i što je češće moguće. Testiranje se provodi u svakoj točki kada stabilna verzija postane dostupna. Temelj Agilea temelji se na započinjanju testiranja od početka projekta i nastavljanju do kraja projekta. Scrum i Extreme programiranje dvije su najpopularnije varijante Agile metoda.
Ključna vrijednost Agilea je "kvaliteta je odgovornost tima", što naglašava da je kvaliteta softvera odgovornost cijelog tima (a ne samo tima za testiranje). Još jedan važan aspekt Agilea je rastavljanje softvera na manje upravljive dijelove i njihova vrlo brza isporuka korisniku. Isporuka proizvoda koji radi je od najveće važnosti. Zatim tim nastavlja poboljšavati softver i kontinuirano isporučivati na svakom većem koraku. To se postiže vrlo kratkim ciklusima izdavanja (koji se u Scrumu nazivaju sprintovi) i dobivanjem povratnih informacija za poboljšanje na kraju svakog ciklusa. Suradnici bez mnogo interakcije tima, poput programera i testera u ranijim metodama, sada rade zajedno unutar Agile modela.
Koja je razlika između agilne i tradicionalne metodologije razvoja softvera?
Iako se agilna metoda temelji na iterativnom razvoju kao neki od tradicionalnih pristupa, agilna i tradicionalna metodologija imaju ključne razlike. Tradicionalni pristupi koriste planiranje kao kontrolni mehanizam, dok Agilni modeli koriste povratnu informaciju od korisnika kao glavni kontrolni mehanizam. Agile se može nazvati pristupom usmjerenim na ljude nego tradicionalnim metodama. Agilni model isporučuje radnu verziju proizvoda vrlo rano u usporedbi s tradicionalnim metodologijama tako da kupac može rano shvatiti neke od prednosti. Vrijeme ciklusa testiranja Agilea je relativno kratko u usporedbi s tradicionalnim metodama, jer se testiranje provodi paralelno s razvojem. Većina tradicionalnih modela vrlo je kruta i relativno manje fleksibilna od Agile modela. Zbog svih ovih prednosti, Agile se trenutno preferira u odnosu na tradicionalne metodologije.