agile vs waterfall which is best methodology
test dit websted i forskellige browsere
Lær alt om smidige og vandfaldsmetoder, forskellige typer SDLC-modeller og forskellene mellem vandfald og smidige udviklingsmodeller samt test:
Læs denne informative artikel for at afgøre, hvilken model der er bedst egnet til dit projekt baseret på fordele og ulemper ved hver.
Vandfaldsmodellen og den agile model er typerne af softwareudviklings livscyklus (SDLC). Dette er den proces, der anvendes af softwareindustrien til at designe, udvikle og teste softwaren.
Ved at følge SDLC kan vi nå kundens forventninger, gennemføre projektet inden for givne tidsrammer og estimere omkostningerne.
Hvad du lærer:
- Vandfald og smidige arbejdsgange
- Vandfaldsmodel
- Agil arbejdsgang
- Forskellen mellem agile og vandfaldsmodeller
- Forskelle mellem agil test mod vandfaldstest
- Konklusion
Vandfald og smidige arbejdsgange
På enkel engelsk betyder Agile 'stand til at bevæge sig hurtigt og let', og det er derfor, hvad det betyder, når det kommer til Agil udviklingsmetode .
Agile er en metode til projektledelse, der er repræsenteret ved at opdele opgaverne i kortere arbejdssegmenter med hyppige gennemgange og tilpasning af planer.
Tilsvarende betegner ordet vandfald en lodret strøm af vand eller vandstrømmen gennem en række stejle dråber. Vandfaldsmodellen er en lineær sekventiel model, hvor fremskridtene hovedsageligt strømmer i en retning nedad gennem faser af kravindsamling, analyse, design, udvikling, test, implementering og vedligeholdelse.
Den samme illustration gælder for begrebet projektledelse, når det kommer til vandfaldsmodel . Det er en metode til projektledelse, der er repræsenteret af serielle faser og en fast arbejdsplan.
(billede kilde )
Før vi diskuterer arbejdsgangen med vandfald og fleksibel arbejdsgang, lad os se på definitionen af softwareudviklingens livscyklus og dens krav.
Hvad er livscyklus for softwareudvikling?
Det er en trinvis procedure at udvikle softwaren systematisk. Til dette vælger vi fra forskellige typer softwareudviklingslivscyklusser i forskellige virksomheder. Baseret på kravet vælges en passende livscyklus.
Vandfaldsmodellen er en af SDLC-typerne, og det er en gammel proces med at udvikle software. Den smidige model er den nyeste og avancerede. Agile stammer fra anden softwareudviklings livscyklus.
Anden SDLC inkluderer spiralmodellen, V- og V-modellen, prototype-modellen. Baseret på nødvendigheden og kompatibiliteten af forretningskravet vælger vi den bedste model til at udvikle softwareapplikationen.
(billede kilde )
Hvorfor kræves softwareudviklings livscyklus?
SDLC kræves for at styre projektet på en struktureret måde. Det giver et bestemt niveau af kontrol og definerer holdmedlemmernes roller og ansvar. Det giver omfanget og deadline for hver fase i SDLC.
Det ligner en brugervejledning til teammedlemmerne at følge alle trin for at udvikle og levere kvalitetsproduktet. Det hjælper teamledelsen med at definere og evaluere mål og krav. Det hjælper også med at planlægge og estimere opgaverne. Det udgør kommunikationslinjen mellem klienten og udviklingsteamet og skaber roller og ansvar for hver af dem.
Typer af softwareudvikling livscyklus
Lad os se en kort introduktion til de typer SDLC, der bruges i softwareudviklingsprocessen.
# 1) Vandfaldsmodel
Som diskuteret tidligere er vandfaldsmodellen den første introducerede softwareudviklings livscyklus. Det er den sekventielle måde at udvikle software på. Meget få virksomheder følger denne tilgang. Når projektet er meget simpelt, og der ikke er yderligere kravændringer, følger vi denne tilgang.
Vi vil diskutere mere om vandfaldsmodellen i denne vejledning.
# 2) Agil model
En fleksibel arbejdsgang er en avanceret tilgang til softwareudviklingsprocessen, som bruges i de fleste virksomheder. Agile defineres som den sprintbaserede livscyklus for softwareudvikling.
I de kommende sektioner kan vi diskutere mere om Agile-arbejdsgangen.
# 3) Spiral Model
Det er måden at opbygge og teste softwaren ved at opdele og tilføje kravet i trinvis rækkefølge. Denne model hjælper i projekter, hvor kravene bliver ved med at ændre sig. Denne spiralmodel er kombinationen af den iterative udviklingsproces og den sekventielle lineære udviklingsproces.
Denne tilgang giver os mulighed for trinvise udgivelser af produktet. Her er det ikke nødvendigt at vente på færdiggørelsen af alle moduler i softwaren til frigivelsen.
Den lineære sekventielle model betyder, at det er en systematisk sekventiel tilgang til softwareudvikling, der begynder på systemniveau og skrider frem gennem analyse, design, kodning, test og support.
Den iterative model betyder, at det er en bestemt implementering af en softwareudviklings livscyklus, der fokuserer på en indledende, forenklet implementering, som derefter gradvist får mere kompleksitet, og en bredere funktion indstilles, indtil det endelige system er færdigt.
# 4) Prototype Model
Denne model inkluderer processen med at opbygge og teste softwaren på en sådan måde, at vi først udvikler dummy-modellen, og hvis den er mulig og når alle forretningskravene, implementerer vi den egentlige arbejdsmodel.
Her først byggede og testede vi prototypen og byggede den aktuelle model med de nøjagtige systemspecifikationer. Software prototyping er aktiviteten til at skabe prototyper af softwareapplikationer.
# 5) V og V-model
Det er verifikations- og valideringsmodellen. Her, mens vi udviklede softwaren, brugte vi til at verificere og validere alt i hver fase af SDLC. V-modellen betragtes som en udvidelse af vandfaldsmodellen.
Så alle SDLC-typerne har deres funktioner og egenskaber. Baseret på projektkravet, behov, gennemførlighed, tidsvarighed, kan vi vælge den særlige softwareudviklings livscyklus til at udvikle softwareapplikationen.
Nu vil vi diskutere livscyklussen for udvikling af vandfald og smidig software i detaljer.
Vandfaldsmodel
I vandfaldsmodellen skal hver fase være afsluttet, før der startes en anden fase. Vi kan ikke betjene flere faser på samme tid. Dette blev introduceret i 1970 af Winston Royce. Vandfaldsmodellen er opdelt i forskellige faser.
(billede kilde )
Vandfaldsmodellen inkluderer følgende faser:
- Kravsindsamling
- Forundersøgelse
- Design
- Kodning
- Testning
- Vedligeholdelse
# 1) Kravsanalyse
Her får forretningsanalytikeren kravspecifikationen. Kravet vil være i CRS-formatet (Customer Requirement Specification). CRS forklarer, hvordan forretningsstrømmen skal gå, og hvordan applikationen skal fungere i henhold til det specificerede krav. Forretningsanalytikerne konverterer CRS til SRS (Software Requirement Specification).
Derefter diskuterer forretningsanalytikeren kravspecifikationerne med udviklings- og testteamet i detaljer og forstår kravet fra udviklings- og testperspektivet. Dette er fasen til at diskutere og analysere krav til at bygge applikationssoftwaren baseret på faktiske krav.
Her skal alt dokumenteres i dokumentet til specifikation af softwarekrav. I vandfaldsmodellen er hver fases leverbare / resultat / output inputkilden til de næste faser.
I en servicebaseret industri kan en forretningsanalytiker bringe kravet.
I en produktbaseret virksomhed bringer produktanalytikeren kravet.
# 2) Forundersøgelse
Ledelsesteamet foretager gennemførlighedsundersøgelsen. Det betyder, at teamet vil analysere parametre som, om dette krav / applikation kan udvikles i vores miljø eller ej, den tilgængelige ressource er tilstrækkelig eller ej, omkostningerne og mange andre faktorer er mulige eller ej, og for at kontrollere er vi i stand til at dække alle forretningsstrømme eller ej.
I dette møde / analyse er Project Manager, Business Analyst, Finance Manager, HR, Project Lead en del af diskussionen.
# 3) Systemdesign
Her forbereder projektarkitekten systemdesignet. Han specificerer hardware, systemkrav og designer applikationsarkitekturen. Der er 2 dele i systemdesignet: design på højt niveau og lavt niveau design. I højt niveau design designer vi de forskellige blokke i applikationen. I lavt niveau design skriver vi pseudokoden.
# 4) Kodning
Her starter udviklere den nøjagtige kodning af hver funktion og UI for applikationen ved hjælp af forskellige metoder og forskellige logikker. De kan bruge ethvert programmeringssprog som Java, Python eller ethvert andet sprog til at opbygge applikationen.
Når kodningen er færdig for hver funktionalitet i det bestemte applikationsmodul, foretager udvikleren enhedstesten. Hvis koden fungerer fint, distribuerer udvikleren koden i testmiljøet og giver testen til testeren til test.
# 5) Test
Herfra begynder testaktiviteten. Indtil denne fase har vi ingen opgave i vandfaldsmodellen. I denne fase udfører vi alle typer test. Disse testtyper inkluderer røgtest, funktionstest, integrationstest, systemtest, accepttest, regressionstest, ad hoc-test, sonderende test og test på tværs af browsere.
Vi begynder at teste applikationen, når vi først får buildet. Først starter vi med røgtest. Hvis der ikke observeres problemer med blokeringen, fortsætter vi med den detaljerede test.
I funktionel test begynder vi at teste hver komponent i applikationen. Her kontrollerer vi de forskellige komponenter som tekstfelter, knapper, links, radioknapper, uploadknapper, dropdowns og navigationslinks.
Dernæst vil vi kontrollere brugergrænsefladen, udseendet og den positive og negative inputtest.
Derefter starter vi med integrationstesten. Her vil vi kontrollere dataintegrationen. Vi kontrollerer, om de samme data reflekteres på forskellige sider eller ej, vil verificere e-mail-linknavigation til de respektive sider. Vi vil kontrollere dataintegrationen med tredjepartsapplikationer og kontrollere databaseændringerne i applikationen.
Dernæst foretager vi systemtest. Vi vil kontrollere hele applikationen som en enkelt enhed. Vi vil kontrollere funktionalitet, integration af siderne, validering af felter, fejlmeddelelser, bekræftelsesmeddelelser og mange flere.
Mens vi tester applikationen, logger vi problemerne i fejlsporingsværktøjet. Vi prioriterer fejlen baseret på problemerne. Efter oprettelsen af fejlen tildeler vi den til den respektive udvikler for at løse problemet. Vi vil kontrollere fejlene, når udviklerne har tildelt dem til testere efter at have rettet dem. Hvis det fungerer, vil testeren lukke fejlen, ellers tildeler testere tilbage til udvikleren for at løse problemet. Sådan fortsætter bugens livscyklus.
Derefter går vi videre til acceptstesten. Her tester vi applikationen i forskellige miljøer som iscenesættelse og UAT (User Acceptance Testing). Dette er den vigtigste fase for at teste applikationen grundigt, inden vi flytter koden til produktionsmiljøet.
Når acceptstesten er udført uden fejl, planlægger klienten at distribuere koden til produktionsserveren og planlægge frigivelsen.
# 6) Vedligeholdelse
Når vi har implementeret applikationskoden på produktionsserveren, skal vi levere support / vedligeholdelse til klientapplikationen. Denne vedligeholdelsesfase er at observere og rette produktionsproblemer i realtid, kontrollere hukommelsesproblemer, forbedre applikationen og udvikle de nye kravændringer.
I hvilke tilfælde kan vi vælge vandfaldsmodellen?
- Når der ikke er nødvendige ændringer.
- Når projektet er lille og simpelt.
- Når der ikke er nogen kompleksitet i teknologien.
- Når der er flere ressourcer til rådighed.
Vandfald Fordele:
- Frem og tilbage planlægning og implementering er let .
- Vandfaldsmodellen er enkel at bruge og let at forstå. Det kræver ingen særlig træning for projektledere eller medarbejdere. Det har en let læringskurve .
- At være stiv i naturen er det let at administrere vandfaldets cyklus. Hver fase har faste leverancer og en gennemgangsproces.
- Mindre kompleksitet da faserne ikke overlapper hinanden. Faser følges efter hinanden. Det bruger en klar struktur sammenlignet med de andre softwareudviklingsmetoder. Projektet gennemgår faste sekventielle trin startende fra kravindsamlingen og til sidst lander ved vedligeholdelse.
- På grund af trinvis udvikling, disciplin håndhæves og tidsplaner kan holdes let.
- Arbejder godt til små projekter hvor vi har faste og krystalklare krav.
- Processer og resultater er veldokumenteret .
- Det er let at arrangere opgaver.
- det er let at måle fremskridtene som start- og slutpunkter for hver fase er forudbestemt.
- Der er næsten ingen ændringer i kravene i hele projektet, derfor opgaver forbliver stabile for udviklerne. Det er også let for enhver ny udvikler til hurtigt at lære og start arbejdet.
- Der er ingen økonomiske overraskelser . Når kravene er løst, kan de endelige omkostninger beregnes, inden udviklingen påbegyndes.
- Henvender sig til en sekventiel finansieringsmodel .
- Dens detaljeret design gør det endelige forventede resultat meget klart for alle.
- Den funktionelle kravspecifikation dokumenteret i kravindsamlingsfasen giver testere nok detaljer til at designe testscenarier og testcases. Derfor er den testprocessen bliver let i vandfaldsmodellen.
Vandfald Ulemper:
- Da alle kravene skal være klart kendt, inden udviklingen påbegyndes, er det forsinker projektet .
- Kræver omfattende forskning ind i brugernes behov.
- I den indledende fase af projektet er det en udfordring for en kunde at klart definere og konceptualisere deres krav i form af funktionelle specifikationer. Derfor er der en høj mulighed for dem at skifte mening efter at have set slutproduktet. Denne ændring kan også forekomme på grund af en forretningsplan eller markedsindflydelse. Lav fleksibilitet i denne model gør det vanskeligt at imødekomme sådanne ændringer , især når produktet i høj grad skal ombygges.
- Ingen arbejdsmodel produceres indtil senere etape under vandfaldets livscyklus.
- Langsom leveringstid . Kunden kan ikke se produktet, før det er fuldstændigt færdigt.
- Kunden har ingen mulighed for at blive fortrolig med systemet på forhånd. Vandfaldsmodellen er mere en intern proces og holder slutbrugeren ekskluderet .
- Det klienten er ikke informeret godt om projektets sundhed.
- Deadlines kan gå glip af hvis streng styring og regelmæssig overvågning ikke holdes.
- Der er ikke plads til ændringer selvom det er synligt under udviklingen, da produktet ikke vil imødekomme markedets krav.
- Forsinker testning indtil efter afslutning. Også store revisioner er meget dyre på dette tidspunkt.
- Høj risiko og usikkerhed er involveret i vandfaldsmodellen, da der er for meget plads til, at problemer forbliver ubemærket, indtil projektet nærmer sig færdiggørelsen.
- Ikke en passende model til lange, komplekse og igangværende projekter.
- Det er svært at måle fremskridt inden for hver fase.
- Testere vil være inaktive i de mange faser af projektet.
Agil arbejdsgang
Nu vil vi se udviklingen af Agile Software livscyklus. Agil er processen med at udføre arbejde hurtigt og let med mere nøjagtighed.
Denne model er relateret til en metode til projektledelse, der især bruges til softwareudvikling. Det er kendetegnet ved opdeling af opgaver i korte arbejdsfaser og hyppig revurdering og tilpasning af planer. Hvert teammedlem skal have ideen om de grundlæggende forretningsstrømme.
(billede kilde )
I Agile arbejder udviklere og testere parallelt med at udvikle og teste applikationssoftwaren. Udvikling sker i iterativ tilstand. Hver iteration brugerhistorier kræver analyse, design, kodning og test.
Vi tester kravet på en detaljeret måde for at kontrollere, om kravet er fejlfrit og implementerbart eller ej. Skift til næste iteration efter afslutningen af hver iteration, og vi følger den samme proces til de nye / andre krav.
Således udføres denne proces med at udvikle og teste softwareblokken på kort tid med mere nøjagtighed og fleksibilitet. Så flere industrier følger og vedtager denne proces.
For det første tilføjer produktejeren alle krav til produktets efterslæb. Produktet bagud indeholder alle brugerhistorier. Lad os sige, at 100 til 150 brugerhistorier er relateret til det komplette projekt. Føj nu de særlige brugerhistorier til sprint-efterslæbet, som vi skal implementeres. Derefter vil alle udviklerne, QA, BA arbejde på sprintelementerne. Sådan fungerer Agile flow.
Nøgleord anvendt i agile
Hvad er sprintforsinkelsen?
hvordan du opsætter formørkelse til c ++
Det er listen over brugerhistorier, som vi skal implementere i den nuværende iteration eller sprint.
For eksempel, der er 20 til 30 brugerhistorier i sprintforsinkelsen. Så er det brugerhistorierne, som vi skal implementere i den aktuelle sprint.
(billede kilde )
Hvad er en sprint?
Sprint er den lille varighed, hvor vi har brug for at implementere de valgte brugerhistorier inden for en bestemt varighed. Sprintvarigheden vil være omkring 2 til 3 uger. Varigheden varierer fra firma til virksomhed.
I denne sprintvarighed skal holdet analysere kravet, designe kravene, udføre kodning, testning, løsning af problemet, gentestning, regressionstest, demo og mange flere aktiviteter.
Dagligt Standup Scrum-møde
Forretningsanalytiker, udvikler, Tester, projektlederen er en del af daglige stand up scrum-møder. Det gøres dagligt. Det bør ikke strække sig mere end 15 til 30 minutter.
Her deler alle teammedlemmer den daglige arbejdsstatus. De vigtigste ting, som vi diskuterer her, er: hvad er de ting, der er afsluttet i går, plan for dagens arbejde og eventuelle udfordringer eller afhængigheder, som de står over for i projektet.
Hvis et teammedlem står over for udfordringer eller forhindringer under projektet, vil den pågældende person arbejde på det for at få det gjort.
Burndown-diagram
Det er en billedlig graf gengivelse af tid og arbejde. X-aksen repræsenterer det resterende arbejde, y-aksen repræsenterer den tilbageværende sprinttid. Holdet skal oprette arbejdsopgaverne vedrørende den tid, der er til rådighed i den bestemte sprint. Holdet brænder opgavetimerne dagligt baseret på det arbejde, de har arbejdet og afsluttet.
(billede kilde )
Kanban-diagram
Det er et diagram / værktøj til projektledelse. Med dette kan vi styre opgaverne i hele projektet. Vi kan kontrollere projektets status og status for enkeltpersoner. Det viser den billedlige digitale repræsentation af fremskridtsgenstande, ventende genstande, færdige emner.
(billede kilde )
hvem er ansvarlig for den forretningsværdi, der leveres af et scrumteam?
Planlægning af pokeraktivitet
Det er et spil mellem sprint-teammedlemmerne for at estimere brugerhistorierne. Her spiller hele holdet pokeraktiviteten. Hver holdmedlemmer giver estimeringen baseret på brugerhistoripunktet. Baseret på flertalsestimationsstemmerne beslutter holdet og tildeler tidsrammen.
For eksempel , giver et brugerhistoriteammedlem et skøn som 3, 5, 8, 3, 1, 3. Derefter vælger holdet 3 som skøn. Pokeraktivitetskort indeholder 0, 1, 3, 5, 8, 13, 20, 100, pause, tvivl? kort. Baseret på dette team vil medlemmer foreslå ethvert estimeringskort. På denne måde estimerer vi alle brugerhistorier, der er relateret til den bestemte sprint.
(billede kilde )
- 0 poker nummer repræsenterer: ingen opgave i den vare / brugerhistorie
- 1, 3 tal repræsenterer: opgaven er mindre
- 5, 8 tal repræsenterer: mellemopgaver
- 13, 20 tal repræsenterer: store opgaver
- 100 tal repræsenterer: meget store opgaver
- Infinity repræsenterer: Opgaven er enorm, skal splittes i flere opgaver og brugerhistorier
- Break repræsenterer: har brug for en pause
- ? Repræsenterer: Tvivl
Scrum Master
Han er den person, der hjælper holdet med at følge den smidige proces og imødekomme projektkravet. Han leder mødet, når det er nødvendigt, og hjælper med at diskutere projektets behov.
Scrum master fungerer som en bro til alle teammedlemmerne for at løse de udfordringer og afhængigheder, der kommer på tværs af projektet. Han sporer projektforløbet vedrørende hver sprint.
Han er involveret i standupmødet, retrospektivt møde, inspektion, gennemgang, demo. Det er ham, der afholder de daglige stand up-møder og tager holdmedlemens opdatering.
Produktejer
Han er den person, der driver og overvåger produktet / projektet fra forretningssynspunktet. Han holder øje med, at produktet er udviklet i henhold til forretningskravet eller ej. Han er den, der prioriterer brugerhistorierne og flyttede kravene fra produktforsinkelsen til sprintforsinkelsen. Han estimerer deadlines for projektet.
Han ser altid på produktet fra brugerens synspunkt. Produktejeren har komplet viden om, hvordan applikationen skal fungere.
Brugerhistorie
Det er en blok af krav. Den indeholder det sæt brugssager / krav, der er relateret til det samme modul. Her definerer vi, hvordan hver komponent i en applikation skal fungere, og hvordan brugergrænsefladen skal se ud. Omfanget af hver komponent er defineret i brugerhistorien.
Opgaver
Teammedlemmer skal oprette opgaven til den brugerhistorie, der er tildelt dem. De har brug for at oprette opgaven baseret på de forskellige opgaver som udviklingsopgave, testopgave, brugerhistorisk analyseopgave. Opgavens varighed skal afhænge af brugerens historiepunkter.
Som tester opretter vi opgaverne til analyse af brugerhistorier, forberedelse af testsager, udførelse, regressionstest og mange flere.
Efterladtepleje
Denne del involverer styring af efterslæbsposter. De aktiviteter, vi laver her, er at prioritere efterslæbsposter, opdele i mindre poster, oprette opgaven og opdatere acceptkriterierne.
Iteration
Iteration er udvikling og test af nogle moduler / dele af softwareapplikationen. Hver iteration består af analysen af produktet, design af produktet, produktudvikling, test af produktet og demo af produktet.
Nøglefaktorer til vedtagelse af agil metode
- Observation: Gennemgå arbejdet og produktet regelmæssigt, og planlæg aktiviteterne i overensstemmelse hermed. Så produktudviklingsprocessen og produktkvaliteten vil være god.
- Velkomstændringer: Ændringer håndteres meget let. Det påvirker ikke meget på produktet, fordi moduler i softwaren udvikles separat og integreres senere. Så der vil ikke være nogen omarbejde, hvis kravet blev ændret i fremtiden.
- Tidsramme: Vi får tidsrammen for hver enhed i applikationen. Så estimeringen vil være nøjagtig i forhold til projekttidsestimaterne.
- Kundetilfredshed: Kundetilfredshed er mere, fordi vi interagerer med klienten og aktionæren igennem hele projektet, og vi vil give en demo på hvert niveau af produktudvikling. Ved dette får vi regelmæssig feedback fra kunde / klient om forretningsstrømme og arbejdsprocesser. Således udføres arbejde og udvikling af applikationen i overensstemmelse hermed.
Typer af smidige metoder
- Agil Scrum-metode
- Lean Softwareudvikling
- Kanban
- Ekstrem programmering (XP)
- Krystal
- Dynamisk systemudviklingsmetode (DSDM)
- Feature Driven Development (FDD)
Agile fordele:
- En af de største fordele ved den smidige model er dens stor tilpasningsevne . Tilpasningsevne betyder 'at reagere på ændringer'. Agile er meget fleksibel i at håndtere ændringer i kundernes behov og prioriteringer.
- Tillader at konstant forfine og omprioritere det samlede produktforsinkelse uden at påvirke den aktuelle iteration, hvor teamet er fokuseret på at levere MVP. Ændringerne kan planlægges til den næste iteration, hvorved der kun er mulighed for at bringe ændringerne inden for få uger.
- Agil metode tilbyder en stor grad af interessenters engagement . Klienten og projektteamet mødes før, under og efter hver sprint. Da kunden konstant er involveret i hele projektet, er der flere muligheder for teamet til klart at forstå kundens vision.
- Arbejdssoftwaren leveres tidligt og ofte. Dette øger interessenters tillid i holdet og opfordrer holdet til at bliv meget engageret til projektet.
- Denne model giver gennemsigtighed . Både interessenterne og teamet ved godt om, hvad der sker. Klienten kan se det igangværende arbejde.
- Faste skemasprint på en til fire uger giver mulighed for tidlig og forudsigelig levering . Nye funktioner frigives hurtigt og ofte på en tidsbokset måde.
- Adræt er kundeorienteret . Det leverer ikke kun funktionaliteten, men fokuserer også på at levere den funktion, der er af en vis værdi for brugeren. Hver brugerhistorie har et forretningsfokuseret acceptkriterium.
- Værdifuld kunde feedback er opnået tidlig i projektet og ændringer til produktet kan foretages efter behov.
- Fokus er på forretningsværdi . Den leverer først det, der er vigtigst for klienten.
- Forbedrer kvaliteten af leverancer . I modsætning til vandfald udføres test løbende og ofte i et Agile-projekt, og det hjælper igen med at opdage og løse problemerne tidligt.
- Adræt understøtter TDD (Test Driven Development) tilgang hvilket giver tilstrækkelig tid til at oprette enhedstest til de funktioner, der vil blive frigivet via MVP.
- Også ved at producere hyppige opbygninger kan enhver fejljustering med kundens krav også opdages og rettes tidligt.
- Som vi får øjeblikkelig brugerfeedback efter hver MVP-frigivelse, risikoen for projektfejl er lav, når du arbejder agil.
- Adræt fremmer teamwork . Der er et godt samarbejde, interaktion, harmoni og entusiasme blandt de agile teammedlemmer.
- Omkostningerne og tidsplanen for hver sprint meddeles klienten inden sprintstart. Det her forbedrer beslutningstagningen da brugeren kan forstå omkostningerne ved hver funktion og prioritere i overensstemmelse hermed.
- I et smidigt projekt er der plads til løbende forbedringer . Lærdomme fra tidligere sprints kan anvendes i de kommende sprints.
- Det fokuserer på den særlige opgave på hvert trin i projektet.
Agile ulemper:
- Det ses ofte, at Agile hold har en tendens til at forsømme dokumentation . Dette skyldes, at Agile-manifestet fokuserer mere på arbejdssoftware end den omfattende dokumentation. Holdene skal dog opretholde den rette balance mellem koden og dokumentationen.
- Da det kræver en høj grad af kundeinddragelse, kan det nogle gange være problematisk for kunderne der ikke har meget tid og interesse til at deltage i projektet.
- Det fungerer ikke godt, hvis holdet mangler engagement og engagement. Vandfald kræver involvering, men Agile kræver engagement.
- Hvis den indledende arkitektur og design er svag, så hyppig refactoring er påkrævet.
- Sammenlignet med vandfaldet er Agile det svært at øve . Holdmedlemmerne skal være velbevandrede i Agile koncepter. Det kræver en masse disciplin og engagement for at øve Agile.
- På grund af omprioritering er det det mindre forudsigelig end hvad der vil blive leveret i slutningen af sprinten.
- På grund af tidsbokslevering og hyppig genprioritering er der chancer for, at nogle få funktioner ikke bliver leveret på den tildelte tidslinje. Dette kan føre til ekstra sprints og ekstra omkostninger . Dette kan også føre til problemet med tåge tidslinjer .
- Mangel på struktur sammenlignet med vandfaldet, det kræver selvdisciplinerede, meget dygtige og tværfaglige hold . Uden dette kan projektet virkelig være en udfordrende.
- Tilgængelighed er mindre af en plan for den endelige levering .
- Undertiden eksterne interessenter kan ikke modstå at følge Agile-tilgangen . I sådanne tilfælde kræves uddannelse og uddannelse om Agile for et bredt publikum.
- Alle teammedlemmer skal være involveret i styringen af projektet.
- Dokumentation er mindre detaljeret.
Forskellen mellem agile og vandfaldsmodeller
Forskellene mellem vandfaldet og den agile softwareudviklingslivscyklus er angivet nedenfor.
Vandfald | Adræt |
---|---|
Processen behandles som et enkelt projekt, som yderligere er opdelt i forskellige faser. | Processen er opdelt i flere projekter, og hvert projekt har en iteration af forskellige faser. |
Vandfaldsmetode er en model, hvor hvert trin i produktets livscyklus optræder i en sekvens. Projektets fremskridt strømmer gradvist nedad gennem disse faser, der ligner et vandfald. | Agil metode er en model, der følger en iterativ tilgang. |
Denne model tror på engangs massiv hellevering. Produktet leveres i slutningen af SDLC. | Denne model tror på flere små klumper af levering ved definerede tidsintervaller. En MVP (minimum levedygtigt produkt) leveres i slutningen af hver sprint. |
Det er en traditionel og gammeldags tilgang. | Det er en ny og moderne tilgang. |
Én enkelt cyklus og enkelt frigivelse. | Gentagne antal gentagelser og flere udgivelser. |
Det opdeler softwareudviklings livscyklus i forskellige faser. | Det opdeler softwareudviklings livscyklus i sprints. |
Struktureret og stiv model. Det er vanskeligt at ændre projektets beskrivelse, specifikation og design. | Denne model er kendt for sin fleksibilitet. Vi kan til enhver tid foretage ændringer i enhver projektfase. |
Langsigtet planlægningsskala. | Kort sigt planlægning skala. |
Der er lang afstand mellem kunden og udvikleren. | Der er en kort afstand mellem kunden og udvikleren. |
Lang tid mellem specifikation og implementering. Forretningsanalytikeren indsamler og forbereder kravet inden projektets start. | Kort tid mellem specifikation og implementering. Produktejeren forbereder kravene og opdateringer til holdet i hver sprint. |
Det tager lang tid at opdage problemer. | Problemer opdages hurtigt. |
Høj projektplanrisiko. | Lav projektplanrisiko. |
Mindre evne til at reagere hurtigt på ændringer. | Høj evne til at reagere hurtigt på ændringer. |
Testfasen opstår først efter afslutningen af udviklingsfasen. | Test udføres generelt parallelt med udviklingen for kontinuerligt at sikre kvalitet. |
Kunden er kun involveret i kravindsamlingsfasen, og derefter er der ingen involvering fra kunden. Han kommer kun ind på billedet på tidspunktet for levering af produktet. | Kunden er involveret i hele projektet, og feed-back tages fra kunden fra tid til anden for at sikre kundetilfredshed. |
Velegnet til projekter, der har klart definerede krav, og dem der ikke forventer ændringer. | Velegnet til projekter, der skal udvikles, og dem, der involverer skiftende krav. |
Strengt sekventiel proces. | Meget samarbejde softwareudviklingsproces fører til bedre teamindsats og hurtig problemløsning. |
Udstiller en projektindstilling. | Introducerer et produkt tankegang, og det er således mere kundefokuseret. Krav og ændringer er den del af processen |
Formel og hierarkisk. Projektlederen er beslutningstager. | Det er uformelt. Hele teamet er ansvarlig for beslutningstagning. |
Denne model forventer, at der ikke vil ske ændringer i kravene i hele projektet. | Denne model er baseret på tilpasning og omfatter ændringer. |
Behov for at oprette manuelle dokumenter for at verificere status for den enkeltes arbejde og projektforløb. | Følger Kanban-diagrammet og nedbrændingsdiagrammet for at kontrollere projektets fremskridt og individets arbejdsstatus. |
Vi havde nok diskussion om forskellene mellem Agile & Waterfall-metoder og fordelene og udfordringerne ved hver. Lad os nu undersøge forskellene mellem agil test vs vandfaldstest.
Forskelle mellem agil test mod vandfaldstest
Fra et softwaretestperspektiv er det vigtigt for os at have en god idé om, hvordan Agile test er forskellig fra vandfaldstest.
Test af vandfald | Agil test |
---|---|
Testhold og udviklingsteam er adskilt af en klar grænse, og der er en streng og formel kommunikation mellem dem. | Testteamet og udviklingsteamene er integreret som et team, og der er en fri strøm af kommunikation mellem dem. |
Testen begynder efter afslutningen af udviklingen og bygger faser. | Testen starter samtidigt med udviklingsfasen. |
Planlægningen udføres kun en gang inden testfasen. | Planlægning sker inden projektets start og udføres ofte under projektet. |
Testplanen gennemgås sjældent under projektet. | Testplanen gennemgås efter hver sprint. |
Det er stille udfordrende for testteamet at foreslå ændringer i kravene. | Testteamet deltager aktivt i kravindsamlings- og ændringsprocessen. |
Testcases oprettes en gang for alle funktionaliteter. | Testcases oprettes sprint for sprint for de funktionaliteter, der skal frigives i hver sprint. |
Acceptantest udføres én gang af klienten efter frigivelsen. | Acceptstest kan udføres efter hver iteration og inden leveringen af en forretningsanalytiker eller testteamet. Senere gøres det af kunden efter hver frigivelse. |
Omfattende og omfattende testdokumentation. | Testdokumentation udføres kun så meget som nødvendigt. |
Testestimater og opgaver er ofte testlederens ansvar. | Testestimater og opgaver er teamets og testingeniørernes fælles ansvar, der er involveret i at levere estimaterne og vælge deres opgaver. |
Regressionstest udføres sjældent, og det involverer udførelse af alle testsagerne. | Regressionstest udføres efter hver iteration, og det involverer kun de påkrævede testsager. |
Konklusion
I denne artikel lærte vi de nøjagtige forskelle mellem den moderne Agile tilgang og den traditionelle Waterfall-metode til softwareudvikling og testning med en sammenligningstabel, der dækker fordele og ulemper ved hver model.
Ved at overveje alle de faktorer, der er anført i denne artikel, kan vi vælge den rigtige softwareudviklings livscyklusmodel til at udvikle softwareapplikationen. Der er ingen tvivl om at sige, at agile metoder foretrækkes frem for vandfaldsmodellen. 90% af virksomhederne foretrækker og følger Agile-arbejdsgangen for at udvikle softwareapplikationen.
Agil metode er god til alle slags projekter. Meget få virksomheder følger metoden med vandfald. Denne metode er kun egnet, hvis applikationen er lille, enkel og der ikke er ændringer i kravet.
I nogle tilfælde vælger vi også andre tilgange kaldet Spiral, V og V og Prototype baseret på behovene.
Håber, at disse oplysninger vil være nyttige for dig at beslutte, hvilken model der er den bedste model til dit projekt. Du kan også gå efter hybridmodel, der fjerner ulemperne ved hver metode - diskuteret her.
Anbefalet læsning
- Casestudie: Sådan fjernes fejl i vandfald og smidige udviklingsprocesser ved hjælp af en hybrid model
- Hvad er SDLC Waterfall Model?
- Zephyr Enterprise Test Management Tool Review - Sådan bruges vandfaldsmodelaktiver i Agile Tool
- VersionOne-vejledning: Alt-i-en Agile Project Management Tool Guide
- Jira Portfolio Tutorial: Agile Project Portfolio Management Plug-in til JIRA (anmeldelse)
- TOPP 10 bedste agile projektstyringsværktøjer i 2021
- Agile Estimation Techniques: En sand estimering i et smidigt projekt
- 4 trin mod udvikling af Agile Testing Mindset for vellykket overgang til agil proces