Agile vs tradicionalna metodologija za razvoj programske opreme
Danes se v industriji programske opreme uporablja več različnih metodologij za razvoj programske opreme. Metoda razvoja slapov je ena najzgodnejših metod razvoja programske opreme. V-Model, RUP in nekaj drugih linearnih, iterativnih in kombiniranih linearno-iterativnih metod, ki so nastale po metodologiji slapov, so nameravali odpraviti številna vprašanja metode slapu. Vse te prejšnje metodologije se imenujejo tradicionalne metodologije razvoja programske opreme. Agile model je novejši model razvoja programske opreme, ki je bil predstavljen za odpravo pomanjkljivosti, ugotovljenih v tradicionalnih modelih. Glavni poudarek Agile je vključiti testiranje čim prej in sprostiti delujočo različico izdelka zgodaj z razčlenitvijo sistema na zelo majhne in obvladljive dele.
Kaj je tradicionalna metodologija za razvoj programske opreme?
Programske metodologije, kot so Waterfall metoda, V-Model in RUP, se imenujejo tradicionalne metodologije razvoja programske opreme. Metodologija slapov je eden najzgodnejših modelov razvoja programske opreme. Kot pove že ime, gre za zaporedni postopek, v katerem napredek teče skozi več faz (analiza potreb, načrtovanje, razvoj, preizkušanje in izvedba) od vrha do dna, analogno slapu. V-Model velja za razširitev modela razvoja programske opreme Waterfall. V-Model uporablja enaka razmerja med fazami, definiranimi v modelu Slap. Toda namesto da se linearno spušča (podobno kot model slapov), V-model stopi navzdol diagonalno in se nato premakne nazaj navzgor (po fazi kodiranja), tako da tvori obliko črke V. RUP (racionalni enotni proces) je prilagodljiv okvir procesa (ne en sam konkreten postopek), ki ga lahko razvojna organizacija prilagodi svojim potrebam. Nekoliko podoben slapu ima določene faze kot začetka, izdelava, gradnja in prehod. Toda za razliko od slapa je RUP iterativni postopek.
Kaj je Agile?
Agile je zelo nedavna metodologija za razvoj programske opreme (ali pravilneje, skupina metodologij), ki temelji na manifestu agilnosti. To je bilo razvito za odpravo nekaterih pomanjkljivosti v tradicionalnih metodologijah za razvoj programske opreme. Agile metode temeljijo na tem, da se že zgodaj v razvojnem ciklu da prednost strankam. Priporočamo, da uporabnik testiranje vključi čim prej in pogosto. Testiranje se opravi na vsaki točki, ko bo na voljo stabilna različica. Temelj Agile temelji na preizkušanju od začetka projekta in nadaljevanju vsega do konca projekta. Programi Scrum in Extreme sta dve najbolj priljubljeni različici Agile metod.
Ključna vrednost Agile je "kakovost je odgovornost ekipe", ki poudarja, da je za kakovost programske opreme odgovorna celotna ekipa (ne le testna skupina). Drug pomemben vidik Agile je razčlenitev programske opreme na manjše obvladljive dele in njihovo hitro dostavo kupcu. Dostava delujočega izdelka je izrednega pomena. Nato ekipa nadaljuje z izboljševanjem programske opreme in nenehnim zagotavljanjem na vsakem večjem koraku. To dosežemo tako, da imamo zelo kratke cikle sproščanja (imenovane šprinti v Scrumu) in dobimo povratne informacije za izboljšanje na koncu vsakega cikla. Sodelujoči brez večjih interakcij ekipe, kot so razvijalci in preizkuševalci v starejših metodah, zdaj sodelujejo v okviru Agile modela.
Kakšna je razlika med Agile in Tradicionalno metodologijo razvoja programske opreme?
Čeprav metoda Agile temelji na iterativnem razvoju kot nekaterih tradicionalnih pristopov, imata Agile in Traditional metodologije ključne razlike. Tradicionalni pristopi uporabljajo načrtovanje kot svoj nadzorni mehanizem, medtem ko modeli Agile povratne informacije uporabnikov uporabljajo kot glavni nadzorni mehanizem. Agile lahko imenujemo pristop, osredotočen na ljudi kot tradicionalne metode. Agile model prinaša delujočo različico izdelka zelo zgodaj v primerjavi s tradicionalnimi metodologijami, tako da lahko kupec nekatere prednosti uresniči že zgodaj. Čas cikla testiranja Agile je v primerjavi s tradicionalnimi metodami razmeroma kratek, saj testiranje poteka vzporedno z razvojem. Večina tradicionalnih modelov je zelo tog in relativno manj prilagodljiv kot model Agile. Zaradi vseh teh prednosti je Agile trenutno prednost pred tradicionalnimi metodologijami.