Agil vs traditionel softwareudviklingsmetode
Der er en række forskellige softwareudviklingsmetoder, der bruges i softwareindustrien i dag. Vandfaldsudviklingsmetoden er en af de tidligste softwareudviklingsmetoder. V-Model, RUP og få andre lineære, iterative og kombinerede lineær-iterative metoder, som kom efter vandfaldsmetodologien, havde til formål at udslette mange problemer med vandfaldsmetoden. Alle disse tidligere metoder kaldes traditionelle softwareudviklingsmetoder. Agile model er en nyere softwareudviklingsmodel introduceret for at afhjælpe manglerne i de traditionelle modeller. Hovedfokus for Agile er at inkorporere test så tidligt som muligt og frigive en fungerende version af produktet meget tidligt ved at nedbryde systemet i meget små og håndterbare underdele.
Hvad er traditionel softwareudviklingsmetode?
Softwaremetoder som Waterfall-metoden, V-Model og RUP kaldes traditionelle softwareudviklingsmetoder. Vandfaldsmetodologi er en af de tidligste softwareudviklingsmodeller. Som navnet antyder, er det en sekventiel proces, hvor fremskridt flyder gennem flere faser (behovsanalyse, design, udvikling, test og implementering) fra top til bund, analogt med et vandfald. V-Model betragtes som en udvidelse af Waterfall-softwareudviklingsmodellen. V-Model bruger de samme forhold mellem faser defineret i vandfaldsmodellen. Men i stedet for at falde lineært (som Waterfall-modellen) træder V-Model ned diagon alt og bevæger sig derefter tilbage op (efter kodningsfasen) og danner formen af bogstavet V. RUP (Rational Unified Process) er en tilpasningsbar procesramme (ikke en enkelt konkret proces), som kan tilpasses af udviklingsorganisationen efter deres behov. Lidt magen til vandfald har det faste faser som begyndelse, uddybning, konstruktion og overgang. Men i modsætning til vandfald er RUP en iterativ proces.
Hvad er Agile?
Agile er en meget ny softwareudviklingsmetodologi (eller mere korrekt, en gruppe af metoder) baseret på det agile manifest. Dette blev udviklet for at løse nogle mangler i traditionelle softwareudviklingsmetoder. Agile metoder er baseret på at prioritere kundedeltagelsen højt tidligt i udviklingscyklussen. Det anbefaler at inkorporere test af kunden tidligt og ofte som muligt. Test udføres på hvert tidspunkt, når en stabil version bliver tilgængelig. Fundamentet for Agile er baseret på at starte test fra starten af projektet og fortsætte hele vejen til projektets afslutning. Scrum- og Extreme-programmering er to af de mest populære varianter af Agile-metoder.
Nøgleværdien af Agile er "kvalitet er teamets ansvar", hvilket understreger, at kvaliteten af softwaren er hele teamets ansvar (ikke kun testteamet). Et andet vigtigt aspekt ved Agile er at nedbryde softwaren i mindre håndterbare dele og levere dem til kunden meget hurtigt. At levere et fungerende produkt er yderst vigtigt. Derefter fortsætter teamet med at forbedre softwaren og levere kontinuerligt ved hvert større trin. Dette opnås ved at have meget korte udgivelsescyklusser (kaldet sprints i Scrum) og få feedback til forbedring i slutningen af hver cyklus. Bidragydere uden meget interaktion fra teamet, såsom udviklere og testere i de tidligere metoder, arbejder nu sammen inden for den agile model.
Hvad er forskellen mellem agil og traditionel softwareudviklingsmetode?
Selv om Agile-metoden er baseret på iterativ udvikling som nogle af de traditionelle tilgange, har Agile og Traditionelle metoder vigtige forskelle. Traditionelle tilgange bruger planlægning som deres kontrolmekanisme, mens agile modeller bruger feedback fra brugerne som den vigtigste kontrolmekanisme. Agile kan kaldes en menneskecentreret tilgang end traditionelle metoder. Agile model leverer en fungerende version af produktet meget tidligt sammenlignet med traditionelle metoder, så kunden kan realisere nogle af fordelene tidligt. Testcyklustiden for Agile er relativt kort sammenlignet med traditionelle metoder, fordi test udføres parallelt med udvikling. De fleste traditionelle modeller er meget stive og relativt mindre fleksible end Agile-modellen. På grund af alle disse fordele foretrækkes Agile frem for de traditionelle metoder i øjeblikket.