Agile vs traditionel softwareudviklingsmetodologi
Der er mange forskellige softwareudviklingsmetoder, der anvendes i softwarebranchen i dag. Vandfald-udviklingsmetode er en af de tidligste softwareudviklingsmetoder. V-model, RUP og få andre lineære, iterative og kombinerede lineære-iterative metoder, der kom efter vandfaldsmetodik, 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 imødegå manglerne i de traditionelle modeller. Agile's hovedfokus er at indarbejde test så tidligt som muligt og frigive en fungerende version af produktet meget tidligt ved at nedbryde systemet til meget små og håndterbare underdele.
Hvad er traditionel softwareudviklingsmetodologi?
Softwaremetoder som vandfaldsmetode, V-model og RUP kaldes traditionelle softwareudviklingsmetoder. Vandfaldsmetodik er en af de tidligste softwareudviklingsmodeller. Som navnet antyder er det en sekventiel proces, hvor fremskridt flyder gennem flere faser (kravanalyse, 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, der er defineret i vandfaldsmodellen. Men i stedet for at falde lineært (som vandfaldsmodellen) trækker V-modellen ned diagonalt og bevæger sig derefter op igen (efter kodningsfasen) og danner formen til bogstavet. RUP (Rational Unified Process) er en tilpassbar procesramme (ikke en enkelt konkret proces), der kan tilpasses af udviklingsorganisationen efter deres behov. Lidt svarende til vandfaldet har det faste faser som start, uddybning, konstruktion og overgang. Men i modsætning til vandfald er RUP en iterativ proces.
Hvad er smidig?
Agile er en meget nyere softwareudviklingsmetodologi (eller mere korrekt, en gruppe metodologier) baseret på det agile manifest. Dette blev udviklet for at løse nogle mangler ved traditionelle softwareudviklingsmetoder. Agile metoder er baseret på at prioritere kundens deltagelse højt tidligt i udviklingscyklussen. Det anbefales at inkorporere test af kunden tidligt og ofte som muligt. Testning udføres på hvert punkt, når en stabil version bliver tilgængelig. Grundlaget for Agile er baseret på at starte test fra projektets begyndelse og fortsætte til slutningen af projektet. Scrum og Extreme programmering er to af de mest populære variationer af Agile-metoder.
Nøgleværdien af Agile er "kvalitet er teamets ansvar", som understreger, at kvaliteten af softwaren er ansvaret for hele teamet (ikke kun testteamet). Et andet vigtigt aspekt af Agile er at nedbryde softwaren i mindre håndterbare dele og levere dem til kunden meget hurtigt. Det er yderst vigtigt at levere et arbejdsprodukt. Derefter fortsætter teamet med at forbedre softwaren og leverer kontinuerligt på hvert større trin. Dette opnås ved at have meget korte frigivelsescyklusser (kaldet sprints i Scrum) og få feedback til forbedring i slutningen af hver cyklus. Bidragsydere uden meget interaktion fra teamet, som f.eks. Udviklere og testere i de tidligere metoder, arbejder nu sammen inden for Agile-modellen.
Hvad er forskellen mellem Agile og traditionel softwareudviklingsmetode?
Selvom Agile-metoden er baseret på iterativ udvikling som nogle af de traditionelle tilgange, har Agile og Traditional-metodik 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 folkecentrisk tilgang end traditionelle metoder. Agile model leverer en fungerende version af produktet meget tidligt sammenlignet med traditionelle metoder, så kunden kan indse nogle af fordelene tidligt. Testcyklustiden for Agile er relativt kort sammenlignet med traditionelle metoder, fordi testen udføres parallelt med udviklingen. 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.