Erinevus äärmusliku programmeerimise ja SCRUMi vahel

Erinevus äärmusliku programmeerimise ja SCRUMi vahel
Erinevus äärmusliku programmeerimise ja SCRUMi vahel

Video: Erinevus äärmusliku programmeerimise ja SCRUMi vahel

Video: Erinevus äärmusliku programmeerimise ja SCRUMi vahel
Video: Разобрали, отпилили, приварили, поменяли и покрасили. Привели в порядок ржавый кузов. 2024, Detsember
Anonim

Extreme Programming vs SCRUM | XP vs SCRUM

Tarkvaratööstuses on aastate jooksul kasutatud mitmeid erinevaid tarkvaraarendusmetoodikaid, nagu Waterfall arendusmeetod, V-mudel, RUP ja mõned muud lineaarsed, iteratiivsed ja kombineeritud lineaar-iteratiivsed meetodid. Agiilne mudel (või õigemini metoodikate rühm) on uuem tarkvaraarenduse mudel, mis võeti kasutusele Agile'i manifestiga, et kõrvaldada nendes traditsioonilistes tarkvaraarenduse metoodikates leitud puudused.

Agiilsed meetodid põhinevad iteratiivsel arendusel ja kasutavad peamise kontrollimehhanismina kasutajate tagasisidet. Agiilset võib nimetada inimesekeskseks lähenemiseks kui traditsioonilised meetodid. Agile mudel pakub toote tööversiooni väga varakult, jagades süsteemi väga väikesteks ja juhitavateks alamosadeks, et klient saaks varakult osa eelistest aru saada. Agile'i testimistsükli aeg on võrreldes traditsiooniliste meetoditega suhteliselt lühike, kuna testimine toimub paralleelselt arendusega. Kõigi nende eeliste tõttu eelistatakse praegu Agile meetodeid traditsioonilistele metoodikatele. Scrum ja Extreme programmeerimine on kaks kõige populaarsemat Agile meetodite varianti.

Mis on SCRUM?

Nagu eespool mainitud, on SCRUM järkjärguline ja iteratiivne projektijuhtimise protsess, mis kuulub Agile meetodite perekonda. SCRUM põhineb kõrge prioriteedi andmisel klientide osalemisele arendustsükli alguses. See soovitab kaasata kliendipoolse testimise varakult ja nii sageli kui võimalik. Testimine tehakse igas punktis, kui stabiilne versioon on saadaval. SCRUM-i alus põhineb testimise alustamisel projekti algusest ja selle jätkamisel kogu projekti lõpuni.

SCRUMi põhiväärtus on "kvaliteet on meeskonna vastutus", mis rõhutab, et tarkvara kvaliteedi eest vastutab kogu meeskond (mitte ainult testimismeeskond). Veel üks oluline SCRUM-i aspekt on tarkvara jaotamine väiksemateks hallatavateks osadeks ja nende väga kiire kliendini toimetamine. Töötava toote tarnimine on ülim alt oluline. Seejärel jätkab meeskond tarkvara täiustamist ja pakkumist igal suuremal etapil. See saavutatakse väga lühikeste vabastamistsüklite (nn sprintide) abil ja iga tsükli lõpus tagasiside saamisega täiustamiseks.

SCRUM määratleb mitu võtmerolli arendusmeeskonna sujuvaks toimimiseks. Need on toote omanik (kes esindab klienti ja haldab toote mahajäämust), Scrum master (kes tegutseb meeskonna korraldaja ja koordinaatorina, viies läbi scrumi koosolekuid, pidades sprindi mahajäämuse ja põletamise graafikuid) ja teised meeskonnaliikmed. Meeskond võib koosneda traditsioonilistest rollidest, kuid enamasti on need isejuhtivad meeskonnad. Peamised Scrumi artefaktid on toote mahajäämus/väljalaske mahajäämus (soovide nimekiri), Sprinti mahajäämused/defektid (ülesanded igas iteratsioonis), põletusdiagrammid (jäänud töö vs kuupäev). Peamised SCRUM-i tseremooniad on toote mahajäämuse koosolek, sprindi koosolek ja tagasivaate koosolek.

Mis on äärmuslik programmeerimine?

Extreme Programming (lühendatult XP) on tarkvaraarenduse metoodika, mis kuulub Agile mudelisse. Ekstreemprogrammeerimine teostab faase väga väikeste pidevate sammudena (võrreldes traditsiooniliste meetoditega). Esimene läbimine, mis võtab aega vaid päeva või nädala, on tahtlikult poolik. Tarkvara arendamise konkreetsete eesmärkide seadmiseks kirjutatakse alguses automatiseeritud testid. Seejärel teevad arendajad kodeerimise. Keskendutakse programmeerimisele paarikaupa. Kui kõik testid on läbitud, loetakse kodeerimine lõpetatuks. Järgmine etapp on disain ja arhitektuur, mis tegeleb koodi ümbertöötamisega samade programmeerijate poolt. Selle etapi lõpus esitatakse sidusrühmadele mittetäielik (kuid funktsionaalne) toode. Kohe pärast seda algab järgmine etapp (mis keskendub järgmistele kõige olulisemate funktsioonide komplektile).

Mis vahe on Extreme Programmingil ja SCRUMil?

Extreme Programming ja SCRUM on arusaadav alt väga sarnased ja joondatud metoodikad. Siiski on nende kahe meetodi vahel väikesed, kuid olulised erinevused. SCRUM-i sprindid kestavad 2–4 nädalat, samas kui tüüpilised XP iteratsioonid on lühemad (kestvad 1–2 nädalat). Tavaliselt ei luba SCRUM-i meeskonnad sprintides muudatusi, kuid XP meeskonnad on iteratsioonides toimuvate muudatuste suhtes pisut paindlikumad. Näiteks pärast sprindi planeerimist jääb selle sprindi üksuste komplekt muutumatuks, kuid funktsiooni, mis pole veel tööle hakanud, saab igal ajal XP-s mõne muu funktsiooniga asendada. Teine erinevus XP ja SCRUMi vahel on see, et XP-s välja töötatud funktsioonide järjestuse määrab klient rangelt prioriteediks, samas kui SCRUM-i meeskond otsustab üksuste järjekorra (pärast seda, kui SCRUM-i tooteomanik on toote mahajäämuse prioriteediks seadnud).

Erinev alt XP-st ei näe SCRUM ette mingeid inseneritavasid. Näiteks XP-d juhivad sellised tavad nagu testipõhine arendus (TDD), paarisprogrammeerimine, refaktoreerimine jne. Kuid mõned usuvad, et iseorganiseeruvatele meeskondadele tavade kogumi volitamine võib avaldada negatiivset mõju ja seda võib kaaluda. XP puudus. Veel üks Extreme'i programmeerimise puudus on see, et kogenematud meeskonnad võivad kalduda ümber töötama ilma automaattestide või TDD-ta (või lihts alt häkkimiseta). Seetõttu arvavad mõned, et SCRUM on parem vaatamiseks (kuna see toob suuri täiustusi lihts alt fokusseeritud ajakasti iteratsioonide kaudu) ja XP sobib veidi küpsetele meeskondadele, kes on avastanud ülalnimetatud tavade väärtuse (mitte kasutada neid, kuna neilt on küsitud). seda teha).

Soovitan: