Agile vs traditsiooniline tarkvaraarenduse metoodika
Tarkvaratööstuses on tänapäeval kasutusel mitmeid erinevaid tarkvaraarenduse metoodikaid. Juga arendusmeetod on üks varasemaid tarkvaraarendusmeetodeid. V-Model, RUP ja mõned muud lineaarsed, iteratiivsed ja kombineeritud lineaarsed-iteratiivsed meetodid, mis tulid pärast juga metoodikat, kavatsesid kustutada paljud kose meetodi küsimused. Kõiki neid varasemaid metoodikaid nimetatakse traditsioonilisteks tarkvaraarendusmetoodikateks. Agile mudel on uuem tarkvaraarendusmudel, mis võeti kasutusele traditsioonilistes mudelites leitud puuduste kõrvaldamiseks. Agile'i põhirõhk on võimalikult varakult testimise kaasamine ja toote tööversiooni väljaandmine väga varakult, jaotades süsteemi väga väikesteks ja juhitavateks osadeks.
Mis on traditsiooniline tarkvaraarenduse metoodika?
Tarkvarametoodikaid nagu Waterfall meetod, V-Model ja RUP nimetatakse traditsioonilisteks tarkvaraarendusmetoodikateks. Juga metoodika on üks varasemaid tarkvaraarenduse mudeleid. Nagu nimest võib järeldada, on see järjestikune protsess, kus progress liigub läbi mitme faasi (nõuete analüüs, kavandamine, arendamine, testimine ja rakendamine) ülalt alla, analoogselt juga. V-mudelit peetakse tarkvara Waterfall tarkvara arendamise mudeli laienduseks. V-mudel kasutab samu samme faaside vahel, mis on määratletud juga mudelis. Kuid selle asemel, et langeda lineaarselt (nagu näiteks juga mudel), astub V-mudel diagonaalselt alla ja liigub seejärel tagasi (pärast kodeerimisfaasi), moodustades V-tähe kuju. RUP (Rational Unified Process) on kohandatav protsessiraamistik (mitte üks konkreetne protsess),mida arendusorganisatsioon saab vastavalt oma vajadustele kohandada. Veidi sarnane juga on sellel fikseeritud faasid alguse, väljatöötamise, ehitamise ja üleminekuna. Kuid erinevalt kosest on RUP korduv protsess.
Mis on vilgas?
Agile on väga värske tarkvaraarenduse metoodika (või õigemini metoodikate rühm), mis põhineb väledal manifestil. See töötati välja traditsiooniliste tarkvaraarendusmetoodikate mõningate puuduste kõrvaldamiseks. Agile meetodid põhinevad kliendi osaluse esmatähtsal arvestamisel arendustsükli alguses. See soovitab lisada kliendi testid varakult ja sageli. Testimine toimub igas punktis, kui saadaval on stabiilne versioon. Agile'i aluseks on testimise alustamine alates projekti algusest ja jätkamine kogu projekti lõpuni. Scrum ja Extreme programmeerimine on Agile meetodite kaks kõige populaarsemat varianti.
Agile'i põhiväärtus on “kvaliteet on meeskonna vastutus”, mis rõhutab, et tarkvara kvaliteedi eest vastutab kogu meeskond (mitte ainult testimisrühm). Agile üks oluline aspekt on tarkvara jaotamine väiksemateks juhitavateks osadeks ja nende ülikiire tarnimine kliendile. Töötava toote tarnimine on ülimalt tähtis. Seejärel jätkab meeskond tarkvara täiustamist ja toimetab pidevalt igal suuremal sammul. See saavutatakse väga lühikeste vabastamistsüklitega (mida Scrumis nimetatakse sprintideks) ja iga tsükli lõpus tagasiside saamiseks parendamiseks. Kaasautorid, kellel pole meeskonna vahelist suhtlemist, nagu varasemate meetodite arendajad ja testijad, töötavad nüüd Agile mudelis koos.
Mis vahe on agiilsel ja traditsioonilisel tarkvaraarenduse metoodikal?
Ehkki Agile meetod põhineb iteratiivsel arendamisel nagu mõned traditsioonilised lähenemised, on Agile ja Traditional meetoditel peamised erinevused. Traditsioonilised lähenemised kasutavad juhtimismehhanismina planeerimist, Agile mudelid kasutavad kasutajate tagasisidet peamise juhtimismehhanismina. Agiilsust võib nimetada rahvakeskseks lähenemiseks kui traditsioonilisi meetodeid. Agile mudel pakub toote tööversiooni traditsiooniliste meetoditega võrreldes väga varakult, et klient saaks mõnda kasu juba varakult realiseerida. Agile testimise tsükli aeg on võrreldes traditsiooniliste meetoditega suhteliselt lühike, sest testimine toimub paralleelselt arendusega. Enamik traditsioonilisi mudeleid on väga jäigad ja suhteliselt vähem paindlikud kui Agile mudel. Kõigi nende eeliste tõttu on praegusel ajal traditsiooniliste metoodikate asemel eelistatud Agile.