Agile pret tradicionālo programmatūras izstrādes metodiku
Mūsdienās programmatūras nozarē tiek izmantotas dažādas programmatūras izstrādes metodoloģijas. Ūdenskrituma izstrādes metode ir viena no senākajām programmatūras izstrādes metodēm. V-Model, RUP un dažas citas lineārās, iteratīvās un kombinētās lineāri iteratīvās metodes, kas radās pēc ūdenskrituma metodoloģijas, bija paredzētas, lai novērstu daudzas ūdenskrituma metodes problēmas. Visas šīs agrākās metodes sauc par tradicionālajām programmatūras izstrādes metodoloģijām. Agile modelis ir jaunāks programmatūras izstrādes modelis, kas ieviests, lai novērstu tradicionālajos modeļos konstatētos trūkumus. Agile galvenais mērķis ir pēc iespējas agrākas testēšanas iekļaušana un produkta darba versijas izlaišana ļoti agrīnā stadijā, sadalot sistēmu ļoti mazās un pārvaldāmās apakšdaļās.
Kas ir tradicionālā programmatūras izstrādes metodika?
Programmatūras metodikas, piemēram, Waterfall metodi, V-Model un RUP, sauc par tradicionālajām programmatūras izstrādes metodoloģijām. Ūdenskrituma metodoloģija ir viens no agrākajiem programmatūras izstrādes modeļiem. Kā norāda nosaukums, tas ir secīgs process, kurā progress plūst cauri vairākām fāzēm (prasību analīze, projektēšana, izstrāde, testēšana un ieviešana) no augšas uz leju, līdzīgi kā ūdenskritums. V-Model tiek uzskatīts par Waterfall programmatūras izstrādes modeļa paplašinājumu. V-Model izmanto tās pašas attiecības starp fāzēm, kas definētas Waterfall modelī. Bet tā vietā, lai lineāri lejup (kā ūdenskrituma modelim), V-modelis nokāpj pa diagonāli un pēc tam virzās atpakaļ uz augšu (pēc kodēšanas fāzes), veidojot burta V formu. RUP (Rational Unified Process) ir pielāgojams procesu ietvars (nevis viens konkrēts process), ko izstrādes organizācija var pielāgot atbilstoši savām vajadzībām. Nedaudz līdzīgs ūdenskritumam, tam ir noteiktas fāzes, piemēram, izveide, izstrāde, būvniecība un pāreja. Taču atšķirībā no ūdenskrituma RUP ir iteratīvs process.
Kas ir Agile?
Agile ir ļoti jauna programmatūras izstrādes metodoloģija (vai pareizāk sakot, metodoloģiju grupa), kuras pamatā ir veikls manifests. Tas tika izstrādāts, lai novērstu dažus trūkumus tradicionālajās programmatūras izstrādes metodoloģijās. Agile metodes ir balstītas uz augstas prioritātes piešķiršanu klientu līdzdalībai izstrādes cikla sākumā. Tā iesaka pēc iespējas agrāk un biežāk iekļaut klienta veikto testēšanu. Testēšana tiek veikta katrā punktā, kad kļūst pieejama stabila versija. Agile pamats ir balstīts uz testēšanas sākšanu no projekta sākuma un turpināšanu līdz projekta beigām. Scrum un Extreme programmēšana ir divas no populārākajām Agile metožu variācijām.
Agile galvenā vērtība ir “kvalitāte ir komandas atbildība”, kas uzsver, ka par programmatūras kvalitāti ir atbildīga visa komanda (ne tikai testēšanas komanda). Vēl viens svarīgs Agile aspekts ir programmatūras sadalīšana mazākās pārvaldāmās daļās un ļoti ātra piegāde klientam. Darbīga produkta piegāde ir ārkārtīgi svarīga. Pēc tam komanda turpina uzlabot programmatūru un nodrošināt nepārtrauktu piegādi katrā galvenajā posmā. Tas tiek panākts, izmantojot ļoti īsus atbrīvošanas ciklus (Scrum sauc par sprintiem) un katra cikla beigās saņemot atsauksmes par uzlabojumiem. Līdzautori bez īpašas komandas mijiedarbības, piemēram, iepriekšējo metožu izstrādātāji un testētāji, tagad strādā kopā Agile modelī.
Kāda ir atšķirība starp elastīgo un tradicionālo programmatūras izstrādes metodiku?
Lai gan Agile metode ir balstīta uz iteratīvu izstrādi, jo dažas no tradicionālajām pieejām, Agile un Traditional metodoloģijām ir būtiskas atšķirības. Tradicionālās pieejas izmanto plānošanu kā kontroles mehānismu, savukārt Agile modeļi izmanto lietotāju atsauksmes kā galveno kontroles mehānismu. Agile var saukt uz cilvēku orientētu pieeju nekā tradicionālās metodes. Agile modelis nodrošina produkta darba versiju ļoti agri, salīdzinot ar tradicionālajām metodoloģijām, lai klients varētu agri realizēt dažas priekšrocības. Agile testēšanas cikla laiks ir salīdzinoši īss, salīdzinot ar tradicionālajām metodēm, jo testēšana notiek paralēli izstrādei. Lielākā daļa tradicionālo modeļu ir ļoti stingri un salīdzinoši mazāk elastīgi nekā Agile modelis. Visu šo priekšrocību dēļ Agile pašlaik tiek dota priekšroka salīdzinājumā ar tradicionālajām metodēm.