Skillnaden mellan extrem programmering och SCRUM

Skillnaden mellan extrem programmering och SCRUM
Skillnaden mellan extrem programmering och SCRUM

Video: Skillnaden mellan extrem programmering och SCRUM

Video: Skillnaden mellan extrem programmering och SCRUM
Video: Receivers vs Amplifiers! Everything you need to know! 2024, Juli
Anonim

Extrem programmering vs SCRUM | XP vs SCRUM

Det har funnits ett antal olika mjukvaruutvecklingsmetoder som använts i mjukvaruindustrin genom åren, såsom Waterfall-utvecklingsmetoden, V-Model, RUP och få andra linjära, iterativa och kombinerade linjär-iterativa metoder. Agile modell (eller mer korrekt, en grupp av metoder) är en nyare modell för mjukvaruutveckling som introducerades av Agile-manifestet för att åtgärda de brister som finns i dessa traditionella programvaruutvecklingsmetoder.

Agila metoder är baserade på iterativ utveckling och använder feedback från användarna som den huvudsakliga kontrollmekanismen. Agilt kan kallas ett folkcentrerat tillvägagångssätt än traditionella metoder. Agile modell levererar en fungerande version av produkten mycket tidigt genom att bryta ner systemet i mycket små och hanterbara underdelar, så att kunden kan inse några av fördelarna tidigt. Testcykeltiden för Agile är relativt kort jämfört med traditionella metoder, eftersom testning görs parallellt med utveckling. På grund av alla dessa fördelar är agila metoder att föredra framför de traditionella metoderna för närvarande. Scrum och Extreme-programmering är två av de mest populära varianterna av agila metoder.

Vad är SCRUM?

Som nämnts ovan är SCRUM en inkrementell och iterativ projektledningsprocess, som tillhör familjen agila metoder. SCRUM bygger på att ge hög prioritet åt kundmedverkan tidigt i utvecklingscykeln. Den rekommenderar att testa av kunden tidigt och ofta som möjligt. Testning görs vid varje tillfälle när en stabil version blir tillgänglig. Grunden för SCRUM är baserad på att börja testa från början av projektet och fortsätta till slutet av projektet.

Nyckelvärdet av SCRUM är "kvalitet är teamets ansvar", vilket betonar att kvaliteten på programvaran är hela teamets ansvar (inte bara testteamet). En annan viktig aspekt av SCRUM är att bryta ner mjukvaran i mindre hanterbara delar och leverera dem till kunden mycket snabbt. Att leverera en fungerande produkt är av yttersta vikt. Sedan fortsätter teamet att förbättra mjukvaran och leverera kontinuerligt vid varje större steg. Detta uppnås genom att ha mycket korta släppcykler (kallade sprints) och få feedback för förbättringar i slutet av varje cykel.

SCRUM definierar flera nyckelroller för att ett utvecklingsteam ska fungera smidigt. De är produktägaren (som representerar kunden och underhåller produktbackloggen), Scrum master (som fungerar som arrangör och koordinator för teamet genom att genomföra scrummöten, underhålla sprintbacklog och bränna ner diagram) och andra teammedlemmar. Ett team kan bestå av traditionella roller, men mestadels är de självstyrande team. Huvudsakliga Scrum-artefakter är Produktbacklog/releasebacklog (önskelista), Sprintbacklogs/defektbacklogs (uppgifter i varje iteration), Burn down-diagram (återstående arbete kontra datum). Huvudsakliga SCRUM-ceremonier är Product backlog-möte, Sprint-möte och Retrospect-möte.

Vad är extrem programmering?

Extreme Programming (förkortat XP) är en metodik för mjukvaruutveckling som tillhör Agile-modellen. Extrem programmering genomför faser i mycket små kontinuerliga steg (jämfört med traditionella metoder). Det första passet, som bara tar en dag eller en vecka, är avsiktligt ofullständigt. För att ge konkreta mål för utvecklingen av mjukvaran skrivs automatiserade tester i början. Sedan gör utvecklarna kodningen. Fokus ligger på att göra programmering som par. När alla test är godkända anses kodningen vara klar. Nästa fas är design och arkitektur, som handlar om att omstrukturera koden av samma uppsättning programmerare. I slutet av denna fas presenteras ofullständig (men funktionell) produkt för intressenterna. Strax efter detta startar nästa fas (som fokuserar på nästa uppsättning av de viktigaste funktionerna).

Vad är skillnaden mellan extrem programmering och SCRUM?

Extreme programmering och SCRUM är förståeligt nog väldigt lika och anpassade metoder. Det finns dock subtila men viktiga skillnader mellan dessa två metoder. SCRUM-sprints varar i 2-4 veckor, medan typiska XP-iterationer är kortare (senaste 1-2 veckorna). Vanligtvis tillåter SCRUM-team inte ändringar i sprints, men XP-team är lite mer flexibla för ändringar inom iterationer. Till exempel, efter sprintplaneringen, förblir uppsättningen av objekt för den sprinten oförändrad, men en funktion som inte har börjat arbeta på kan när som helst bytas ut mot någon annan funktion i XP. En annan skillnad mellan XP och SCRUM är att ordningen på funktioner som utvecklats i XP är strikt prioriterad av kunden, medan SCRUM-teamet bestämmer ordningen på artiklarna (efter att produktstocken har prioriterats av SCRUMs produktägare).

Till skillnad från XP, fastställer SCRUM inga tekniska rutiner. Till exempel drivs XP av praxis som testdriven utveckling (TDD), parprogrammering, refactoring, etc. Vissa tror dock att det kan ha en negativ inverkan att ge en uppsättning praxis på självorganiserande team, och detta kan övervägas. en brist på XP. En annan brist med Extreme-programmering är att oerfarna team kan ha en tendens att refaktorera utan några automatiserade tester eller TDD (eller helt enkelt hacka). Därför föreslår vissa att SCRUM är bättre för att stirra bort (eftersom det ger stora förbättringar helt enkelt genom fokuserade timeboxade iterationer) och XP är lämpligt för lite mogna team som har upptäckt värdet av ovan nämnda metoder (snarare än att använda dem eftersom de har blivit tillfrågade att göra det).

Rekommenderad: