Erinevus äärmise Programmeerimise Ja SCRUMi Vahel

Erinevus äärmise Programmeerimise Ja SCRUMi Vahel
Erinevus äärmise Programmeerimise Ja SCRUMi Vahel

Video: Erinevus äärmise Programmeerimise Ja SCRUMi Vahel

Video: Erinevus äärmise Programmeerimise Ja SCRUMi Vahel
Video: Rupert Sheldrake'i loeng "Morfiline resonants" 2024, November
Anonim

Äärmuslik programmeerimine vs SCRUM | XP vs SCRUM

Aastate jooksul on tarkvaratööstuses kasutatud mitmeid erinevaid tarkvaraarenduse metoodikaid, nagu Waterfall'i arendusmeetod, V-mudel, RUP ja vähesed muud lineaarsed, iteratiivsed ja kombineeritud lineaarselt iteratiivsed meetodid. Agile mudel (või õigemini metoodikate rühm) on uuem tarkvaraarenduse mudel, mille Agile manifest tutvustas, et kõrvaldada nendes traditsioonilistes tarkvaraarenduse metoodikates leitud puudused.

Agile meetodid põhinevad iteratiivsel arendamisel ja kasutavad peamise juhtimismehhanismina kasutajate tagasisidet. Agiilsust võib nimetada rahvakeskseks lähenemiseks kui traditsioonilisi meetodeid. Agile mudel pakub toote tööversiooni väga varakult, jaotades süsteemi väga väikesteks ja hõlpsasti hallatavateks osadeks, et klient saaks mõnda kasu juba varakult realiseerida. Agile testimise tsükli aeg on võrreldes traditsiooniliste meetoditega suhteliselt lühike, sest testimine toimub paralleelselt arendusega. Kõigi nende eeliste tõttu eelistatakse praegu agilaid meetodeid traditsiooniliste metoodikate asemel. Scrum ja Extreme programmeerimine on Agile meetodite kaks kõige populaarsemat varianti.

Mis on SCRUM?

Nagu eespool mainitud, on SCRUM inkrementaalne ja iteratiivne projektijuhtimisprotsess, mis kuulub agiilsete meetodite perekonda. SCRUM põhineb kliendi osaluse esmatähtsal arvestamisel arendustsükli alguses. See soovitab lisada kliendi testid varakult ja sageli. Testimine toimub igas punktis, kui saadaval on stabiilne versioon. SCRUM-i aluseks on testimise alustamine projekti algusest ja jätkamine 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 testimisrühm). SCRUMi üks oluline aspekt on tarkvara jaotamine väiksemateks juhitavateks osadeks ja nende ülikiire tarnimine kliendile. Töötava toote tarnimine on ülimalt tähtis. Seejärel jätkab meeskond tarkvara täiustamist ja toimetab pidevalt igal suuremal sammul. See saavutatakse väga lühikeste vabastamistsüklite (nn sprindid) abil ja iga tsükli lõpus parema tagasiside saamiseks.

SCRUM määratleb arendustiimi sujuva toimimise jaoks mitu võtmerolli. Nad on toote omanik (kes esindab klienti ja hoiab toote mahajäämust), Scrumi meister (kes toimib meeskonna korraldaja ja koordinaatorina, korraldades scrum-koosolekuid, pidades sprindi mahajäämust ja põletades edetabeleid) ning teised meeskonna liikmed. Meeskond võib koosneda traditsioonilistest rollidest, kuid enamasti on nad ise juhtivad meeskonnad. Peamised Scrumi artefaktid on toote mahajäämus / vabastamise mahajäämus (soovinimekiri), Sprindi mahajäämus / defektide mahajäämus (ülesanded igas iteratsioonis), graafikute põletamine (järelejäänud töö vs kuupäev). Peamised SCRUM-i tseremooniad on toote mahajäämuse koosolek, Sprindi koosolek ja Retrospecti koosolek.

Mis on äärmine programmeerimine?

Extreme Programming (lühendatult XP) on tarkvara arendamise metoodika, mis kuulub Agile mudelisse. Äärmuslik programmeerimine viib faasid läbi väga väikeste pidevate sammudega (võrreldes traditsiooniliste meetoditega). Esimene läbimine, mis võtab vaid päeva või nädala, on tahtlikult puudulik. Tarkvara arendamiseks konkreetsete eesmärkide saavutamiseks kirjutatakse alguses automatiseeritud testid. Siis teevad arendajad kodeerimise. Keskendutakse programmeerimisele paaridena. Kui kõik testid on läbitud, loetakse kodeerimine täielikuks. Järgmine etapp on disain ja arhitektuur, mis tegeleb koodi uuesti töötlemisega sama programmeerijate komplekti poolt. Selle etapi lõpus esitatakse sidusrühmadele mittetäielik (kuid toimiv) toode. Kohe pärast seda algab järgmine etapp (mis keskendub järgmisele kõige olulisemate funktsioonide komplektile).

Mis vahe on äärmuslikul programmeerimisel ja SCRUMil?

Extreme Programming ja SCRUM on arusaadavalt väga sarnased ja joondatud metoodikad. Kuid nende kahe meetodi vahel on peent, kuid olulisi erinevusi. SCRUMi spurdid kestavad 2-4 nädalat, samas kui tüüpilised XP kordused on lühemad (kestavad 1-2 nädalat). Tavaliselt ei luba SCRUM-i meeskonnad sprintides muudatusi teha, kuid XP-meeskonnad on iteratsioonide muutuste suhtes veidi 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 vahetada. Teine erinevus XP ja SCRUM vahel on see, et XP-s väljatöötatud funktsioonide järjekord on kliendi poolt rangelt prioriseeritud, samas kui SCRUM-i meeskond otsustab üksuste järjekorra (pärast seda, kui SCRUM-i tooteomanik on toote mahajäämuse esmatähtsaks seadnud).

Erinevalt XP-st ei näe SCRUM ette inseneritavasid. Näiteks juhivad XP-d sellised tavad nagu testpõhine arendus (TDD), paaride programmeerimine, refaktoreerimine jne. Kuid mõned arvavad, et enesekorralduslike meeskondade praktikakomplekti volitamine võib avaldada negatiivset mõju ja seda võib kaaluda XP puudus. Extreme programmeerimise teine puudus on see, et kogenematud meeskonnad võivad kalduda refrakteerima ilma automatiseeritud testide või TDD-deta (või lihtsalt häkkimata). Seetõttu arvavad mõned, et SCRUM on parem vahtimiseks (kuna see toob suuri edusamme lihtsalt fokusseeritud ajataldrikute kaudu) ja XP sobib kergelt küpsetele meeskondadele, kes on avastanud ülalnimetatud tavade väärtuse (selle asemel, et neid kasutada, sest neil on palutud seda teha).

Soovitatav: