Agile vs tradicionalna metodologija za razvoj softvera
Danas se u softverskoj industriji koristi niz različitih metodologija za razvoj softvera. Metoda razvoja vodopada jedna je od najranijih metoda razvoja softvera. V-Model, RUP i nekolicina drugih linearnih, iterativnih i kombiniranih linearno-iterativnih metoda, nastalih nakon metodologije vodopada, namjeravali su ukloniti mnoga pitanja metode vodopada. Sve ove ranije metodologije nazivaju se Tradicionalne metodologije razvoja softvera. Agile model je noviji model razvoja softvera uveden u svrhu rješavanja nedostataka koji su pronađeni u tradicionalnim modelima. Glavni fokus Agile-a je uključivanje testiranja što je ranije moguće i puštanje radne verzije proizvoda vrlo rano, razbijanjem sustava na vrlo male i upravljive dijelove.
Što je tradicionalna metodologija razvoja softvera?
Softverske metodologije poput Waterfall metode, V-Model i RUP nazivaju se tradicionalnim metodologijama razvoja softvera. Metodologija vodopada jedan je od najranijih modela razvoja softvera. Kao što ime sugerira, to je sekvencijalni proces u kojem napredak teče kroz nekoliko faza (analiza potreba, dizajn, razvoj, testiranje i primjena) od vrha do dna, analogno vodopadu. V-Model se smatra produžetkom modela razvoja softvera Waterfall. V-Model koristi iste odnose između faza definiranih u modelu vodopada. No umjesto da se linearno spušta (poput modela vodopada), V-Model silazi dijagonalno, a zatim se kreće natrag gore (nakon faze kodiranja), tvoreći oblik slova V. RUP (racionalni objedinjeni proces) prilagodljiv je okvir procesa (nije jedan konkretan postupak), koju razvojna organizacija može prilagoditi svojim potrebama. Malo sličan vodopadu, ima fiksne faze kao početak, razrada, izgradnja i prijelaz. Ali za razliku od vodopada, RUP je iterativni proces.
Što je Agile?
Agile je vrlo nedavna metodologija razvoja softvera (ili točnije, skupina metodologija) koja se temelji na manifestu agilnosti. To je razvijeno za rješavanje nekih nedostataka u tradicionalnim metodologijama razvoja softvera. Agilne metode temelje se na davanju visokog prioriteta sudjelovanju kupca u ranom razvojnom ciklusu. Preporučuje uvrštavanje testiranja od strane kupca rano i često što je više moguće. Testiranje se vrši u svakoj točki kada stabilna verzija postane dostupna. Temeljenje Agile temelji se na ispitivanju od početka projekta i nastavljanju do kraja projekta. Scrum i Extreme programiranje su dvije najpopularnije varijacije Agile metoda.
Ključna vrijednost Agile je "kvaliteta je odgovornost tima", koja naglašava da je za kvalitet softvera odgovornost cijelog tima (ne samo testnog tima). Još jedan važan aspekt Agile-a je probijanje softvera na manje upravljive dijelove i njihovo isporučivanje kupcu vrlo brzo. Isporuka ispravnog proizvoda od najveće je važnosti. Zatim tim nastavlja poboljšavati softver i neprekidno se isporučivati na svakom većem koraku. To se postiže vrlo kratkim ciklusima otpuštanja (koji se nazivaju otisci u Scrumu) i dobivanjem povratnih informacija za poboljšanje na kraju svakog ciklusa. Suradnici bez većih interakcija tima kao što su programeri i testeri u ranijim metodama sada rade zajedno unutar Agile modela.
Koja je razlika između Agile i Tradicionalne metodologije razvoja softvera?
Iako se Agile metoda temelji na iterativnom razvoju kao nekim tradicionalnim pristupima, Agile i Traditional metodologije imaju ključne razlike. Tradicionalni pristupi planiranje koriste kao svoj upravljački mehanizam, dok Agile modeli koriste povratne informacije od strane korisnika kao glavni upravljački mehanizam. Agilnost se može nazvati pristupom usredotočenim na ljude nego tradicionalnim metodama. Agile model donosi radnu verziju proizvoda vrlo rano u usporedbi s tradicionalnim metodologijama tako da kupac može rano ostvariti neke od prednosti. Vrijeme ciklusa ispitivanja Agile-a relativno je 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 modela Agile. Zbog svih ovih prednosti, Agile je više nego prednost tradicionalnim metodologijama.