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: Agile, Scrum и LeSS в Райффайзенбанке без вот этого вот всего. 2024, Balandis
Anonim

Ekstremalus programavimas ir SCRUM | XP prieš SCRUM

Per tuos metus 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 keletas kitų linijinių, iteracinių ir kombinuotų tiesinių-iteracinių metodų. „Agile“modelis (arba teisingiau, metodikų grupė) yra naujesnis programinės įrangos kūrimo modelis, kurį įvedė „Agile“manifestas, siekiant pašalinti trūkumus, nustatytus tose tradicinėse programinės įrangos kūrimo metodikose.

Vikrūs metodai yra pagrįsti iteracine plėtra ir naudojasi vartotojų atsiliepimais kaip pagrindiniu valdymo mechanizmu. Vikrumą galima vadinti į žmones orientuotu požiūriu nei tradiciniais metodais. „Agile“modelis labai anksti pateikia darbinę produkto versiją, suskaidydamas sistemą į labai mažas ir lengvai valdomas dalis, kad klientas galėtų anksti suvokti kai kuriuos privalumus. „Agile“bandymo 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 pirmenybė teikiama judriems metodams, o ne tradicinėms metodikoms. „Scrum“ir „Extreme“programavimas yra du populiariausi „Agile“metodų variantai.

Kas yra SCRUM?

Kaip minėta pirmiau, SCRUM yra laipsniškas ir kartojamas projektų valdymo procesas, priklausantis Agile metodų šeimai. SCRUM grindžiamas dideliu prioritetu kliento dalyvavimui kūrimo ciklo pradžioje. Ji rekomenduoja kuo anksčiau ir dažnai atlikti kliento atliekamus bandymus. Testavimas atliekamas kiekviename taške, kai tampa stabilia versija. SCRUM pagrindas yra pagrįstas bandymų pradžia nuo projekto pradžios ir tęsimas iki projekto pabaigos.

Pagrindinė SCRUM vertė yra „kokybė yra komandos atsakomybė“, kurioje pabrėžiama, kad už programinės įrangos kokybę yra atsakinga visa komanda (ne tik bandymų komanda). Kitas svarbus SCRUM aspektas yra suskaidyti programinę įrangą į mažesnes valdomas dalis ir labai greitai jas pristatyti klientui. Pristatyti veikiantį produktą yra nepaprastai svarbu. Tada komanda toliau tobulina programinę įrangą ir nuolat teikia darbus kiekviename svarbiame žingsnyje. Tai pasiekiama turint labai trumpus išleidimo ciklus (vadinamus sprintus) ir kiekvieno ciklo pabaigoje gaunant grįžtamąjį ryšį.

SCRUM apibrėžia keletą pagrindinių sklandaus vystymo komandos darbo vaidmenų. Jie yra Produkto savininkas (kuris atstovauja klientui ir prižiūri produkto apyvartą), „Scrum“meistras (kuris veikia kaip komandos organizatorius ir koordinatorius, vykdydamas „scrum“susitikimus, palaikydamas sprinto atsilikimą ir sudegindamas diagramas) ir kiti komandos nariai. Komanda gali būti sudaryta iš tradicinių vaidmenų, tačiau dažniausiai tai yra savarankiškos komandos. Pagrindiniai „Scrum“artefaktai yra „Produktų nepraeinamumas“/ „Išlaisvinimas“(pageidavimų sąrašas), „Sprint“atsilikimai / Defektų žurnalai (užduotys kiekvienoje iteracijoje), Sudeginti diagramas (likęs darbas ir data). Pagrindinės SCRUM ceremonijos yra „Product backlog meeting“, „Sprint meeting“ir „Retrospect meeting“.

Kas yra ekstremalus programavimas?

„Extreme Programming“(sutrumpintas XP) yra programinės įrangos kūrimo metodika, priklausanti „Agile“modeliui. Ekstremalus programavimas fazes vykdo labai mažais ištisiniais žingsniais (palyginti su tradiciniais metodais). Pirmasis leidimas, trunkantis tik dieną ar savaitę, yra sąmoningai neišsamus. Siekiant konkrečių programinės įrangos kūrimo tikslų, pradžioje rašomi automatizuoti testai. Tada kūrėjai atlieka kodavimą. Didžiausias dėmesys skiriamas programavimui kaip poroms. Kai visi bandymai bus atlikti, kodavimas laikomas baigtu. Kitas etapas yra dizainas ir architektūra, kurie susiję su kodo pertvarkymu tuo pačiu programuotojų rinkiniu. Šio etapo pabaigoje suinteresuotiesiems subjektams pristatomas neišsamus (bet funkcionalus) produktas. Iškart po to prasideda kitas etapas (daugiausia dėmesio skiriant kitam svarbiausių funkcijų rinkiniui).

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 sprinteriai trunka 2–4 savaites, tuo tarpu tipiškos XP iteracijos yra trumpesnės (trunka 1–2 savaites). Paprastai SCRUM komandos neleidžia keisti sprinto, tačiau XP komandos yra šiek tiek lankstesnės, kad pakeistų iteracijas. Pavyzdžiui, suplanavus sprinto planą, to sprinto elementų rinkinys lieka nepakitęs, tačiau nepradėtą veikti funkciją bet kada galima pakeisti kita XP funkcija. Kitas skirtumas tarp „XP“ir „SCRUM“yra tas, kad XP sukurtų funkcijų tvarka yra griežtai prioritetinė kliento nustatyta tvarka, tuo tarpu „SCRUM“komanda nusprendžia daiktų eilę (kai „SCRUM“produkto savininkas pirmenybę teikia produkto atsilikimui).

Skirtingai nei XP, SCRUM nenumato jokios inžinerijos praktikos. Pvz., XP lemia tokios praktikos kaip bandomoji plėtra (TDD), porų programavimas, pertvarkymas ir kt. Tačiau kai kurie mano, kad įsakymas rinktis praktiką savarankiškai organizuojančioms komandoms gali turėti neigiamą poveikį ir tai gali būti laikoma XP trūkumas. Kitas „Extreme“programavimo trūkumas yra tas, kad nepatyrusios komandos gali būti linkusios refaktorizuotis be jokių automatizuotų testų ar TDD (arba tiesiog įsilaužimo). Todėl kai kurie mano, kad SCRUM yra geresnis dalykas, nes jis pasižymi dideliu patobulinimu, tiesiog atliekant tikslines kartotines iteracijas), o XP tinka šiek tiek subrendusiems kolektyvams, kurie atrado aukščiau paminėtų praktikų vertę (o ne naudoja jas, nes jų buvo paprašyta tai padaryti).

Rekomenduojama: