Razlika med ekstremnim programiranjem in SCRUM

Razlika med ekstremnim programiranjem in SCRUM
Razlika med ekstremnim programiranjem in SCRUM

Video: Razlika med ekstremnim programiranjem in SCRUM

Video: Razlika med ekstremnim programiranjem in SCRUM
Video: Обзор Motorola XOOM 2 2024, November
Anonim

Ekstremno programiranje proti SCRUM | XP proti SCRUM

V preteklih letih se je v industriji programske opreme uporabljalo veliko različnih metodologij za razvoj programske opreme, kot je metoda razvoja slapa, V-model, RUP in nekaj drugih linearnih, iterativnih in kombiniranih linearno-iterativnih metod. Agilni model (ali pravilneje skupina metodologij) je novejši model razvoja programske opreme, ki ga je uvedel Agilni manifest za odpravo pomanjkljivosti teh tradicionalnih metodologij razvoja programske opreme.

Agilne metode temeljijo na iterativnem razvoju in uporabljajo povratne informacije uporabnikov kot glavni nadzorni mehanizem. Agile lahko imenujemo pristop, osredotočen na ljudi, kot tradicionalne metode. Agilni model zagotavlja delujočo različico izdelka že zelo zgodaj z razdelitvijo sistema na zelo majhne in obvladljive poddele, tako da lahko stranka že zgodaj spozna nekatere prednosti. Čas testiranja Agile je razmeroma kratek v primerjavi s tradicionalnimi metodami, saj testiranje poteka vzporedno z razvojem. Zaradi vseh teh prednosti imajo Agile metode trenutno prednost pred tradicionalnimi metodologijami. Scrum in Extreme programiranje sta dve izmed najbolj priljubljenih različic agilnih metod.

Kaj je SCRUM?

Kot je omenjeno zgoraj, je SCRUM inkrementalni in iterativni proces vodenja projektov, ki spada v družino metod Agile. SCRUM temelji na dajanju velike prednosti sodelovanju strank zgodaj v razvojnem ciklu. Priporoča, da se testiranje s strani stranke vključi zgodaj in čim pogosteje. Testiranje se izvede na vsaki točki, ko je na voljo stabilna različica. Osnova SCRUM-a temelji na začetku testiranja od začetka projekta in nadaljevanju do konca projekta.

Ključna vrednost SCRUM-a je »kakovost je odgovornost ekipe«, kar poudarja, da je kakovost programske opreme odgovornost celotne ekipe (ne le ekipe za testiranje). Drug pomemben vidik SCRUM-a je razčlenitev programske opreme na manjše obvladljive dele in njihova zelo hitra dostava stranki. Dostava delujočega izdelka je izjemnega pomena. Nato ekipa nadaljuje z izboljševanjem programske opreme in neprekinjenim zagotavljanjem pri vsakem večjem koraku. To se doseže z zelo kratkimi cikli sproščanja (imenovanimi sprinti) in pridobivanjem povratnih informacij za izboljšave na koncu vsakega cikla.

SCRUM določa več ključnih vlog za nemoteno delovanje razvojne ekipe. So lastnik izdelka (ki zastopa stranko in vzdržuje zaostanek izdelka), mojster Scrum (ki deluje kot organizator in koordinator ekipe z vodenjem sestankov scrum, vzdrževanjem zaostalih sprintov in beleženjem grafikonov) in drugi člani ekipe. Ekipa je lahko sestavljena iz tradicionalnih vlog, vendar so večinoma samoupravne ekipe. Glavni artefakti Scrum so zaostanki izdelka/zaostanki izdaje (seznam želja), zaostanki sprinta/zaostanki napak (opravila v vsaki ponovitvi), grafikoni Burn down (preostalo delo v primerjavi z datumom). Glavne slovesnosti SCRUM so srečanje zaostalih izdelkov, srečanje Sprint in srečanje Retrospect.

Kaj je ekstremno programiranje?

Extreme Programming (skrajšano XP) je metodologija razvoja programske opreme, ki spada v model Agile. Ekstremno programiranje izvaja faze v zelo majhnih neprekinjenih korakih (v primerjavi s tradicionalnimi metodami). Prvi prehod, ki traja le dan ali teden, je namerno nepopoln. Da bi zagotovili konkretne cilje za razvoj programske opreme, so na začetku napisani avtomatizirani testi. Nato razvijalci naredijo kodiranje. Poudarek je na programiranju v parih. Ko so vsi testi opravljeni, se kodiranje šteje za dokončano. Naslednja faza je oblikovanje in arhitektura, ki se ukvarja s preoblikovanjem kode s strani iste skupine programerjev. Na koncu te faze se zainteresiranim stranem predstavi nepopoln (a funkcionalen) izdelek. Takoj za tem se začne naslednja faza (ki se osredotoča na naslednji niz najpomembnejših funkcij).

Kakšna je razlika med Extreme Programming in SCRUM?

Extreme Programming in SCRUM sta razumljivo zelo podobni in usklajeni metodologiji. Vendar pa obstajajo subtilne, a pomembne razlike med tema dvema metodama. Sprinti SCRUM trajajo 2-4 tedne, medtem ko so tipične iteracije XP krajše (zadnje 1-2 tedna). Običajno ekipe SCRUM ne dovoljujejo sprememb v sprintih, vendar so ekipe XP nekoliko bolj prilagodljive za spremembe znotraj iteracij. Na primer, po načrtovanju sprinta nabor elementov tega sprinta ostane nespremenjen, vendar je mogoče funkcijo, ki še ni začela delovati, kadar koli zamenjati z drugo funkcijo v XP. Druga razlika med XP in SCRUM je ta, da vrstni red funkcij, razvitih v XP, strogo določi stranka, medtem ko ekipa SCRUM določi vrstni red elementov (potem ko lastnik izdelka SCRUM določi prednost zaostanku izdelka).

Za razliko od XP SCRUM ne določa nobenih inženirskih praks. Na primer, XP poganjajo prakse, kot so razvoj na podlagi testiranja (TDD), programiranje v parih, preoblikovanje itd. Vendar nekateri menijo, da bi lahko imela obvezna nabor praks na samoorganizirajoče ekipe negativen učinek, in to je mogoče upoštevati pomanjkljivost XP. Druga pomanjkljivost programiranja Extreme je, da neizkušene ekipe morda težijo k preoblikovanju brez kakršnih koli avtomatiziranih testov ali TDD (ali preprosto hekanja). Zato nekateri menijo, da je SCRUM boljši za opazovanje (saj prinaša velike izboljšave preprosto z osredotočenimi časovno omejenimi iteracijami), XP pa je primeren za nekoliko zrele ekipe, ki so odkrile vrednost zgoraj omenjenih praks (namesto da jih uporabljajo, ker so bili pozvani da to stori).

Priporočena: