Agile mot traditionell mjukvaruutvecklingsmetodik
Det finns ett antal olika mjukvaruutvecklingsmetoder som används i programvaruindustrin idag. Vattenfall utvecklingsmetod är en av de tidigaste mjukvaruutvecklingsmetoderna. V-Model, RUP och några andra linjära, iterativa och kombinerade lineära iterativa metoder, som kom efter vattenfallsmetodiken, avsedda att utplåna många problem med vattenfallsmetoden. Alla dessa tidigare metoder kallas traditionella mjukvaruutvecklingsmetoder. Agile modell är en nyare mjukvaruutvecklingsmodell som introduceras för att åtgärda bristerna i de traditionella modellerna. Huvudfokus hos Agile är att integrera testningen så tidigt som möjligt och släppa en fungerande version av produkten mycket tidigt, genom att bryta ner systemet till mycket små och hanterbara deldelar.
Vad är traditionell mjukvaruutvecklingsmetodik?
Programmetodik som vattenfallsmetod, V-modell och RUP kallas traditionella mjukvaruutvecklingsmetoder. Vattenfallsmetodiken är en av de tidigaste mjukvaruutvecklingsmodellerna. Som namnet antyder är det en sekventiell process där framsteg strömmar genom flera faser (kravanalys, design, utveckling, testning och implementering) från topp till botten, analog med ett vattenfall. V-Model anses vara en förlängning av programvaruutvecklingsmodellen för vattenfall. V-modell använder samma förhållanden mellan faser som definieras i vattenfallsmodellen. Men istället för att falla linjärt (som vattenfallsmodellen) går V-modellen nedåt diagonalt och flyttar sedan tillbaka (efter kodningsfasen), vilket bildar formen på bokstaven V. RUP (Rational Unified Process) är en anpassningsbar processram en enda betongprocess) som kan anpassas av utvecklingsorganisationen enligt deras behov. Något liknande vattenfallet har fasta faser som start, utarbetande, konstruktion och övergång. Men i motsats till vattenfall är RUP en iterativ process.
Vad är Agile?
Agile är en mycket nyutvecklad mjukvaruutvecklingsmetodik (eller mer korrekt, en grupp metoder) baserat på det agila manifestet. Detta har utvecklats för att lösa vissa brister i traditionella mjukvaruutvecklingsmetoder. Agila metoder bygger på hög prioritet på 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 Agile bygger på starttestning från början av projektet och fortsätter hela tiden fram till projektets slut. Scrum och Extreme programmering är två av de mest populära variationerna av Agile-metoder.
Det viktigaste värdet av Agile är "kvalitet är lagets ansvar", vilket betonar att programvarans kvalitet är ansvaret för hela laget (inte bara testteamet). En annan viktig aspekt av Agile ä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 ha mycket korta frisättningscykler (kallas sprints i Scrum) och får feedback för förbättring i slutet av varje cykel. Bidragsgivare utan stora interaktioner av laget, som utvecklare och testare i de tidigare metoderna, arbetar nu tillsammans inom Agile-modellen.
Vad är skillnaden mellan Agile och Traditional Software Development Methodology?
Även om Agile-metoden är baserad på iterativ utveckling som några av de traditionella tillvägagångssätten, har agila och traditionella metoder viktiga skillnader. Traditionella tillvägagångssätt använder planering som sin kontrollmekanism, medan Agile-modeller använder feedback från användarna som huvudkontrollmekanism. Agile kan kallas ett folk-centrerat tillvägagångssätt än traditionella metoder. Agile modell levererar en fungerande version av produkten mycket tidigt jämfört med traditionella metoder 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. De flesta traditionella modellerna är mycket styva och relativt mindre flexibla än Agile-modellen. På grund av alla dessa fördelar är Agile föredragen över de traditionella metoderna för tillfället.