Skirtumas tarp ekstremalaus programavimo ir SCRUM

Skirtumas tarp ekstremalaus programavimo ir SCRUM
Skirtumas tarp ekstremalaus programavimo ir SCRUM

Video: Skirtumas tarp ekstremalaus programavimo ir SCRUM

Video: Skirtumas tarp ekstremalaus programavimo ir SCRUM
Video: NEW 95 kodas 2 pamoka. Stabdymo sistemos. Pneumatinės sistemos. Gedimai. 2024, Liepa
Anonim

Extreme Programming vs SCRUM | XP prieš SCRUM

Bėgant metams programinės įrangos pramonėje buvo naudojama daugybė skirtingų programinės įrangos kūrimo metodikų, tokių kaip „Waterfall“kūrimo metodas, „V-Model“, RUP ir keli kiti linijiniai, pasikartojantys ir kombinuoti linijiniai-iteratyvūs metodai. Agile modelis (arba, tiksliau, metodikų grupė) yra naujesnis programinės įrangos kūrimo modelis, pristatytas Agile manifeste, siekiant pašalinti tradicinių programinės įrangos kūrimo metodikų trūkumus.

Agile metodai yra pagrįsti kartotiniu kūrimu ir naudoja vartotojų atsiliepimus kaip pagrindinį valdymo mechanizmą. Agile gali būti vadinamas į žmones orientuotu požiūriu nei tradiciniai metodai. Agile modelis pristato veikiančią produkto versiją labai anksti, suskaidydamas sistemą į labai mažas ir valdomas dalis, kad klientas galėtų anksti suvokti kai kuriuos pranašumus. Agile testavimo ciklo laikas yra palyginti trumpas, palyginti su tradiciniais metodais, nes testavimas atliekamas lygiagrečiai su kūrimu. Dėl visų šių pranašumų šiuo metu Agile metodams teikiama pirmenybė, o ne tradicinėms metodikoms. Scrum ir Extreme programavimas yra du populiariausi Agile metodų variantai.

Kas yra SCRUM?

Kaip minėta, SCRUM yra laipsniškas ir pasikartojantis projektų valdymo procesas, priklausantis Agile metodų šeimai. SCRUM yra pagrįsta tuo, kad pirmenybė teikiama klientų dalyvavimui kūrimo ciklo pradžioje. Rekomenduoja kliento atliekamus bandymus įtraukti kuo anksčiau ir dažniau. Testavimas atliekamas kiekviename taške, kai atsiranda stabili versija. SCRUM pagrindas yra bandymų pradžia nuo projekto pradžios ir tęsimas iki projekto pabaigos.

Pagrindinė SCRUM vertė yra „kokybė yra komandos atsakomybė“, o tai pabrėžia, kad už programinės įrangos kokybę atsako visa komanda (ne tik testavimo komanda). Kitas svarbus SCRUM aspektas yra programinės įrangos suskaidymas į mažesnes valdomas dalis ir labai greitas jų pristatymas klientui. Labai svarbu pristatyti veikiantį produktą. Tada komanda toliau tobulina programinę įrangą ir nuolat pristato kiekvieną svarbų žingsnį. Tai pasiekiama naudojant labai trumpus atleidimo ciklus (vadinamus sprintais) ir kiekvieno ciklo pabaigoje gavus atsiliepimus, kad būtų galima tobulinti.

SCRUM apibrėžia kelis pagrindinius vaidmenis sklandžiam kūrimo komandos darbui. Jie yra Produkto savininkas (atstovaujantis klientui ir tvarkantis produktų atsilikimą), Scrum meistras (kuris veikia kaip komandos organizatorius ir koordinatorius, vesdamas scrum susitikimus, tvarkydamas sprinto atsilikimą ir degimo diagramas) ir kiti komandos nariai. Komandą gali sudaryti tradiciniai vaidmenys, tačiau dažniausiai tai yra save valdančios komandos. Pagrindiniai „Scrum“artefaktai yra neatsiliktų produktų / išleidimo (norų sąrašas), „Sprint“atsilikimų / defektų (užduotys kiekvienoje iteracijoje), sudeginimo diagramos (likęs darbas ir data). Pagrindinės SCRUM ceremonijos yra susitikimas su gaminių skaičiumi, sprinto susitikimas ir retrospektyvos susitikimas.

Kas yra ekstremalus programavimas?

Extreme Programming (sutrumpintai XP) yra programinės įrangos kūrimo metodika, priklausanti Agile modeliui. Ekstremalus programavimas fazes atlieka labai mažais nuolatiniais žingsneliais (palyginti su tradiciniais metodais). Pirmasis praėjimas, kuris trunka tik dieną ar savaitę, yra sąmoningai neišsamus. Siekiant numatyti konkrečius programinės įrangos kūrimo tikslus, pradžioje rašomi automatizuoti testai. Tada kūrėjai atlieka kodavimą. Pagrindinis dėmesys skiriamas programavimui poromis. Kai visi testai praeina, kodavimas laikomas baigtu. Kitas etapas yra dizainas ir architektūra, kurie susiję su to paties programuotojų rinkinio kodo pertvarkymu. Šio etapo pabaigoje suinteresuotoms šalims pristatomas nepilnas (bet funkcionalus) produktas. Iškart po to prasideda kitas etapas (kuris sutelkiamas į kitą svarbiausių funkcijų rinkinį).

Kuo skiriasi Extreme Programming ir SCRUM?

Extreme Programming ir SCRUM, suprantama, yra labai panašios ir suderintos metodikos. Tačiau tarp šių dviejų metodų yra subtilių, bet svarbių skirtumų. SCRUM sprintai trunka 2–4 savaites, o įprastos XP iteracijos yra trumpesnės (paskutinės 1–2 savaitės). Paprastai SCRUM komandos neleidžia keisti sprintų, tačiau XP komandos yra šiek tiek lankstesnės prie pakeitimų iteracijų metu. Pavyzdžiui, po sprinto planavimo to sprinto elementų rinkinys lieka nepakitęs, tačiau nepradėjusią funkciją bet kada galima pakeisti kita XP funkcija. Kitas skirtumas tarp XP ir SCRUM yra tas, kad XP sukurtų funkcijų eiliškumą griežtai nustato klientas, o SCRUM komanda nusprendžia prekių eiliškumą (SCRUM produkto savininkui nustačius pirmenybę produkto atsilikimui).

Skirtingai nei XP, SCRUM nenustato jokios inžinerinės praktikos. Pavyzdžiui, XP veikia tokia praktika kaip testuojamas kūrimas (TDD), porinis programavimas, pertvarkymas ir kt. Tačiau kai kurie mano, kad tam tikros praktikos įpareigojimai savarankiškai besiorganizuojančioms komandoms gali turėti neigiamą poveikį, ir tai gali būti svarstoma. XP trūkumas. Kitas Extreme programavimo trūkumas yra tas, kad nepatyrusios komandos gali būti linkusios persitvarkyti be jokių automatinių testų ar TDD (arba tiesiog įsilaužimo). Todėl kai kurie mano, kad SCRUM yra geresnis stebėjimui (nes jis atneša didelių patobulinimų tiesiog per tikslines laiko dėžės iteracijas), o XP tinka šiek tiek subrendusioms komandoms, kurios atrado aukščiau paminėtų praktikų vertę (o ne jas naudoja, nes jų buvo paklausta). tai padaryti).

Rekomenduojamas: