Razlika između ekstremnog programiranja i SCRUM-a

Razlika između ekstremnog programiranja i SCRUM-a
Razlika između ekstremnog programiranja i SCRUM-a

Video: Razlika između ekstremnog programiranja i SCRUM-a

Video: Razlika između ekstremnog programiranja i SCRUM-a
Video: Vufer ili Visokotonac - Kako do najboljeg zvuka 2024, Studeni
Anonim

Ekstremno programiranje vs SCRUM | XP protiv SCRUM

Postojao je niz različitih metodologija razvoja softvera koje se koriste u softverskoj industriji tijekom godina, kao što je metoda razvoja vodopada, V-model, RUP i nekoliko drugih linearnih, iterativnih i kombiniranih linearno-iterativnih metoda. Agilni model (ili točnije, skupina metodologija) noviji je model razvoja softvera uveden Agilnim manifestom kako bi se riješili nedostaci pronađeni u tim tradicionalnim metodologijama razvoja softvera.

Agilne metode temelje se na iterativnom razvoju i koriste povratnu informaciju od korisnika kao glavni kontrolni mehanizam. Agile se može nazvati pristupom usmjerenim na ljude nego tradicionalnim metodama. Agilni model isporučuje radnu verziju proizvoda vrlo rano rastavljanjem sustava na vrlo male poddijelove kojima se može upravljati, tako da kupac može rano shvatiti neke od prednosti. Vrijeme ciklusa testiranja Agilea je relativno kratko u usporedbi s tradicionalnim metodama, jer se testiranje provodi paralelno s razvojem. Zbog svih ovih prednosti, Agile metode su trenutno preferirane u odnosu na tradicionalne metodologije. Scrum i Extreme programiranje dvije su najpopularnije varijante Agile metoda.

Što je SCRUM?

Kao što je gore spomenuto, SCRUM je inkrementalni i iterativni proces upravljanja projektom, koji pripada obitelji Agile metoda. SCRUM se temelji na davanju visokog prioriteta sudjelovanju korisnika u ranoj fazi razvojnog ciklusa. Preporuča uključivanje testiranja od strane korisnika ranije i što je češće moguće. Testiranje se provodi u svakoj točki kada stabilna verzija postane dostupna. Temelj SCRUM-a temelji se na započinjanju testiranja od početka projekta i nastavljanju do kraja projekta.

Ključna vrijednost SCRUM-a je "kvaliteta je odgovornost tima", što naglašava da je kvaliteta softvera odgovornost cijelog tima (a ne samo tima za testiranje). Još jedan važan aspekt SCRUM-a je rastavljanje softvera na manje upravljive dijelove i njihova vrlo brza isporuka korisniku. Isporuka proizvoda koji radi je od najveće važnosti. Zatim tim nastavlja poboljšavati softver i kontinuirano isporučivati na svakom većem koraku. To se postiže vrlo kratkim ciklusima otpuštanja (koji se nazivaju sprintovi) i dobivanjem povratnih informacija za poboljšanje na kraju svakog ciklusa.

SCRUM definira nekoliko ključnih uloga za nesmetan rad razvojnog tima. Oni su vlasnik proizvoda (koji predstavlja kupca i održava zaostale proizvode), Scrum master (koji djeluje kao organizator i koordinator tima vodeći scrum sastanke, održavajući sprint zaostatke i burn down grafikone) i ostali članovi tima. Tim se može sastojati od tradicionalnih uloga, ali uglavnom su to samoupravni timovi. Glavni Scrum artefakti su zaostatak proizvoda/zaostatak izdanja (popis želja), zaostatak Sprinta/zaostatak nedostataka (zadaci u svakoj iteraciji), grafikoni spaljivanja (preostali posao u odnosu na datum). Glavne SCRUM ceremonije su sastanak zaostalih proizvoda, sastanak sprinta i sastanak Retrospect.

Što je ekstremno programiranje?

Extreme Programming (skraćeno XP) je metodologija razvoja softvera koja pripada Agile modelu. Ekstremno programiranje provodi faze u vrlo malim kontinuiranim koracima (u usporedbi s tradicionalnim metodama). Prvi prolaz, koji traje samo dan ili tjedan, namjerno je nepotpun. Kako bi se osigurali konkretni ciljevi za razvoj softvera, automatski testovi se pišu na početku. Zatim programeri rade kodiranje. Fokus je na programiranju u paru. Kada svi testovi prođu, kodiranje se smatra dovršenim. Sljedeća faza je dizajn i arhitektura, koja se bavi refaktoriranjem koda od strane istog skupa programera. Na kraju ove faze dionicima se predstavlja nedovršen (ali funkcionalan) proizvod. Odmah nakon toga počinje sljedeća faza (koja se fokusira na sljedeći skup najvažnijih značajki).

Koja je razlika između Extreme Programminga i SCRUM-a?

Extreme Programming i SCRUM razumljivo su vrlo slične i usklađene metodologije. Međutim, postoje suptilne, ali važne razlike između ove dvije metode. SCRUM sprintevi traju 2-4 tjedna, dok su tipične XP iteracije kraće (traju 1-2 tjedna). Obično SCRUM timovi ne dopuštaju promjene u sprintovima, ali XP timovi malo su fleksibilniji za promjene unutar iteracija. Na primjer, nakon planiranja sprinta, skup stavki tog sprinta ostaje nepromijenjen, ali se značajka na kojoj još nije počeo raditi može bilo kada zamijeniti nekom drugom značajkom u XP-u. Još jedna razlika između XP-a i SCRUM-a je u tome što je redoslijed značajki razvijenih u XP-u striktno prioritetan od strane korisnika, dok SCRUM tim odlučuje o redoslijedu stavki (nakon što SCRUM-ov vlasnik proizvoda odredi prioritet zaostalog proizvoda).

Za razliku od XP-a, SCRUM ne postavlja nikakvu inženjersku praksu. Na primjer, XP pokreću prakse poput razvoja vođenog testiranjem (TDD), programiranja u paru, refaktoriranja itd. Međutim, neki vjeruju da bi nametanje skupa praksi na samoorganizirajuće timove moglo imati negativan učinak, a to se može smatrati nedostatak XP-a. Još jedan nedostatak Extreme programiranja je taj što neiskusni timovi mogu težiti refaktoru bez ikakvih automatiziranih testova ili TDD-a (ili jednostavno hakiranja). Stoga neki sugeriraju da je SCRUM bolji za početak (budući da donosi velika poboljšanja jednostavno kroz fokusirane vremenski ograničene iteracije), a XP je prikladan za pomalo zrele timove koji su otkrili vrijednost gore navedenih praksi (umjesto da ih koriste jer su zamoljeni učiniti).

Preporučeni: