Veikla vs tradicionālā programmatūras izstrādes metodika
Mūsdienās programmatūras nozarē tiek izmantotas vairākas dažādas programmatūras izstrādes metodoloģijas. Ūdenskrituma attīstības metode ir viena no agrākajām programmatūras izstrādes metodēm. V-modelis, RUP un dažas citas lineāras, iteratīvas un kombinētas lineāri-iteratīvas metodes, kas radās pēc ūdenskrituma metodoloģijas, paredzēja likvidēt daudzus ūdenskrituma metodes jautājumus. Visas šīs iepriekšējā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ātos trūkumus. Agile galvenais uzsvars ir pēc iespējas agrīnākas testēšanas iekļaušana un produkta darba versijas izlaišana ļ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, Waterfall metodi, V-Model un RUP, sauc par tradicionālajām programmatūras izstrādes metodoloģijā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 plūst vairākās fāzēs (prasību analīze, projektēšana, izstrāde, testēšana un ieviešana) no augšas uz leju, kas ir analogs ūdenskritumam. V-Model tiek uzskatīts par Waterfall programmatūras izstrādes modeļa paplašinājumu. V modelis izmanto tās pašas attiecības starp fāzēm, kas noteiktas ūdenskrituma modelī. Tā vietā, lai nolaistos lineāri (piemēram, ūdenskrituma modelim), V-modelis atkāpjas 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 procesa ietvars (nevis viens konkrēts process), kuru attīstības organizācija var pielāgot savām vajadzībām. Nedaudz līdzīgs ūdenskritumam, tam ir fiksētas fāzes kā sākums, izstrāde, uzbūve un pāreja. Bet atšķirībā no ūdenskrituma RUP ir atkārtots process.
Kas ir veikls?
Agile ir pavisam nesena programmatūras izstrādes metodika (vai pareizāk sakot, metodiku grupa), kuras pamatā ir veikls manifests. Tas tika izstrādāts, lai novērstu dažus trūkumus tradicionālās programmatūras izstrādes metodoloģijās. Agile metožu pamatā ir augsta prioritāte klientu līdzdalībai attīstības cikla sākumā. Tas iesaka savlaicīgi un bieži iekļaut klienta testēšanu. Testēšana tiek veikta katrā brīdī, kad kļūst pieejama stabila versija. Agile dibināšanas pamatā ir testēšanas uzsākšana no projekta sākuma un turpināšana visā projekta beigās. 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ādāšana klientam. Darbīga produkta piegāde ir ārkārtīgi svarīga. Tad komanda turpina pilnveidot programmatūru un nepārtraukti piegādāt katru nozīmīgo soli. Tas tiek panākts, izmantojot ļoti īsus atbrīvošanas ciklus (ko sauc par sprintiem Scrum) un katra cikla beigās saņemot atgriezenisko saiti uzlabojumiem. Līdzstrādnieki bez lielas komandas mijiedarbības, piemēram, izstrādātāji un testētāji iepriekšējās metodēs, tagad strādā kopā Agile modeļa ietvaros.
Kāda ir atšķirība starp veiklo un tradicionālo programmatūras izstrādes metodoloģiju?
Lai arī Agile metode ir balstīta uz iteratīvu attīstību kā dažas no tradicionālajām pieejām, Agile un Traditional metodikām ir būtiskas atšķirības. Tradicionālās pieejas kā vadības mehānismu izmanto plānošanu, savukārt veiklie modeļi kā galveno kontroles mehānismu izmanto lietotāju atsauksmes. Agile var saukt par uz cilvēkiem orientētu pieeju nekā tradicionālās metodes. Agile modelis nodrošina produkta darba versiju ļoti agri, salīdzinot ar tradicionālajām metodikām, lai klients jau agrīnā laikā varētu 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 izstrādei. Lielākā daļa tradicionālo modeļu ir ļoti stingri un salīdzinoši mazāk elastīgi nekā Agile modeļi. Visu šo priekšrocību dēļ Agile šobrīd tiek dota priekšroka salīdzinājumā ar tradicionālajām metodikām.