Forskellen mellem ekstrem programmering og SCRUM

Forskellen mellem ekstrem programmering og SCRUM
Forskellen mellem ekstrem programmering og SCRUM

Video: Forskellen mellem ekstrem programmering og SCRUM

Video: Forskellen mellem ekstrem programmering og SCRUM
Video: Forstå konflikten mellem Israel og Palæstina 2024, November
Anonim

Ekstrem programmering vs SCRUM | XP mod SCRUM

Der har været en række forskellige softwareudviklingsmetoder brugt i softwareindustrien gennem årene, såsom Waterfall-udviklingsmetode, 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 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 den primære kontrolmekanisme. Agile kan kaldes en menneskecentreret tilgang end traditionelle metoder. Agile model leverer en fungerende version af produktet meget tidligt ved at nedbryde systemet i meget små og håndterbare underdele, så kunden tidligt kan indse nogle af fordelene. Testcyklustiden for Agile er relativt kort sammenlignet med traditionelle metoder, fordi test udføres parallelt med udvikling. På grund af alle disse fordele foretrækkes agile metoder frem for de traditionelle metoder i øjeblikket. Scrum- og Extreme-programmering er to af de mest populære varianter af Agile-metoder.

Hvad er SCRUM?

Som nævnt ovenfor er SCRUM en inkrementel og iterativ projektledelsesproces, som tilhører familien af Agile metoder. SCRUM er baseret på at prioritere kundedeltagelsen højt tidligt i udviklingscyklussen. Det anbefaler at inkorporere test af kunden tidligt og ofte som muligt. Test udføres på hvert tidspunkt, når en stabil version bliver tilgængelig. Fundamentet for SCRUM er baseret på at starte test fra starten af projektet og fortsætte hele vejen til projektets afslutning.

Nøgleværdien af SCRUM er "kvalitet er teamets ansvar", hvilket understreger, at kvaliteten af softwaren er hele teamets ansvar (ikke kun testteamet). Et andet vigtigt aspekt ved SCRUM er at nedbryde softwaren i mindre håndterbare dele og levere dem til kunden meget hurtigt. At levere et fungerende produkt er yderst vigtigt. Derefter fortsætter teamet med at forbedre softwaren og levere kontinuerligt ved hvert større trin. Dette opnås ved at have meget korte frigivelsescyklusser (kaldet sprints) og få feedback til forbedring ved slutningen af hver cyklus.

SCRUM definerer flere nøgleroller for en problemfri drift af et udviklingsteam. De er Produktejeren (som repræsenterer kunden og vedligeholder produktbacklog), Scrum master (der fungerer som arrangør og koordinator for teamet ved at gennemføre scrummøder, vedligeholde sprintbacklog og brænde ned diagrammer) og andre teammedlemmer. Et team kan bestå af traditionelle roller, men for det meste er de selvstyrende teams. Vigtigste Scrum-artefakter er Produktbacklog/frigivelsesbacklog (ønskeliste), Sprint-backlogs/defektbacklogs (opgaver i hver iteration), Burn down-diagrammer (resterende arbejde vs. dato). De vigtigste SCRUM-ceremonier er Product backlog-møde, Sprint-møde og Retrospect-møde.

Hvad er ekstrem programmering?

Ekstrem programmering (forkortet XP) er en softwareudviklingsmetodologi, der hører til Agile-modellen. Ekstrem programmering udfører faser i meget små kontinuerlige trin (sammenlignet med traditionelle metoder). Den første gennemgang, som kun tager en dag eller en uge, er bevidst ufuldstændig. For at give konkrete mål for udvikling af softwaren skrives der automatiske tests i starten. Så laver udviklerne kodningen. Fokus er på at lave programmering som par. Når alle testene er bestået, anses kodningen for at være færdig. Den næste fase er design og arkitektur, som omhandler refaktorisering af koden af det samme sæt programmører. I slutningen af denne fase præsenteres et ufuldstændigt (men funktionelt) produkt for interessenterne. Lige efter dette starter den næste fase (som fokuserer på det næste sæt af de 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 dog 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). Norm alt tillader SCRUM-hold ikke ændringer i sprint, men XP-hold er lidt mere fleksible over for ændringer inden for iterationer. For eksempel, efter sprintplanlægningen, forbliver sættet af elementer i den sprint uændret, men en funktion, der ikke er begyndt at arbejde på, kan til enhver tid udskiftes med en anden funktion i XP. En anden forskel mellem XP og SCRUM er, at rækkefølgen af funktioner udviklet i XP er strengt prioriteret af kunden, mens SCRUM-teamet bestemmer rækkefølgen af varer (efter at produktbacklog er prioriteret af SCRUMs produktejer).

I modsætning til XP, fastlægger SCRUM ikke nogen ingeniørpraksis. For eksempel er XP drevet af praksis som testdrevet udvikling (TDD), parprogrammering, refactoring osv. Nogle mener dog, at mandat til et sæt praksisser på selvorganiserende teams kan have en negativ indvirkning, og dette kan overvejes. en mangel ved XP. En anden mangel ved Extreme-programmering er, at uerfarne hold kan have en tendens til at refaktorisere uden nogen automatiserede tests eller TDD (eller blot hacking). Derfor tyder nogle på, at SCRUM er bedre til at stirre ud (da det bringer store forbedringer blot gennem fokuserede timeboxede iterationer), og XP er velegnet til lidt modne teams, der har opdaget værdien af ovennævnte praksisser (i stedet for at bruge dem, fordi de er blevet spurgt at gøre det).

Anbefalede: