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

Ekstremno programiranje vs SCRUM | XP vs SCRUM

Tijekom godina postojao je niz različitih metodologija za razvoj softvera, poput metode vodopada, V-Model, RUP i nekoliko drugih linearnih, iterativnih i kombiniranih linearno-iterativnih metoda. Agile model (ili točnije, grupa metodologija) je noviji model razvoja softvera koji je predstavljen Agile manifestom radi rješavanja nedostataka u tim tradicionalnim metodologijama razvoja softvera.

Agile metode temelje se na iterativnom razvoju i koriste povratne informacije korisnika kao glavni kontrolni mehanizam. Agile se može nazvati pristup usmjeren na ljude od tradicionalnih metoda. Agile model isporučuje radnu verziju proizvoda vrlo rano raščlanjivanjem sustava na vrlo male i upravljive dijelove, tako da kupac može rano shvatiti neke od blagodati. Vrijeme ciklusa ispitivanja Agilea relativno je kratko u usporedbi s tradicionalnim metodama, jer se ispitivanje vrši paralelno s razvojem. Zbog svih ovih prednosti, agilne metode su trenutno poželjnije od tradicionalnih metodologija u ovom trenutku. Scrum i Extreme programiranje dvije su od najpopularnijih varijacija Agile metoda.

Što je SCRUM?

Kao što je gore spomenuto, SCRUM je inkrementalni i iterativni postupak upravljanja projektima, koji pripada obitelji Agile metoda. SCRUM se temelji na davanju visokog prioriteta sudjelovanju kupaca rano u razvojnom ciklusu. Preporučuje uključivanje testiranja od strane kupca što ranije i što je češće moguće. Testiranje se vrši u svakom trenutku kada postane dostupna stabilna verzija. Temelj SCRUM-a temelji se na započinjanju testiranja od početka projekta i nastavljanju sve do kraja projekta.

Ključna vrijednost SCRUM-a je "kvaliteta je odgovornost tima", koji naglašava da je za kvalitetu softvera odgovoran cijeli tim (a ne samo tim za testiranje). Još jedan važan aspekt SCRUM-a je razgradnja softvera na manje upravljive dijelove i njihova isporuka kupcu vrlo brzo. Isporuka radnog proizvoda od najveće je važnosti. Tada tim nastavlja poboljšavati softver i kontinuirano isporučivati na svakom većem koraku. To se postiže vrlo kratkim ciklusima oslobađanja (tzv. 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 zaostatak proizvoda), Scrum master (koji djeluje kao organizator i koordinator tima provodeći scrum sastanke, održavajući sprint zaostatke i izgarajuće ljestvice) i drugi članovi tima. Tim se može sastojati od tradicionalnih uloga, ali uglavnom su to samoupravni timovi. Glavni Scrum artefakti su zaostaci / zaostaci u izdanju (popis želja), Sprint zaostaci / zaostaci u nedostacima (zadaci u svakoj iteraciji), Burn down ljestvice (preostali rad u odnosu na datum). Glavne SCRUM ceremonije su sastanak zaostalih proizvoda, Sprint sastanak i Retrospect sastanak.

Što je ekstremno programiranje?

Ekstremno programiranje (skraćeno XP) metodologija je razvoja softvera koja pripada Agile modelu. Ekstremno programiranje izvodi faze u vrlo malim kontinuiranim koracima (u usporedbi s tradicionalnim metodama). Prvo prolazak, koji traje samo dan ili tjedan, namjerno je nepotpun. Da bi se pružili konkretni ciljevi za razvoj softvera, na početku se pišu automatizirani testovi. Tada programeri rade kodiranje. Fokus je na programiranju u parovima. Nakon što prođu svi testovi, kodiranje se smatra dovršenim. Sljedeća je faza dizajn i arhitektura, koja se bavi refaktoriziranjem koda od strane istog skupa programera. Na kraju ove faze, nepotpun (ali funkcionalan) proizvod predstavlja se dionicima. Odmah nakon toga započinje sljedeća faza (koja se fokusira na sljedeći skup najvažnijih značajki).

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

Ekstremno programiranje 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 sprinti traju 2-4 tjedna, dok su tipične XP ponavljanja kraće (posljednja 1-2 tjedna). SCRUM timovi obično ne dopuštaju promjene u sprintima, ali XP timovi su malo fleksibilniji za promjene unutar iteracija. Na primjer, nakon planiranja sprinta, skup predmeta tog sprinta ostaje nepromijenjen, ali značajka koja nije započela s radom može se u bilo kojem trenutku zamijeniti nekom drugom značajkom u XP-u. Druga razlika između XP-a i SCRUM-a je ta što je redoslijed značajki razvijenih u XP-u kupac strogo prioritet, dok SCRUM tim odlučuje o redoslijedu stavki (nakon što zaostatak proizvoda prioritet postavi vlasnik proizvoda SCRUM-a).

Za razliku od XP-a, SCRUM ne postavlja nikakve inženjerske prakse. Na primjer, XP pokreću prakse poput razvoja temeljenog na testiranju (TDD), programiranja parova, refaktoriranja itd. Međutim, neki vjeruju da bi postavljanje niza praksi za samoorganizirajuće timove moglo imati negativan utjecaj, i to se može smatrati nedostatak XP-a. Još jedan nedostatak Extreme programiranja je taj što neiskusni timovi mogu skloni refaktoru bez ikakvih automatiziranih testova ili TDD-a (ili jednostavno hakiranja). Stoga neki sugeriraju da je SCRUM bolji za zurenje (jer donosi velika poboljšanja jednostavno kroz usmjerene vremenske okvire ponavljanja), a XP je pogodan za malo zrelije timove koji su otkrili vrijednost gore spomenutih praksi (umjesto da ih koriste jer su od njih tražili učiniti tako).

Preporučeno: