Extreme Programming vs SCRUM | XP vs SCRUM
Gadu gaitā programmatūras nozarē ir izmantotas dažādas programmatūras izstrādes metodikas, piemēram, Ūdenskrituma izstrādes metode, V-modelis, RUP un dažas citas lineāras, iteratīvas un kombinētas lineāri-iteratīvas metodes. Veikls modelis (vai pareizāk sakot, metodoloģiju grupa) ir jaunāks programmatūras izstrādes modelis, ko ieviesa Agile manifests, lai novērstu trūkumus, kas konstatēti šajās tradicionālajās programmatūras izstrādes metodikās.
Veiklu metožu pamatā ir iteratīva izstrāde, un kā galveno vadības mehānismu tiek izmantotas lietotāju atsauksmes. Veiklu var saukt par cilvēku orientētu pieeju nekā tradicionālās metodes. Veikls modelis ļoti agri piegādā produkta darba versiju, sadalot sistēmu ļoti mazās un pārvaldāmās daļās, 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. Visu šo priekšrocību dēļ pašlaik priekšroka tiek dota agilajām metodēm, nevis tradicionālajām metodēm. Scrum un Extreme programmēšana ir divas populārākās Agile metožu variācijas.
Kas ir SCRUM?
Kā minēts iepriekš, SCRUM ir inkrementāls un iteratīvs projektu vadības process, kas pieder Agile metožu saimei. SCRUM pamatā ir galvenā prioritāte klientu līdzdalībai izstrādes cikla sākumā. Tā iesaka klienta testēšanu iekļaut savlaicīgi un bieži. Testēšana tiek veikta katrā brīdī, kad kļūst pieejama stabila versija. SCRUM dibināšanas pamatā ir testēšanas sākšana no projekta sākuma un turpināšana līdz projekta beigām.
SCRUM 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 SCRUM 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 (sauktus par sprintiem) un katra cikla beigās saņemot atsauksmes par uzlabojumiem.
SCRUM nosaka vairākas galvenās lomas, lai netraucēti darbotos izstrādes komanda. Viņi ir Produkta īpašnieks (kurš pārstāv klientu un uztur produkta neizpildi), Scrum meistars (kurš darbojas kā komandas organizators un koordinators, vadot scrum sanāksmes, uzturot sprinta atpalicību un sadedzinot diagrammas) un citi komandas locekļi. Komanda var sastāvēt no tradicionālām lomām, taču lielākoties tās ir pašpārvaldes komandas. Galvenie Scrum artefakti ir produkta neizpilde / izlaišanas neizpilde (vēlmju saraksts), Sprint kavējumi / defektu kavējumi (uzdevumi katrā atkārtojumā), diagrammu sadedzināšana (atlikušais darbs pret datumu). Galvenās SCRUM ceremonijas ir Produktu neizpildītā sanāksme, Sprint sanāksme un Retrospect sanāksme.
Kas ir galējā programmēšana?
Extreme Programming (saīsināti XP) ir programmatūras izstrādes metodika, kas pieder Agile modelim. Galējā programmēšana veic posmus ļoti mazos nepārtrauktos soļos (salīdzinājumā ar tradicionālajām metodēm). Pirmā caurlaide, kas prasa tikai dienu vai nedēļu, ir tīši nepilnīga. Lai nodrošinātu konkrētus mērķus programmatūras izstrādei, sākumā tiek rakstīti automatizēti testi. Tad izstrādātāji veic kodēšanu. Galvenā uzmanība tiek pievērsta programmēšanai kā pāriem. Kad visi testi ir nokārtoti, kodēšana tiek uzskatīta par pabeigtu. Nākamais posms ir dizains un arhitektūra, kas nodarbojas ar koda atjaunošanu tajā pašā programmētāju komplektā. Šī posma beigās nepilnīgs (bet funkcionāls) produkts tiek prezentēts ieinteresētajām personām. Tūlīt pēc tam sākas nākamais posms (kas koncentrējas uz nākamo vissvarīgāko funkciju kopumu).
Kāda ir atšķirība starp Extreme Programming un SCRUM?
Extreme Programming un SCRUM ir saprotami ļoti līdzīgas un saskaņotas metodikas. Tomēr starp šīm divām metodēm ir smalkas, bet svarīgas atšķirības. SCRUM sprints ilgst 2-4 nedēļas, savukārt tipiskās XP atkārtošanas reizes ir īsākas (pēdējās 1-2 nedēļas). Parasti SCRUM komandas neļauj mainīt sprintus, taču XP komandas ir nedaudz elastīgākas izmaiņām iterācijās. Piemēram, pēc sprinta plānošanas šī sprinta priekšmetu kopums paliek nemainīgs, bet funkciju, ar kuru vēl nav sākts strādāt, jebkurā laikā var nomainīt ar kādu citu XP funkciju. Vēl viena atšķirība starp XP un SCRUM ir tā, ka XP izstrādāto funkciju secība ir stingri noteikta klienta prioritātei, savukārt SCRUM komanda izlemj priekšmetu secību (pēc tam, kad SCRUM Produkta īpašnieks ir noteicis produkta uzkrājumu).
Atšķirībā no XP, SCRUM nenosaka nekādas inženierijas prakses. Piemēram, XP virza tādas prakses kā testu virzīta izstrāde (TDD), pāru programmēšana, pārstrukturēšana utt. Tomēr daži uzskata, ka prakses kopuma noteikšana pašorganizējošām komandām var negatīvi ietekmēt, un to var uzskatīt XP trūkums. Vēl viens Extreme programmēšanas trūkums ir tāds, ka nepieredzējušām komandām var būt tendence refaktorēt bez jebkādiem automatizētiem testiem vai TDD (vai vienkārši uzlaušanas). Tāpēc daži uzskata, ka SCRUM ir labāk piemērots skatieniem (jo tas sniedz lielus uzlabojumus, vienkārši izmantojot koncentrētas laika lodziņa atkārtojumus), un XP ir piemērots nedaudz nobriedušām komandām, kuras ir atklājušas iepriekšminētās prakses vērtību (nevis izmanto tās, jo viņiem ir lūgts darīt tā).