Waterfall Methodology vs Agile
Der er en række forskellige softwareudviklingsmetoder, der bruges i softwareindustrien i dag. Vandfaldsudviklingsmetoden er en af de tidligste softwareudviklingsmetoder. Vandfalds softwareudviklingsmetodologi er en sekventiel model, hvor hver fase afsluttes fuldt ud og følges i en fast rækkefølge. Agile model er en nyere softwareudviklingsmodel introduceret for at afhjælpe manglerne i eksisterende 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 vandfaldsmetode?
Waterfall-metoden er en af de tidligste softwareudviklingsmodeller. Som navnet antyder, er det en sekventiel proces, hvor fremskridt flyder gennem flere faser fra top til bund, analogt med et vandfald. Vandfaldsmodellens faser er behovsanalyse, design, udvikling, test og implementering. Her er hver fase fuldført, inden man går videre til næste fase. Denne model var et direkte resultat af blot at tilpasse hardware-orienteret udviklingsmetode (findes i fremstillings- og byggeindustrien), på et tidspunkt var der ingen formel model for softwareudvikling.
Hvad er Agile?
Agile er en meget ny softwareudviklingsmetodologi 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. Grundlaget for Agile er baseret på at starte test fra starten af projektet og fortsætte til slutningen af projektet.
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 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 Agile-modellen.
Hvad er forskellen mellem Waterfall Methodology og Agile?
Agil model leverer en fungerende version af produktet meget tidligt sammenlignet med Waterfall-metoden. Efterhånden som flere funktioner leveres trinvist, kan kunden indse nogle af fordelene tidligt. Testcyklustiden for Agile er relativt kort sammenlignet med Waterfall-metoden, fordi testning udføres parallelt med udvikling. Vandfaldsmodellen er meget stiv og relativt mindre fleksibel end Agile-modellen. På grund af alle disse fordele foretrækkes Agile frem for vandfaldsmetoden i øjeblikket.