Agile vs tradisjonell programvareutviklingsmetode
Det er mange forskjellige programvareutviklingsmetoder som brukes i programvareindustrien i dag. Foss utviklingsmetode er en av de tidligste programvareutviklingsmetodene. V-Model, RUP og få andre lineære, iterative og kombinerte lineær-iterative metoder, som kom etter fossemetodikk, hadde til hensikt å utslette mange spørsmål om fossemetoden. Alle disse tidligere metodene kalles tradisjonelle programvareutviklingsmetoder. Agile-modellen er en nyere programvareutviklingsmodell introdusert for å løse manglene som finnes i de tradisjonelle modellene. Hovedfokus for Agile er å inkludere testing så tidlig som mulig og gi ut en fungerende versjon av produktet veldig tidlig, ved å bryte ned systemet i veldig små og håndterbare underdeler.
Hva er tradisjonell programvareutviklingsmetode?
Programvaremetoder som Waterfall-metoden, V-Model og RUP kalles tradisjonelle programvareutviklingsmetoder. Fossemetodikk er en av de tidligste programvareutviklingsmodellene. Som navnet antyder, er det en sekvensiell prosess der fremgang flyter gjennom flere faser (kravanalyse, design, utvikling, testing og implementering) fra topp til bunn, analogt med en foss. V-Model betraktes som en utvidelse av Waterfall-programvareutviklingsmodellen. V-Model bruker de samme forholdene mellom fasene som er definert i Waterfall-modellen. Men i stedet for å synke ned lineært (som Waterfall-modellen), går V-Model ned diagonalt og beveger seg deretter opp igjen (etter kodingsfasen), og danner formen til bokstaven V. RUP (Rational Unified Process) er et tilpasningsdyktig prosessrammeverk (ikke en konkret prosess),som kan tilpasses av utviklingsorganisasjonen etter deres behov. Litt lik foss, den har faste faser som begynnelse, utdyping, konstruksjon og overgang. Men i motsetning til foss er RUP en iterativ prosess.
Hva er smidig?
Agile er en veldig fersk programvareutviklingsmetode (eller mer korrekt, en gruppe metoder) basert på det smidige manifestet. Dette ble utviklet for å løse noen mangler i tradisjonelle programvareutviklingsmetoder. Agile metoder er basert på å prioritere kundedeltakelse tidlig i utviklingssyklusen. Det anbefaler å innlemme testing av kunden tidlig og ofte som mulig. Testing utføres på hvert punkt når en stabil versjon blir tilgjengelig. Grunnlaget for Agile er basert på å starte testing fra begynnelsen av prosjektet og fortsette til slutten av prosjektet. Scrum og Extreme programmering er to av de mest populære variantene av Agile metoder.
Nøkkelverdien til Agile er “kvalitet er teamets ansvar”, som understreker at kvaliteten på programvaren er hele teamets ansvar (ikke bare testteamet). Et annet viktig aspekt av Agile er å bryte ned programvaren til mindre håndterbare deler og levere dem til kunden veldig raskt. Å levere et fungerende produkt er av største betydning. Deretter fortsetter teamet med å forbedre programvaren og levere kontinuerlig ved hvert store trinn. Dette oppnås ved å ha veldig korte utgivelsessykluser (kalt sprints i Scrum) og få tilbakemelding for forbedring på slutten av hver syklus. Bidragsytere uten mye interaksjoner fra teamet som utviklere og testere i de tidligere metodene, jobber nå sammen innenfor den smidige modellen.
Hva er forskjellen mellom smidig og tradisjonell programvareutviklingsmetode?
Selv om Agile-metoden er basert på iterativ utvikling som noen av de tradisjonelle tilnærmingene, har Agile og tradisjonelle metoder viktige forskjeller. Tradisjonelle tilnærminger bruker planlegging som sin kontrollmekanisme, mens Agile modeller bruker tilbakemeldingen fra brukerne som den viktigste kontrollmekanismen. Agile kan kalles en folksentrert tilnærming enn tradisjonelle metoder. Agile-modellen leverer en fungerende versjon av produktet veldig tidlig i forhold til tradisjonelle metoder, slik at kunden kan innse noen av fordelene tidlig. Testing syklus tid av Agile er relativt kort sammenlignet med tradisjonelle metoder, fordi testing gjøres parallelt med utvikling. De fleste tradisjonelle modeller er veldig stive og relativt mindre fleksible enn Agile-modellen. På grunn av alle disse fordelene foretrekkes Agile fremfor tradisjonelle metoder for øyeblikket.