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: Обзор Motorola XOOM 2 2024, Decembar
Anonim

Extreme Programming vs SCRUM | XP vs SCRUM

Postojao je niz različitih metodologija razvoja softvera korišćenih u softverskoj industriji tokom godina, kao što su Waterfall razvojna metoda, V-Model, RUP i nekoliko drugih linearnih, iterativnih i kombinovanih linearno-iterativnih metoda. Agilni model (ili tačnije, grupa metodologija) je noviji model razvoja softvera uveden Agile manifestom kako bi se riješili nedostaci pronađeni u tim tradicionalnim metodologijama razvoja softvera.

Agile metode su bazirane na iterativnom razvoju i koriste povratne informacije od korisnika kao glavni mehanizam kontrole. Agile se može nazvati pristupom usmjerenim na ljude od tradicionalnih metoda. Agilni model isporučuje radnu verziju proizvoda vrlo rano razbijanjem sistema na vrlo male poddijelove kojima se može upravljati, tako da kupac može rano shvatiti neke od prednosti. Vrijeme ciklusa testiranja Agile-a je relativno kratko u poređenju sa tradicionalnim metodama, jer se testiranje radi paralelno sa razvojem. Zbog svih ovih prednosti, Agile metode su trenutno preferirane u odnosu na tradicionalne metodologije. Scrum i Extreme programiranje su dvije od najpopularnijih varijacija Agile metoda.

Šta je SCRUM?

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

Ključna vrijednost SCRUM-a je “kvalitet je odgovornost tima”, što naglašava da je kvalitet softvera odgovornost cijelog tima (ne samo tima za testiranje). Još jedan važan aspekt SCRUM-a je raščlanjivanje softvera na manje dijelove kojima se može upravljati i vrlo brzo ih isporučiti kupcu. Isporuka radnog proizvoda je od najveće važnosti. Zatim tim nastavlja da poboljšava softver i kontinuirano isporučuje na svakom većem koraku. Ovo se postiže vrlo kratkim ciklusima oslobađanja (koji se nazivaju sprintovi) i dobijanjem povratnih informacija za poboljšanje na kraju svakog ciklusa.

SCRUM definiše nekoliko ključnih uloga za nesmetan rad razvojnog tima. Oni su vlasnik proizvoda (koji predstavlja kupca i održava zaostatak proizvoda), Scrum master (koji djeluje kao organizator i koordinator tima tako što vodi scrum sastanke, održava sprint backlog i burn down grafikone) i drugi članovi tima. Tim se može sastojati od tradicionalnih uloga, ali uglavnom su to samoupravni timovi. Glavni Scrum artefakti su zaostaci proizvoda/zaostatak izdanja (lista želja), zaostaci sprinta/defekti (zadaci u svakoj iteraciji), grafikoni sagorevanja (preostali rad u odnosu na datum). Glavne SCRUM ceremonije su sastanak sa zaostatkom proizvoda, sastanak Sprint i Retrospect sastanak.

Šta je ekstremno programiranje?

Extreme Programming (skraćeno XP) je metodologija razvoja softvera koja pripada Agile modelu. Ekstremno programiranje izvodi faze u vrlo malim kontinuiranim koracima (u poređenju sa tradicionalnim metodama). Prvi prolaz, koji traje samo dan ili sedmicu, namjerno je nepotpun. Da bi se obezbedili konkretni ciljevi za razvoj softvera, na početku se pišu automatizovani testovi. Zatim programeri rade kodiranje. Fokus je na izvođenju programiranja u parovima. Kada svi testovi prođu, kodiranje se smatra završenim. Sljedeća faza je dizajn i arhitektura, koja se bavi refaktoriranjem koda od strane istog skupa programera. Na kraju ove faze, nekompletan (ali funkcionalan) proizvod se predstavlja zainteresovanim stranama. Odmah nakon ovoga počinje sljedeća faza (koja se fokusira na sljedeći skup najvažnijih karakteristika).

Koja je razlika između ekstremnog programiranja i SCRUM-a?

Extreme Programming i SCRUM su razumljivo vrlo slične i usklađene metodologije. Međutim, postoje suptilne, ali važne razlike između ove dvije metode. SCRUM sprintovi traju 2-4 sedmice, dok su tipične XP iteracije kraće (zadnje 1-2 sedmice). Obično, SCRUM timovi ne dozvoljavaju promjene u sprintovima, ali XP timovi su malo fleksibilniji za promjene unutar iteracija. Na primjer, nakon planiranja sprinta, skup stavki tog sprinta ostaje nepromijenjen, ali funkcija na kojoj nije počela rad može se u bilo kojem trenutku zamijeniti nekom drugom funkcijom u XP-u. Još jedna razlika između XP-a i SCRUM-a je u tome što je redoslijed funkcija razvijenih u XP-u strogo prioritetan od strane korisnika, dok SCRUM tim odlučuje o redoslijedu stavki (nakon što zaostatak proizvoda odredi prioritet vlasnika SCRUM-ovog proizvoda).

Za razliku od XP-a, SCRUM ne propisuje nikakve inženjerske prakse. Na primjer, XP je vođen praksama kao što su razvoj vođen testom (TDD), programiranje u parovima, refaktoring, itd. Međutim, neki vjeruju da bi nametanje niza praksi za samoorganizirajuće timove moglo imati negativan utjecaj, i to se može uzeti u obzir nedostatak XP-a. Još jedan nedostatak Extreme programiranja je taj što neiskusni timovi mogu težiti refaktoriranju bez ikakvih automatiziranih testova ili TDD-a (ili jednostavno hakovanja). Stoga neki sugeriraju da je SCRUM bolji za početak (jer donosi velika poboljšanja jednostavno kroz fokusirane iteracije s vremenskim okvirom), a XP je prikladan za pomalo zrele timove koji su otkrili vrijednost gore navedenih praksi (umjesto da ih koriste jer su ih pitali da to učinite).

Preporučuje se: