Atšķirība starp ekstrēmo programmēšanu un SCRUM

Atšķirība starp ekstrēmo programmēšanu un SCRUM
Atšķirība starp ekstrēmo programmēšanu un SCRUM

Video: Atšķirība starp ekstrēmo programmēšanu un SCRUM

Video: Atšķirība starp ekstrēmo programmēšanu un SCRUM
Video: Базовые схемы включения транзистора - Общий эмиттер. 2024, Novembris
Anonim

Extreme Programming vs SCRUM | XP pret SCRUM

Gadu gaitā programmatūras nozarē ir izmantotas vairākas dažādas programmatūras izstrādes metodoloģijas, 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. Agile modelis (vai pareizāk sakot, metodiku grupa) ir jaunāks programmatūras izstrādes modelis, ko ieviesa Agile manifests, lai novērstu šajās tradicionālajās programmatūras izstrādes metodoloģijās konstatētos trūkumus.

Agile metodes ir balstītas uz iteratīvu izstrādi un 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, sadalot sistēmu ļoti mazās un pārvaldāmās apakšdaļās, 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. Visu šo priekšrocību dēļ šobrīd Agile metodēm tiek dota priekšroka salīdzinājumā ar tradicionālajām metodēm. Scrum un Extreme programmēšana ir divas no populārākajām Agile metožu variācijām.

Kas ir SCRUM?

Kā minēts iepriekš, SCRUM ir pakāpenisks un iteratīvs projektu pārvaldības process, kas pieder Agile metožu saimei. SCRUM pamatā ir augstas prioritātes piešķiršana 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. SCRUM pamats ir balstīts uz testēšanas sākšanu no projekta sākuma un turpināšanu 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 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 (sauktus par sprintiem) un katra cikla beigās saņemot atsauksmes par uzlabojumiem.

SCRUM definē vairākas galvenās lomas attīstības komandas vienmērīgai darbībai. Tie ir Produkta īpašnieks (kurš pārstāv klientu un uztur nepabeigto produktu daudzumu), Scrum meistars (kurš darbojas kā komandas organizators un koordinators, vadot scrum sanāksmes, uzturot sprinta neizpildes un sadedzināšanas diagrammas) un citi komandas locekļi. Komanda var sastāvēt no tradicionālajām lomām, bet pārsvarā tās ir pašpārvaldes komandas. Galvenie Scrum artefakti ir neizpildītie produkti/izlaidumi (vēlmju saraksts), Sprint neizpildītie/defektu uzkrājumi (uzdevumi katrā iterācijā), sadedzināšanas diagrammas (atlikušais darbs pret datumu). Galvenās SCRUM ceremonijas ir produktu atpalicības sanāksme, sprinta sanāksme un retrospektīva sanāksme.

Kas ir ekstrēmā programmēšana?

Extreme Programming (saīsināti XP) ir programmatūras izstrādes metodoloģija, kas pieder pie Agile modeļa. Ekstrēmā programmēšana veic fāzes ļoti mazos nepārtrauktos soļos (salīdzinājumā ar tradicionālajām metodēm). Pirmā caurlaide, kas aizņem tikai dienu vai nedēļu, ir apzināti nepilnīga. Lai nodrošinātu konkrētus programmatūras izstrādes mērķus, sākumā tiek rakstīti automatizēti testi. Pēc tam izstrādātāji veic kodēšanu. Galvenā uzmanība tiek pievērsta programmēšanai pāriem. Kad visas pārbaudes ir nokārtotas, kodēšana tiek uzskatīta par pabeigtu. Nākamais posms ir dizains un arhitektūra, kas nodarbojas ar koda pārveidošanu, ko veic tas pats programmētāju komplekts. Šīs fāzes beigās ieinteresētajām pusēm tiek prezentēts nepilnīgs (bet funkcionāls) produkts. Uzreiz pēc tam sākas nākamais posms (kurā galvenā uzmanība pievērsta nākamajai svarīgāko funkciju kopai).

Kāda ir atšķirība starp Extreme Programming un SCRUM?

Extreme Programming un SCRUM ir saprotami ļoti līdzīgas un saskaņotas metodoloģijas. Tomēr starp šīm divām metodēm pastāv smalkas, bet būtiskas atšķirības. SCRUM sprints ilgst 2–4 nedēļas, savukārt tipiskās XP atkārtošanās ir īsākas (pēdējās 1–2 nedēļas). Parasti SCRUM komandas nepieļauj izmaiņas sprintos, taču XP komandas ir nedaudz elastīgākas attiecībā uz izmaiņām iterāciju ietvaros. Piemēram, pēc sprinta plānošanas šī sprinta vienumu kopa paliek nemainīga, bet līdzekli, kas nav sācis darboties, jebkurā laikā var aizstāt ar kādu citu XP līdzekli. Vēl viena atšķirība starp XP un SCRUM ir tāda, ka XP izstrādāto funkciju secību klients stingri nosaka prioritārā secībā, savukārt SCRUM komanda izlemj vienumu secību (pēc tam, kad SCRUM produkta īpašnieks ir noteicis produktu atlikumu par prioritāti).

Atšķirībā no XP, SCRUM nenosaka nekādu inženiertehnisko praksi. Piemēram, XP pamatā ir tādas metodes kā testu vadīta izstrāde (TDD), pāru programmēšana, pārstrukturēšana utt. Tomēr daži uzskata, ka prakses kopuma noteikšanai pašorganizējošām komandām var būt negatīva ietekme, un to var apsvērt. XP trūkums. Vēl viens Extreme programmēšanas trūkums ir tas, ka nepieredzējušām komandām var būt tendence pārstrukturē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āks skatīšanās nolūkos (jo tas sniedz lielus uzlabojumus, vienkārši izmantojot koncentrētas timebox iterācijas), un XP ir piemērots nedaudz nobriedušām komandām, kuras ir atklājušas iepriekš minēto prakšu vērtību (nevis izmanto tās tāpēc, ka viņiem ir lūgts). lai to izdarītu).

Ieteicams: