Forskjellen mellom ekstrem programmering og SCRUM

Ekstrem programmering vs SCRUM | XP vs SCRUM

Det har vært mange forskjellige programvareutviklingsmetoder som brukes i programvareindustrien gjennom årene, for eksempel Vannutviklingsmetode, V-Model, RUP og få andre lineære, iterative og kombinerte lineære iterative metoder. Agile modell (eller mer korrekt, en gruppe metoder) er en nyere programvareutviklingsmodell introdusert av Agile-manifestet for å løse manglene i de tradisjonelle programvareutviklingsmetodikkene.

Agile metoder er basert på iterativ utvikling og bruker tilbakemeldingene fra brukerne som hovedkontrollmekanisme. Agile kan kalles en folk-sentrisk tilnærming enn tradisjonelle metoder. Agile modell leverer en fungerende versjon av produktet veldig tidlig ved å bryte ned systemet til svært små og håndterlige deler, slik at kunden kan innse noen fordeler tidlig. Testtidspunkt for Agile er relativt kort sammenlignet med tradisjonelle metoder, fordi testing er gjort parallelt med utvikling. På grunn av alle disse fordelene, er Agile-metoder foretrukket i forhold til de tradisjonelle metodene for øyeblikket. Scrum og Extreme programmering er to av de mest populære variasjonene av Agile-metoder.

Hva er SCRUM?

Som nevnt ovenfor er SCRUM en inkrementell og iterativ prosjektstyringsprosess, som tilhører familien av Agile-metoder. SCRUM er basert på å gi høy prioritet til kundens deltakelse tidlig i utviklingssyklusen. Det anbefales å inkorporere testing av kunden tidlig og ofte som mulig. Testing er gjort på hvert punkt når en stabil versjon blir tilgjengelig. Grunnlaget for SCRUM er basert på starttest fra begynnelsen av prosjektet og fortsetter hele tiden til prosjektets slutt.

Nøkkelverdien til SCRUM er "kvalitet er lagets ansvar", som understreker at kvaliteten på programvaren er ansvaret for hele laget (ikke bare testteamet). Et annet viktig aspekt av SCRUM er å bryte ned programvaren til mindre håndterbare deler og levere dem til kunden veldig raskt. Å levere et arbeidsprodukt er av største betydning. Deretter fortsetter teamet å forbedre programvaren og levere kontinuerlig på hvert stort trinn. Dette oppnås ved å ha svært kortvarige sykluser (kalt sprints) og få tilbakemelding til forbedring på slutten av hver syklus.

SCRUM definerer flere viktige roller for en jevn drift av et utviklingslag. De er Product Owner (som representerer kunden og opprettholder produktets tilbakekalling), Scrum Master (som fungerer som arrangør og koordinator for teamet ved å gjennomføre scrum møter, opprettholde sprint backlog og brenn ned diagrammer) og andre lagmedlemmer. Et lag kan bestå av tradisjonelle roller, men for det meste er de selvstyrende lag. Main Scrum artefakter er Product backlog / release backlog (ønskeliste), Sprint baklogger / defekt backlogs (oppgaver i hver iterasjon), Brenn ned diagrammer (arbeid gjenværende vs dato). Main SCRUM seremonier er Product backlog møte, Sprint møte og Retrospect møte.

Hva er ekstrem programmering?

Ekstrem programmering (forkortet XP) er en programvareutviklingsmetodikk som tilhører Agile-modellen. Ekstrem programmering utfører faser i svært små kontinuerlige trinn (sammenlignet med tradisjonelle metoder). Første pass, som bare tar en dag eller en uke, er bevisst ufullstendig. For å gi konkrete mål for å utvikle programvaren, skrives automatiske tester ved starten. Deretter gjør utviklerne kodingen. Fokus er på å gjøre programmering som par. Når alle tester passerer, anses kodingen fullstendig. Den neste fasen er design og arkitektur, som omhandler refactoring koden av det samme settet av programmerere. På slutten av denne fasen presenteres ufullstendige (men funksjonelle) produkter for interessentene. Like etter dette starter neste fase (som fokuserer på neste sett med viktigste funksjoner).

Hva er forskjellen mellom Ekstrem programmering og SCRUM?

Ekstrem programmering og SCRUM er forståelig nok svært like og justerte metoder. Det er imidlertid subtile men viktige forskjeller mellom disse to metodene. SCRUM sprints varer i 2-4 uker, mens typiske XP-iterasjoner er kortere (siste 1-2 uker). Vanligvis gir SCRUM-lag ikke tillatelser til sprints, men XP-lag er litt mer fleksible for endringer i iterasjoner. For eksempel, etter sprintplanleggingen, forblir settet av elementer fra sprinten uendret, men en funksjon som ikke har begynt å virke, kan når som helst byttes ut med en annen funksjon i XP. En annen forskjell mellom XP og SCRUM er at rekkefølgen av funksjoner utviklet i XP er en strengt prioritert av kunden, mens SCRUM-teamet bestemmer rekkefølgen på varer (etter at produktets tilbakeslag er prioritert av SCRUMs Product Owner).

I motsetning til XP, legger SCRUM ingen engineering praksis. For eksempel er XP drevet av praksis som testdrevet utvikling (TDD), par programmering, refactoring, osv. Noen mener imidlertid at det å kunne utøve et sett av praksis på selvorganiserende lag kan ha en negativ innvirkning, og dette kan vurderes en mangel på XP. En annen mangel på ekstrem programmering er at uerfarne lag kan ha en tendens til å refactor uten automatiserte tester eller TDD (eller bare hacking). Derfor foreslår noen at SCRUM er bedre for å stirre av (da det gir store forbedringer rett og slett gjennom fokuserte timeboxed iterasjoner) og XP er egnet for litt modne lag som har oppdaget verdien av ovennevnte praksis (i stedet for å bruke dem fordi de har blitt spurt å gjøre slik).