Ero Extreme-ohjelmoinnin ja SCRUMin välillä

Ero Extreme-ohjelmoinnin ja SCRUMin välillä
Ero Extreme-ohjelmoinnin ja SCRUMin välillä

Video: Ero Extreme-ohjelmoinnin ja SCRUMin välillä

Video: Ero Extreme-ohjelmoinnin ja SCRUMin välillä
Video: Vahvistimen käyttöönotto ja ensimmäiset säädöt 2024, Marraskuu
Anonim

Extreme Programming vs SCRUM | XP vs SCRUM

Ohjelmistoteollisuudessa on vuosien varrella käytetty useita erilaisia ohjelmistokehitysmenetelmiä, kuten Waterfall-kehitysmenetelmä, V-malli, RUP ja muutama muu lineaarinen, iteratiivinen ja yhdistetty lineaari-iteratiivinen menetelmä. Ketterä malli (tai tarkemmin sanottuna joukko menetelmiä) on uudempi ohjelmistokehitysmalli, joka esiteltiin ketterässä manifestissa, jotta voidaan korjata perinteisissä ohjelmistokehitysmenetelmissä havaittuja puutteita.

Ketterät menetelmät perustuvat iteratiiviseen kehitykseen ja käyttävät käyttäjien palautetta pääohjausmekanismina. Ketterä voidaan kutsua ihmiskeskeiseksi lähestymistavaksi kuin perinteisillä menetelmillä. Ketterä malli toimittaa toimivan version tuotteesta hyvin varhaisessa vaiheessa jakamalla järjestelmän hyvin pieniin ja hallittavissa oleviin osiin, jotta asiakas voi huomata osan eduista varhain. Agilen testaussykliaika on suhteellisen lyhyt perinteisiin menetelmiin verrattuna, koska testaus tapahtuu rinnakkain kehityksen kanssa. Kaikkien näiden etujen vuoksi ketterät menetelmät ovat tällä hetkellä paremmat kuin perinteiset menetelmät. Scrum ja Extreme ohjelmointi ovat kaksi suosituinta ketterän menetelmän muunnelmaa.

Mikä on SCRUM?

Kuten edellä mainittiin, SCRUM on inkrementaalinen ja iteratiivinen projektinhallintaprosessi, joka kuuluu Agile-menetelmien perheeseen. SCRUM perustuu asiakkaiden osallistumisen asettamiseen etusijalle kehityssyklin varhaisessa vaiheessa. Se suosittelee asiakkaan testaamista mahdollisimman varhaisessa vaiheessa ja usein. Testaus tehdään jokaisessa vaiheessa, kun vakaa versio tulee saataville. SCRUMin perusta perustuu siihen, että testaus aloitetaan projektin alusta ja jatkuu koko projektin loppuun asti.

SCRUMin keskeinen arvo on "laatu on tiimin vastuulla", mikä korostaa, että ohjelmiston laatu on koko tiimin (ei vain testaustiimin) vastuulla. Toinen tärkeä näkökohta SCRUMissa on ohjelmiston hajottaminen pienempiin hallittaviin osiin ja niiden toimittaminen asiakkaalle erittäin nopeasti. Toimivan tuotteen toimittaminen on äärimmäisen tärkeää. Sitten tiimi jatkaa ohjelmiston parantamista ja toimittaa jatkuvasti jokaisessa tärkeässä vaiheessa. Tämä saavutetaan käyttämällä erittäin lyhyitä vapautusjaksoja (kutsutaan sprinteiksi) ja saamalla palautetta parannuksista jokaisen jakson lopussa.

SCRUM määrittelee useita avainrooleja kehitystiimin sujuvan toiminnan kann alta. He ovat Tuotteen omistaja (joka edustaa asiakasta ja ylläpitää tuotevarastoa), Scrum master (joka toimii tiimin järjestäjänä ja koordinaattorina pitäen scrum-kokouksia, ylläpitämällä sprintin ruuhka- ja polttokaavioita) ja muut tiimin jäsenet. Tiimi voi koostua perinteisistä rooleista, mutta enimmäkseen ne ovat itseohjautuvia tiimejä. Tärkeimmät Scrum-artefaktit ovat tuote-/julkaisusummut (toivelista), Sprint-ruuhkat/vikojen ruuhkat (tehtävät jokaisessa iteraatiossa), polttokaaviot (jäljellä oleva työ vs. päivämäärä). Tärkeimmät SCRUM-seremoniat ovat tuotevarauskokous, sprinttikokous ja Retrospect-kokous.

Mitä Extreme-ohjelmointi on?

Extreme Programming (lyhennettynä XP) on ohjelmistokehitysmenetelmä, joka kuuluu ketterään malliin. Extreme-ohjelmointi suorittaa vaiheita hyvin pienissä jatkuvissa vaiheissa (perinteisiin menetelmiin verrattuna). Ensimmäinen passi, joka kestää vain päivän tai viikon, on tarkoituksellisesti keskeneräinen. Konkreettisten tavoitteiden asettamiseksi ohjelmiston kehittämiselle kirjoitetaan alussa automatisoidut testit. Sitten kehittäjät tekevät koodauksen. Painopiste on ohjelmoinnin tekemisessä pareittain. Kun kaikki testit ovat läpäisseet, koodaus katsotaan valmiiksi. Seuraava vaihe on suunnittelu ja arkkitehtuuri, joka käsittelee koodin uudelleenmuodostusta samojen ohjelmoijien toimesta. Tämän vaiheen lopussa keskeneräinen (mutta toimiva) tuote esitellään sidosryhmille. Heti tämän jälkeen alkaa seuraava vaihe (jossa keskitytään seuraaviin tärkeimpiin ominaisuuksiin).

Mitä eroa on Extreme Programmingin ja SCRUMin välillä?

Extreme Programming ja SCRUM ovat ymmärrettävästi hyvin samank altaisia ja linjassa olevia menetelmiä. Näiden kahden menetelmän välillä on kuitenkin hienovaraisia, mutta tärkeitä eroja. SCRUM-sprintit kestävät 2–4 viikkoa, kun taas tyypilliset XP:n iteraatiot ovat lyhyempiä (viimeiset 1–2 viikkoa). Yleensä SCRUM-tiimit eivät salli muutoksia sprinteihin, mutta XP-tiimit ovat hieman joustavampia iteraatioiden muutoksille. Esimerkiksi sprintin suunnittelun jälkeen kyseisen sprintin kohteet pysyvät ennallaan, mutta ominaisuus, joka ei ole vielä alkanut toimia, voidaan milloin tahansa vaihtaa johonkin muuhun XP:n ominaisuuteen. Toinen ero XP:n ja SCRUM:n välillä on, että XP:ssä kehitettyjen ominaisuuksien järjestys on asiakkaan tiukasti priorisoima, kun taas SCRUM-tiimi päättää kohteiden järjestyksen (kun SCRUMin tuotteen omistaja on priorisoinut tuotevaraston).

Toisin kuin XP, SCRUM ei määrittele mitään suunnittelukäytäntöjä. Esimerkiksi XP:tä ohjaavat käytännöt, kuten testiohjattu kehitys (TDD), pariohjelmointi, refaktorointi jne. Jotkut kuitenkin uskovat, että käytäntöjen määräämisellä itseorganisoituville ryhmille voi olla kielteisiä vaikutuksia, ja tämä voidaan harkita. XP:n puute. Toinen Extreme-ohjelmoinnin puute on se, että kokemattomat tiimit voivat pyrkiä uudelleen reagoimaan ilman automaattisia testejä tai TDD:tä (tai yksinkertaisesti hakkerointia). Siksi jotkut ehdottavat, että SCRUM on parempi tuijottamiseen (koska se tuo suuria parannuksia yksinkertaisesti kohdistettujen aikalaatikoiden iteraatioiden kautta) ja XP sopii hieman kypsille tiimeille, jotka ovat havainneet yllä mainittujen käytäntöjen arvon (sen sijaan, että käyttäisivät niitä, koska heiltä on kysytty tehdä niin).

Suositeltava: