Agile vs Traditsiooniline tarkvaraarenduse metoodika
Tarkvaratööstuses kasutatakse tänapäeval arvukalt erinevaid tarkvara arendamise metoodikaid. Juga arendamise meetod on üks varasemaid tarkvara arendamise meetodeid. V-mudel, RUP ja mõned muud lineaarsed, iteratiivsed ja kombineeritud lineaarsed-iteratiivsed meetodid, mis tulid jugametoodika järele, olid mõeldud jugameetodi paljude probleemide likvideerimiseks. Kõiki neid varasemaid metoodikaid nimetatakse traditsioonilisteks tarkvaraarenduse metoodikateks. Agiilne mudel on uuem tarkvaraarendusmudel, mis on kasutusele võetud traditsioonilistest mudelitest leitud puuduste kõrvaldamiseks. Agile põhirõhk on testide kaasamisel nii vara kui võimalik ja toote töötava versiooni vabastamine väga varakult, jaotades süsteemi väga väikesteks ja hallatavateks osadeks.
Mis on traditsiooniline tarkvaraarenduse metoodika?
Tarkvara metoodikaid nagu Waterfall meetod, V-Model ja RUP nimetatakse traditsioonilisteks tarkvaraarenduse metoodikateks. Jugametoodika on üks varasemaid tarkvaraarendusmudeleid. Nagu nimest järeldada võib, on tegemist järjestikuse protsessiga, milles progresseerub mitu faasi (vajaduste analüüs, kavandamine, väljatöötamine, katsetamine ja rakendamine) ülalt alla, analoogselt jugaga. V-mudelit peetakse Waterfall tarkvaraarendusmudeli laiendusena. V-mudel kasutab samu suhteid faaside vahel, mis on määratletud jugamudelis. Kuid selle asemel, et laskuda lineaarselt (nagu jugamudel), V-Model astub diagonaalselt alla ja liigub seejärel tagasi üles (pärast kodeerimisetappi), moodustades tähe V. RUP (Rational Unified Process) on kohandatav protsessiraamistik (mitte üks konkreetne protsess), mida arendusorganisatsioon saab kohandada vastavalt oma vajadustele. Veega sarnane, sellel on kindlad etapid nagu algus, väljatöötamine, ehitamine ja üleminek. Kuid erinevalt juga on RUP korduv protsess.
Mis on Agile?
Agile on väga värske tarkvaraarenduse metoodika (või õigemini metoodikate rühm), mis põhineb agiilsel manifestil. See töötati välja traditsiooniliste tarkvaraarenduse metoodikate mõne puuduse kõrvaldamiseks. Agiilsed meetodid põhinevad klientide osalusel kõrge prioriteedina seadmisel arendustsükli alguses. See soovitab lisada testimise kliendi poolt varakult ja nii sageli kui võimalik. Testimine toimub igas punktis, kui stabiilne versioon on saadaval. Agile'i vundament põhineb testimise alustamisel projekti algusest ja jätkumist kogu projekti lõpuni. Scrum ja Extreme programmeerimine on Agile meetodite kõige populaarsemad variatsioonid.
Agile'i põhiväärtus on „kvaliteet on meeskonna vastutus“, mis rõhutab, et tarkvara kvaliteedi eest vastutab kogu meeskond (mitte ainult testimisrühm). Veel üks Agile'i oluline aspekt on tarkvara jaotamine väiksemateks hallatavateks osadeks ja tarnimine kliendile väga kiiresti. Töötava toote tarnimine on ülimalt oluline. Seejärel jätkab meeskond tarkvara täiustamist ja igal suuremal sammul pidevat edastamist. See saavutatakse väga lühikeste vabastamistsüklitega (mida nimetatakse Scrumis sprintideks) ja parandamise tagasiside saamiseks iga tsükli lõpus. Kaasautorid, kellel pole tiimi suuremat suhtlust, näiteks varasemate meetodite arendajad ja testijad, töötavad nüüd Agile mudeli sees.
Mis vahe on agiilsel ja traditsioonilisel tarkvara arendamise metoodikal??
Ehkki Agile meetod põhineb traditsioonilisel lähenemisel iteratiivsel arendusel, on Agile ja Traditional meetoditel peamised erinevused. Traditsiooniliste lähenemisviiside korral kasutatakse juhtimismehhanismina planeerimist, samas kui Agile mudelid kasutavad peamise kontrollimehhanismina kasutajate tagasisidet. Agiilsust võib nimetada rahvakeskseks lähenemiseks kui traditsioonilisi meetodeid. Agile mudel pakub toote töötava versiooni traditsiooniliste meetoditega võrreldes väga varakult, nii et klient saaks juba mõnda aega kasu saada. Agile'i testitsükli aeg on võrreldes traditsiooniliste meetoditega suhteliselt lühike, kuna testimine toimub paralleelselt arendamisega. Enamik traditsioonilisi mudeleid on väga jäigad ja suhteliselt vähem paindlikud kui Agile mudelid. Kõigi nende eeliste tõttu eelistatakse Agile'i traditsiooniliste metoodikate asemel.