Forskel mellem ekstrem programmering og SCRUM

Anonim

Extreme Programmering vs SCRUM | XP vs SCRUM

Der har været mange forskellige softwareudviklingsmetoder, der anvendes i softwareindustrien gennem årene, såsom vandfaldsudviklingsmetode, V-Model, RUP og få andre lineære iterative og kombinerede lineære iterative metoder. Agile model (eller mere korrekt, en gruppe af metoder) er en nyere softwareudviklingsmodel, der blev introduceret af Agile-manifestet for at afhjælpe manglerne i de traditionelle softwareudviklingsmetoder.

Agile metoder er baseret på iterativ udvikling og bruger feedback fra brugerne som hovedkontrolmekanisme. Agile kan kaldes en folk-centreret tilgang end traditionelle metoder. Agile model leverer en fungerende version af produktet meget tidligt ved at nedbryde systemet til meget små og håndterbare underdele, så kunden kan realisere nogle af fordelene tidligt. Testcyklustiden for Agile er forholdsvis kort sammenlignet med traditionelle metoder, fordi testningen sker parallelt med udviklingen. På grund af alle disse fordele er agile metoder foretrukket i forhold til de traditionelle metoder i øjeblikket. Scrum og Extreme programmering er to af de mest populære variationer af Agile-metoder.

Hvad er SCRUM?

Som nævnt ovenfor er SCRUM en trinvis og iterativ projektstyringsproces, der tilhører familien af ​​agile metoder. SCRUM er baseret på at prioritere kundens deltagelse tidligt i udviklingscyklusen. Det anbefales at inkorporere test af kunden tidligt og ofte som muligt. Testning udføres på hvert tidspunkt, når en stabil version bliver tilgængelig. Grundlaget for SCRUM er baseret på starttest fra starten af ​​projektet og fortsætter hele tiden til projektets afslutning.

SCRUMs vigtigste værdi er "kvalitet er holdets ansvar", hvilket understreger, at softwarekvaliteten er ansvaret for hele holdet (ikke kun testteamet). Et andet vigtigt aspekt af SCRUM er at nedbryde softwaren i mindre håndterbare dele og levere dem til kunden meget hurtigt. At levere et arbejdsprodukt er af største vigtighed. Så fortsætter teamet med at forbedre softwaren og levere kontinuerligt ved hvert stort trin. Dette opnås ved at have meget korte udløsningscykler (kaldet sprints) og få feedback til forbedring i slutningen af ​​hver cyklus.

SCRUM definerer flere nøgleroller til en vellykket udvikling af et udviklingshold. De er Product Owner (som repræsenterer kunden og opretholder produktets baglog), Scrum Master (som fungerer som arrangør og koordinator for holdet ved at gennemføre scrum møder, opretholde sprint backlog og brænde diagrammer) og andre holdmedlemmer.Et hold kan bestå af traditionelle roller, men for det meste er de selvstyrende hold. Hoved Scrum-artefakter er Product backlog / release backlog (ønskeseddel), Sprint baglogs / defekt backlogs (opgaver i hver iteration), Brænde diagrammer (arbejde resterende versus dato). Main SCRUM ceremonier er Product backlog møde, Sprint møde og Retrospect møde.

Hvad er ekstrem programmering?

Ekstrem programmering (forkortet XP) er en softwareudviklingsmetode, der tilhører Agile-modellen. Ekstrem programmering udfører faser i meget små kontinuerlige trin (sammenlignet med traditionelle metoder). Første pass, der kun tager en dag eller en uge, er bevidst ufuldstændig. For at give konkrete mål for udviklingen af ​​softwaren, skrives automatiske tests i starten. Så udviklerne gør kodningen. Fokus er på programmering som par. Når alle testene er bestået, anses koden som komplet. Den næste fase er design og arkitektur, der omhandler refactoring af koden af ​​samme sæt programmører. I slutningen af ​​denne fase er ufuldstændigt (men funktionelt) produkt præsenteret for interessenterne. Herefter starter den næste fase (som fokuserer på det næste sæt vigtigste funktioner).

Hvad er forskellen mellem ekstrem programmering og SCRUM?

Ekstrem programmering og SCRUM er forståeligt nok meget ens og tilpassede metoder. Der er imidlertid subtile men vigtige forskelle mellem disse to metoder. SCRUM sprints varer i 2-4 uger, mens typiske XP iterationer er kortere (sidste 1-2 uger). Normalt giver SCRUM-teams ikke mulighed for ændringer i sprints, men XP-hold er lidt mere fleksible til ændringer inden for iterationer. For eksempel, efter sprintplanlægningen, forbliver sættet af elementer af den sprint uændret, men en funktion, der ikke er begyndt at arbejde på, kan når som helst skiftes med en anden funktion i XP. En anden forskel mellem XP og SCRUM er, at rækkefølgen af ​​funktioner udviklet i XP er en strengt prioriteret af kunden, mens SCRUM-holdet beslutter rækkefølgen af ​​varer (efter at produktets efterslæb er prioriteret af SCRUMs Product Owner).

I modsætning til XP lægger SCRUM ikke nogen tekniske praksis. Eksempelvis er XP drevet af praksis som testdrevet udvikling (TDD), parprogrammering, refactoring osv. Men nogle mener, at det kan være negativt at udpege et sæt praksis på selvorganiserende teams. en mangel på XP. En anden mangel på ekstrem programmering er, at uerfarne hold kan være tilbøjelige til at refactor uden automatiske test eller TDD (eller simpelthen hacking). Derfor foreslår nogle, at SCRUM er bedre til at stirre off (da det bringer store forbedringer blot gennem fokuserede timeboxed iterationer) og XP er egnet til lidt modne hold, der har opdaget værdien af ​​ovennævnte praksis (i stedet for at bruge dem, fordi de er blevet spurgt for at gøre det).