Agilna proti tradicionalni metodologiji razvoja programske opreme
Danes se v industriji programske opreme uporabljajo številne različne metodologije razvoja programske opreme. Metoda razvoja slapa je ena najzgodnejših metod razvoja programske opreme. V-Model, RUP in nekaj drugih linearnih, iterativnih in kombiniranih linearno-iterativnih metod, ki so prišle po metodologiji slapa, so nameravale odpraviti številne težave metode slapa. Vse te prejšnje metodologije se imenujejo tradicionalne metodologije razvoja programske opreme. Agilni model je novejši model razvoja programske opreme, uveden za odpravo pomanjkljivosti tradicionalnih modelov. Glavni poudarek Agile je vključevanje testiranja čim prej in izdaja delujoče različice izdelka zelo zgodaj, z razčlenitvijo sistema na zelo majhne in obvladljive poddele.
Kaj je tradicionalna metodologija razvoja programske opreme?
Metodologije programske opreme, kot so metoda slapa, V-model in RUP, se imenujejo tradicionalne metodologije razvoja programske opreme. Metodologija slapa je eden najzgodnejših modelov razvoja programske opreme. Kot že ime pove, gre za zaporedni proces, v katerem napredek teče skozi več faz (analiza zahtev, oblikovanje, razvoj, testiranje in implementacija) od zgoraj navzdol, podobno kot slap. V-Model velja za razširitev modela razvoja programske opreme Waterfall. V-Model uporablja enaka razmerja med fazami, definiranimi v modelu Slap. Toda namesto linearnega spuščanja (kot pri modelu slapa) se V-model spusti diagonalno in se nato pomakne nazaj navzgor (po fazi kodiranja), tako da oblikuje obliko črke V. RUP (Rational Unified Process) je prilagodljiv procesni okvir (ne en konkreten proces), ki ga lahko razvojna organizacija prilagodi svojim potrebam. Nekoliko podoben slapu ima fiksne faze, kot so začetek, izdelava, gradnja in prehod. Toda za razliko od slapa je RUP ponavljajoč se proces.
Kaj je Agile?
Agile je zelo nova metodologija razvoja programske opreme (ali pravilneje, skupina metodologij), ki temelji na agilnem manifestu. To je bilo razvito za odpravo nekaterih pomanjkljivosti v tradicionalnih metodologijah razvoja programske opreme. Agilne metode temeljijo na dajanju visoke prioritete sodelovanju strank zgodaj v razvojnem ciklu. Priporoča, da se testiranje s strani stranke vključi zgodaj in čim pogosteje. Testiranje se izvede na vsaki točki, ko je na voljo stabilna različica. Osnova Agile temelji na začetku testiranja od začetka projekta in nadaljevanju do konca projekta. Scrum in Extreme programiranje sta dve izmed najbolj priljubljenih različic agilnih metod.
Ključna vrednost Agile je »kakovost je odgovornost ekipe«, kar poudarja, da je kakovost programske opreme odgovornost celotne ekipe (ne le ekipe za testiranje). Drug pomemben vidik Agile je razčlenitev programske opreme na manjše obvladljive dele in njihova zelo hitra dostava stranki. Dostava delujočega izdelka je izjemnega pomena. Nato ekipa nadaljuje z izboljševanjem programske opreme in neprekinjenim zagotavljanjem pri vsakem večjem koraku. To dosežemo z zelo kratkimi cikli sproščanja (imenovanimi sprinti v Scrumu) in prejemanjem povratnih informacij za izboljšave na koncu vsakega cikla. Sodelujoči brez veliko interakcij ekipe, kot so razvijalci in preizkuševalci v prejšnjih metodah, zdaj sodelujejo znotraj modela Agile.
Kakšna je razlika med agilno in tradicionalno metodologijo razvoja programske opreme?
Čeprav agilna metoda temelji na iterativnem razvoju kot nekateri tradicionalni pristopi, imata agilna in tradicionalna metodologija ključne razlike. Tradicionalni pristopi uporabljajo načrtovanje kot nadzorni mehanizem, medtem ko agilni modeli uporabljajo povratne informacije uporabnikov kot glavni nadzorni mehanizem. Agile lahko imenujemo pristop, osredotočen na ljudi, kot tradicionalne metode. Agilni model zagotavlja delujočo različico izdelka zelo zgodaj v primerjavi s tradicionalnimi metodologijami, tako da lahko stranka že zgodaj spozna nekatere prednosti. Čas testiranja Agile je razmeroma kratek v primerjavi s tradicionalnimi metodami, saj testiranje poteka vzporedno z razvojem. Večina tradicionalnih modelov je zelo togih in relativno manj prilagodljivih kot Agile model. Zaradi vseh teh prednosti ima Agile trenutno prednost pred tradicionalnimi metodologijami.