Agile vs tradicionālā programmatūras izstrādes metodika
Mūsdienās programmatūras nozarē tiek izmantotas dažādas programmatūras izstrādes metodikas. Ūdenskrituma attīstības metode ir viena no agrākajām programmatūras izstrādes metodēm. V-Model, RUP un dažas citas lineāras, iteratīvas un kombinētas lineāri-iteratīvas metodes, kas radās pēc ūdenskrituma metodikas, bija paredzētas, lai iznīcinātu daudzus ūdenskrituma metodes jautājumus. Visas šīs agrākās metodoloģijas sauc par tradicionālajām programmatūras izstrādes metodikām. Veikls modelis ir jaunāks programmatūras izstrādes modelis, kas ieviests, lai novērstu tradicionālajos modeļos atklātās nepilnības. Galvenā Agile uzmanība ir saistīta ar testēšanu pēc iespējas agrāk un produkta darba versijas izlaišanu ļoti agri, 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 metodoloģijas, piemēram, Ūdenskrituma metodi, V-modeli un RUP, sauc par tradicionālām programmatūras izstrādes metodikām. Ūdenskrituma metodika ir viens no agrākajiem programmatūras izstrādes modeļiem. Kā norāda nosaukums, tas ir secīgs process, kurā progress virzās 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ā ūdenskritumam. V-Model tiek uzskatīts par Waterfall programmatūras izstrādes modeļa paplašinājumu. V-Model izmanto tās pašas sakarības starp fāzēm, kas noteiktas ūdenskrituma modelī. Bet tā vietā, lai pazeminātu lineāri (piemēram, ūdenskrituma modelis), V-modelis pa diagonāli nolaižas un pēc tam pārvietojas atpakaļ uz augšu (pēc kodēšanas fāzes), veidojot V burta formu. RUP (Rational Unified Process) ir pielāgojams procesa ietvars (nevis viens konkrēts process),ko attīstības organizācija var pielāgot atbilstoši savām vajadzībām. Nedaudz līdzīgs ūdenskritumam, tam ir noteiktas fāzes kā sākums, izstrāde, būvniecība un pāreja. Bet atšķirībā no ūdenskrituma, RUP ir iteratīvs process.
Kas ir veikls?
Agile ir pavisam nesen izstrādāta 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. Veiklu metožu pamatā ir liela prioritāte klientu līdzdalībai izstrādes cikla sākumā. Tā iesaka klienta testēšanu iekļaut savlaicīgi un pēc iespējas biežāk. Testēšana tiek veikta katrā brīdī, kad kļūst pieejama stabila versija. Agile pamats ir testēšanas sākšana no projekta sākuma un turpināšana līdz projekta beigām. Scrum un Extreme programmēšana ir divas populārākās Agile metožu variācijas.
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 to piegāde klientam. Darba produkta piegāde ir ārkārtīgi svarīga. Tad komanda turpina programmatūras uzlabošanu un nepārtrauktu piegādi katrā nozīmīgākajā solī. Tas tiek panākts, izmantojot ļoti īsus atbrīvošanas ciklus (kurus Scrum sauc par sprintiem) un katra cikla beigās saņemot atsauksmes par uzlabojumiem. Atbalstītāji bez īpašas komandas mijiedarbības, piemēram, izstrādātāji un testētāji iepriekšējās metodēs, tagad strādā kopā Agile modelī.
Kāda ir atšķirība starp veiklu un tradicionālu programmatūras izstrādes metodiku?
Lai gan Agile metode ir balstīta uz iteratīvu attīstību, jo dažas no tradicionālajām pieejām, Agile un Traditional metodoloģijā ir būtiskas atšķirības. Tradicionālās pieejas kā plānošanas mehānismu izmanto plānošanu, savukārt Agile modeļi kā galveno vadības mehānismu izmanto lietotāju atsauksmes. Veiklu var saukt par cilvēku orientētu pieeju nekā tradicionālās metodes. Veikls modelis nodrošina produkta darba versiju ļoti agri, salīdzinot ar tradicionālajām metodikām, lai klients varētu laicīgi 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 tiek veikta paralēli attīstībai. 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ēļ pašlaik priekšroka tiek dota Agilei, nevis tradicionālajai metodikai.