Agile mot tradisjonell programvareutviklingsmetodikk
Det finnes mange forskjellige programvareutviklingsmetoder som brukes i programvarebransjen i dag. Vannutviklingsmetode er en av de tidligste programvareutviklingsmetodene. V-Model, RUP og få andre lineære, iterative og kombinert lineære iterative metoder, som kom etter foss metodologi, var ment å tørke ut mange problemer med fossen metoden. Alle disse tidligere metodologiene kalles tradisjonelle programvareutviklingsmetoder. Agile modell er en nyere programvareutviklingsmodell introdusert for å løse manglene i de tradisjonelle modellene. Hovedfokus for Agile er å inkorporere testing så tidlig som mulig og frigjøre en fungerende versjon av produktet veldig tidlig, ved å bryte ned systemet til svært små og håndterbare deler.
Hva er tradisjonell programvareutviklingsmetodikk?
Programvare metoder som Vannmetode, V-Model og RUP kalles tradisjonelle programvareutviklingsmetoder. Fossemetodikk er en av de tidligste programvareutviklingsmodellene. Som navnet antyder, er det en sekvensiell prosess der fremdrift flyter gjennom flere faser (kravanalyse, design, utvikling, testing og implementering) fra topp til bunn, analog med en foss. V-modell regnes som en forlengelse av Waterfall-programvareutviklingsmodellen. V-modell bruker de samme relasjonene mellom faser som er definert i Vannfallsmodellen. Men i stedet for å synke lineært (som vannfallsmodellen) går V-modellen ned diagonalt og beveger seg deretter tilbake (etter kodingsfasen), og danner formen på brevet V. RUP (Rational Unified Process) er et tilpassbart prosessramme (ikke en enkelt betongprosess), som kan tilpasses av utviklingsorganisasjonen etter behov. Litt som foss, har det faste faser som oppstart, utarbeidelse, konstruksjon og overgang. Men i motsetning til foss, er RUP en iterativ prosess.
Hva er Agile?
Agile er en svært ny programvareutviklingsmetode (eller mer riktig, en gruppe metoder) basert på det agile manifestet. Dette ble utviklet for å løse noen mangler i tradisjonelle programvareutviklingsmetoder. Agile metoder er basert på å gi høy prioritet til kundens deltakelse tidlig i utviklingssyklusen. Det anbefales å inkorporere testing av kunden tidlig og ofte som mulig. Testing er gjort på hvert punkt når en stabil versjon blir tilgjengelig. Grunnlaget for Agile er basert på starttest fra begynnelsen av prosjektet og fortsetter hele tiden til prosjektets slutt. Scrum og Extreme programmering er to av de mest populære variasjonene av Agile-metoder.
Nøkkelverdien til Agile er "kvalitet er lagets ansvar", som understreker at kvaliteten på programvaren er ansvaret for hele laget (ikke bare testteamet). Et annet viktig aspekt ved Agile er å bryte ned programvaren til mindre håndterbare deler og levere dem til kunden veldig raskt. Å levere et arbeidsprodukt er av største betydning. Deretter fortsetter teamet å forbedre programvaren og levere kontinuerlig på hvert stort trinn. Dette oppnås ved å ha svært kortvarige sykluser (kalt sprints i Scrum) og få tilbakemelding til forbedring på slutten av hver syklus. Bidragsytere uten mye samspill av teamet, som utviklere og testere i de tidligere metodene, jobber nå sammen i Agile-modellen.
Hva er forskjellen mellom Agile og Traditional Software Development Methodology?
Selv om Agile-metoden er basert på iterativ utvikling som noen av de tradisjonelle tilnærmingene, har agile og tradisjonelle metodikker viktige forskjeller. Tradisjonelle tilnærminger bruker planlegging som deres kontrollmekanisme, mens Agile-modellene bruker tilbakemeldingene fra brukerne som hovedkontrollmekanisme. Agile kan kalles en folk-sentrisk tilnærming enn tradisjonelle metoder. Agile modell leverer en fungerende versjon av produktet veldig tidlig i forhold til tradisjonelle metoder slik at kunden kan realisere noen av fordelene tidlig. Testtidspunkt for Agile er relativt kort sammenlignet med tradisjonelle metoder, fordi testing er gjort parallelt med utvikling. De fleste tradisjonelle modellene er veldig stive og relativt mindre fleksible enn Agile-modellen. På grunn av alle disse fordelene, er Agile foretrukket i forhold til de tradisjonelle metodene for øyeblikket.