Skillnad mellan extremprogrammering och SCRUM

Anonim

Extreme Programming vs SCRUM | XP vs SCRUM

Det har funnits ett antal olika mjukvaruutvecklingsmetoder som använts inom mjukvaruindustrin genom åren, såsom vattenfallsutvecklingsmetod, V-Model, RUP och några andra linjära, iterativa och kombinerade linjära iterativa metoder. Agile modell (eller mer korrekt, en grupp av metoder) är en nyare mjukvaruutvecklingsmodell som introducerades av Agile-manifestet för att åtgärda bristerna i de traditionella mjukvaruutvecklingsmetoderna.

Agila metoder bygger på iterativ utveckling och använder återkoppling från användarna som huvudkontrollmekanism. Agile kan kallas ett folk-centrerat tillvägagångssätt än traditionella metoder. Agile-modellen levererar en fungerande version av produkten mycket tidigt genom att bryta ner systemet till mycket små och hanterbara delar, 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 testningen görs parallellt med utvecklingen. På grund av alla dessa fördelar föredras Agile metoder över de traditionella metoderna för tillfället. Scrum och Extreme programmering är två av de mest populära variationerna av Agile-metoder.

Vad är SCRUM?

Som nämnts ovan är SCRUM en inkrementell och iterativ projektledningsprocess, som tillhör familjen Agile-metoder. SCRUM bygger på att högt prioriteras kunddeltagandet tidigt i utvecklingscykeln. Det rekommenderas att inkorporera testning av kunden tidigt och ofta som möjligt. Testning görs vid varje punkt när en stabil version blir tillgänglig. Grunden för SCRUM bygger på starttestning från början av projektet och fortsätter hela tiden fram till projektets slut.

SCRUMs nyckelvärde är "kvalitet är lagets ansvar", vilket betonar att mjukvarans kvalitet är ansvaret för hela laget (inte bara testteamet). En annan viktig aspekt av SCRUM är att bryta ner programvaran i mindre hanterbara delar och leverera dem till kunden mycket snabbt. Att leverera en arbetsprodukt är av största vikt. Då fortsätter teamet att förbättra mjukvaran och leverera kontinuerligt vid varje större steg. Detta uppnås genom att de har mycket korta frisättningscykler (kallas sprints) och får feedback för förbättring i slutet av varje cykel.

SCRUM definierar flera nyckelroller för att ett utvecklingslag ska fungera smidigt. De är produktägaren (som representerar kunden och upprätthåller produktens eftersläpning), Scrum master (som fungerar som arrangör och samordnare av laget genom att genomföra scrum möten, upprätthålla sprintbacklog och bränna diagram) och andra lagmedlemmar.Ett lag kan bestå av traditionella roller, men mestadels är de självstyrande lag. Main Scrum artefakter är Produkt backlog / release backlog (önskelista), Sprint backlogs / deficit backlogs (uppgifter i varje iteration), Bränn ner diagram (arbete kvarvarande med datum). Huvud SCRUM-ceremonierna är produkt backlog-möte, Sprint-möte och Retrospect-möte.

Vad är Extreme Programming?

Extreme Programming (förkortad XP) är en mjukvaruutvecklingsmetod som tillhör Agile-modellen. Extrem programmering utfö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ändig. För att ge konkreta mål för att utveckla programvaran skrivs automatiska tester i början. Då gör utvecklarna kodningen. Fokus ligger på att programmera som par. När alla prov passerar, anses kodningen fullständig. Nästa fas är design och arkitektur, som handlar om att refactorera koden av samma uppsättning programmerare. I slutet av denna fas presenteras ofullständiga (men funktionella) produkter för intressenterna. Strax efter detta startar nästa fas (som fokuserar på nästa uppsättning viktigaste funktioner).

Vad är skillnaden mellan Extreme Programming och SCRUM?

Extreme Programmering och SCRUM är förståeligt mycket likartade och anpassade metoder. Det finns emellertid subtil men viktiga skillnader mellan dessa två metoder. SCRUM sprints varar i 2-4 veckor, medan typiska XP-iterationer är kortare (senaste 1-2 veckor). Vanligtvis tillåter SCRUM-team inte ändringar i sprints, men XP-lag är lite mer flexibla för förändringar inom iterationer. Till exempel, efter sprintplaneringen, förblir uppsättningen objekt av den sprinten oförändrad, men en funktion som inte har börjat fungera kan när som helst bytas ut med någon annan funktion i XP. En annan skillnad mellan XP och SCRUM är att ordern på funktioner som utvecklats i XP är en strängt prioriterad av kunden, medan SCRUM-teamet bestämmer varuposten (efter produktens eftersläp prioriteras av SCRUMs produktägare).

Till skillnad från XP, definierar SCRUM inte några tekniska metoder. Till exempel drivs XP av praxis som testdriven utveckling (TDD), parprogrammering, refactoring etc. Men vissa anser att det är negativt att ange en uppsättning praxis på självorganiserande lag, och detta kan övervägas en brist på XP. En annan brist på Extreme programmering är att oerfarna lag kan tendera att refactor utan automatiska test eller TDD (eller helt enkelt hacking). Därför föreslår några att SCRUM är bättre för att stirra av (eftersom det ger stora förbättringar helt enkelt genom fokuserade iturationer) och XP är lämpligt för lite mogna lag som har upptäckt värdet av ovan nämnda metoder (istället för att använda dem eftersom de har blivit frågade att göra så).