Forskjellen mellom ekstrem programmering og SCRUM

Forskjellen mellom ekstrem programmering og SCRUM
Forskjellen mellom ekstrem programmering og SCRUM

Video: Forskjellen mellom ekstrem programmering og SCRUM

Video: Forskjellen mellom ekstrem programmering og SCRUM
Video: Video 536 Fra B1 til B2. Hva er forskjellen mellom B1 og B2? 2024, Juli
Anonim

Ekstrem programmering vs SCRUM | XP vs SCRUM

Det har vært en rekke forskjellige programvareutviklingsmetoder brukt i programvareindustrien opp gjennom årene, slik som Waterfall utviklingsmetode, V-Model, RUP og få andre lineære, iterative og kombinerte lineær-iterative metoder. Agile modell (eller mer korrekt, en gruppe metoder) er en nyere programvareutviklingsmodell introdusert av Agile-manifestet for å adressere manglene som finnes i de tradisjonelle programvareutviklingsmetodikkene.

Smidige metoder er basert på iterativ utvikling og bruker tilbakemeldingene fra brukerne som hovedkontrollmekanisme. Agile kan kalles en menneskesentrisk tilnærming enn tradisjonelle metoder. Agile modell leverer en fungerende versjon av produktet veldig tidlig ved å bryte ned systemet i svært små og håndterbare underdeler, slik at kunden kan realisere noen av fordelene tidlig. Testsyklustiden til Agile er relativt kort sammenlignet med tradisjonelle metoder, fordi testing gjøres parallelt med utvikling. På grunn av alle disse fordelene foretrekkes smidige metoder fremfor tradisjonelle metoder for øyeblikket. Scrum- og Extreme-programmering er to av de mest populære variantene av smidige metoder.

Hva er SCRUM?

Som nevnt ovenfor er SCRUM en inkrementell og iterativ prosjektledelsesprosess, som tilhører familien av Agile metoder. SCRUM er basert på å gi høy prioritet til kundemedvirkning tidlig i utviklingssyklusen. Det anbefaler å inkludere testing av kunden tidlig og ofte som mulig. Testing utføres på hvert punkt når en stabil versjon blir tilgjengelig. Grunnlaget for SCRUM er basert på å starte testing fra begynnelsen av prosjektet og fortsette til slutten av prosjektet.

Nøkkelverdien til SCRUM er "kvalitet er teamets ansvar", som understreker at kvaliteten på programvaren er ansvaret til hele teamet (ikke bare testteamet). Et annet viktig aspekt ved SCRUM er å bryte ned programvaren i mindre håndterbare deler og levere dem til kunden veldig raskt. Det er ytterst viktig å levere et fungerende produkt. Deretter fortsetter teamet å forbedre programvaren og levere kontinuerlig ved hvert større trinn. Dette oppnås ved å ha svært korte utgivelsessykluser (k alt sprints) og få tilbakemelding for forbedring på slutten av hver syklus.

SCRUM definerer flere nøkkelroller for smidig drift av et utviklingsteam. De er Produkteier (som representerer kunden og vedlikeholder produktbacklog), Scrum master (som fungerer som arrangør og koordinator for teamet ved å gjennomføre scrum-møter, opprettholde sprintbacklog og brenne ned diagrammer) og andre teammedlemmer. Et team kan bestå av tradisjonelle roller, men stort sett er de selvadministrerende team. Hoved Scrum-artefakter er produktbacklog/releasebacklog (ønskeliste), Sprint-backlogs/defektbacklogs (oppgaver i hver iterasjon), Burn down-diagrammer (gjenstående arbeid vs. dato). De viktigste SCRUM-seremoniene er Product backlog-møte, Sprint-møte og Retrospect-møte.

Hva er ekstrem programmering?

Extreme Programming (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). Den første passeringen, som bare tar en dag eller en uke, er med vilje ufullstendig. For å gi konkrete mål for utvikling av programvaren, skrives automatiserte tester ved oppstart. Deretter gjør utviklerne kodingen. Fokuset er på å gjøre programmering som par. Når alle testene har bestått, anses kodingen som fullført. Den neste fasen er design og arkitektur, som omhandler refaktorisering av koden av det samme settet med programmerere. På slutten av denne fasen presenteres ufullstendig (men funksjonelt) produkt for interessentene. Rett etter dette starter neste fase (som fokuserer på neste sett med de viktigste funksjonene).

Hva er forskjellen mellom ekstrem programmering og SCRUM?

Ekstrem programmering og SCRUM er forståelig nok veldig like og tilpassede metoder. Imidlertid er det subtile, men viktige forskjeller mellom disse to metodene. SCRUM-sprintene varer i 2-4 uker, mens typiske XP-iterasjoner er kortere (siste 1-2 uker). Vanligvis tillater ikke SCRUM-team endringer i sprint, men XP-team er litt mer fleksible for endringer innen iterasjoner. For eksempel, etter sprintplanleggingen, forblir settet med elementer for den sprinten uendret, men en funksjon som ikke har begynt å jobbe med kan når som helst byttes med en annen funksjon i XP. En annen forskjell mellom XP og SCRUM er at rekkefølgen på funksjoner utviklet i XP er strengt prioritert av kunden, mens SCRUM-teamet bestemmer rekkefølgen på varene (etter at produktreserven er prioritert av SCRUMs produkteier).

I motsetning til XP, fastsetter ikke SCRUM noen ingeniørpraksis. For eksempel er XP drevet av praksiser som testdrevet utvikling (TDD), parprogrammering, refactoring osv. Noen mener imidlertid at å pålegge et sett med praksis på selvorganiserende team kan ha en negativ innvirkning, og dette kan vurderes. en mangel ved XP. En annen mangel ved Extreme-programmering er at uerfarne team kan ha en tendens til å refaktorisere uten noen automatiserte tester eller TDD (eller bare hacking). Derfor antyder noen at SCRUM er bedre for å stirre bort (ettersom det gir store forbedringer ganske enkelt gjennom fokuserte timeboxede iterasjoner) og XP er egnet for litt modne team som har oppdaget verdien av ovennevnte praksis (i stedet for å bruke dem fordi de har blitt spurt å gjøre det).

Anbefalt: