agile vs waterfall which is best methodology
webservices interviewvragen en antwoorden
Leer alles over Agile en Watervalmethoden, verschillende soorten SDLC-modellen en de verschillen tussen Waterval- en Agile-ontwikkelingsmodellen en over testen:
Lees dit informatieve artikel om te beslissen welk model het best geschikt is voor uw project op basis van de voor- en nadelen van elk.
Het Waterfall-model en het Agile-model zijn de soorten Software Development Life Cycle (SDLC). Dit zijn de processen die door de software-industrie worden gebruikt om de software te ontwerpen, ontwikkelen en testen.
Door de SDLC te volgen, kunnen we de verwachtingen van de klant waarmaken, het project binnen een bepaald tijdsbestek voltooien en de kosten schatten.
Wat je leert:
- Waterval en Agile Model Workflows
- Waterval model
- Agile workflow
- Verschil tussen Agile Vs Waterfall-modellen
- Verschillen tussen Agile testen versus watervaltesten
- Gevolgtrekking
Waterval en Agile Model Workflows
In eenvoudig Engels betekent Agile ‘snel en gemakkelijk kunnen bewegen’ en dat is wat het betekent als het gaat om de Agile ontwikkelingsmethodologie
Agile is een methode van projectmanagement die wordt weergegeven door de taken op te splitsen in kortere werksegmenten met regelmatige beoordelingen en aanpassing van plannen.
Evenzo verwijst het woord waterval naar een verticale waterstroom of de stroom van water door een reeks steile druppels. Het watervalmodel is een lineair sequentieel model waarin de voortgang grotendeels in één richting naar beneden stroomt door de fasen van het verzamelen van vereisten, analyse, ontwerp, ontwikkeling, testen, implementatie en onderhoud.
Dezelfde illustratie is van toepassing op het concept van projectmanagement als het gaat om de waterval model Het is een methode van projectmanagement die wordt weergegeven door seriële fasen en een vast werkplan.
(beeld bron
Laten we, voordat we de Waterval-workflow en Agile-workflow bespreken, eerst eens kijken naar de definitie van de Software Development Life Cycle en de bijbehorende vereisten.
Wat is de levenscyclus van softwareontwikkeling?
Het is een stapsgewijze procedure om de software systematisch te ontwikkelen. Hiervoor selecteren we uit verschillende soorten levenscycli van softwareontwikkeling in verschillende bedrijven. Op basis van de behoefte wordt een passende levenscyclus gekozen.
Het watervalmodel is een van de SDLC-typen en het is een oud proces van softwareontwikkeling. Het agile-model is het nieuwste en geavanceerde model. Agile is afgeleid van de levenscyclus van andere softwareontwikkeling.
Andere SDLC omvat het spiraalmodel, V- en V-model, Prototype-model. Op basis van de noodzaak en compatibiliteit van de zakelijke vereisten, zullen we het beste model kiezen om de softwareapplicatie te ontwikkelen.
(beeld bron
Waarom is de levenscyclus van softwareontwikkeling vereist?
SDLC is vereist om het project op een gestructureerde manier te beheren. Het biedt een bepaald niveau van controle en definieert de rollen en verantwoordelijkheden van de teamleden. Het biedt de reikwijdte en deadline voor elke fase in SDLC.
Het is een beetje als een gebruikershandleiding voor de teamleden om alle stappen te volgen om het kwaliteitsproduct te ontwikkelen en te leveren. Het helpt het teammanagement om de doelstellingen en vereisten te definiëren en te evalueren. Het helpt ook bij het plannen en schatten van de taken. Het legt de communicatielijn tussen de klant en het ontwikkelteam en creëert de rollen en verantwoordelijkheden voor elk van hen.
Soorten levenscyclus van softwareontwikkeling
Laten we een korte inleiding bekijken over de soorten SDLC die worden gebruikt in het softwareontwikkelingsproces.
# 1) Watervalmodel
Zoals eerder besproken, is het watervalmodel de eerste levenscyclus van softwareontwikkeling. Het is de opeenvolgende manier om software te ontwikkelen. Zeer weinig bedrijven volgen deze aanpak. Als het project heel eenvoudig is en er geen verdere wijzigingen in de vereisten zijn, zullen we deze aanpak volgen.
In deze tutorial bespreken we meer over het watervalmodel.
# 2) Agile model
Een agile workflow is een geavanceerde benadering van het softwareontwikkelingsproces, die in de meeste bedrijven wordt gebruikt. Agile wordt gedefinieerd als de levenscyclus van sprintgebaseerde softwareontwikkeling.
In de komende secties kunnen we meer bespreken over de Agile-workflow.
# 3) Spiraalmodel
Het is de manier om de software te bouwen en te testen door de vereiste in oplopende volgorde op te splitsen en toe te voegen. Dit model helpt bij projecten waarbij de eisen steeds veranderen. Dit spiraalmodel is de combinatie van het iteratieve ontwikkelproces en het sequentiële lineaire ontwikkelproces.
Met deze aanpak kunnen we incrementele releases van het product uitvoeren. Hier is het niet nodig om te wachten op de voltooiing van alle modules van de software voor de release.
Het lineaire sequentiële model betekent dat het een systematische sequentiële benadering van softwareontwikkeling is die begint op systeemniveau en vordert via analyse, ontwerp, codering, testen en ondersteuning.
Het iteratieve model betekent dat het een specifieke implementatie is van een softwareontwikkelingscyclus die zich richt op een initiële, vereenvoudigde implementatie, die vervolgens geleidelijk aan complexer wordt en een bredere functie wordt ingesteld totdat het uiteindelijke systeem is voltooid.
# 4) Prototypemodel
Dit model omvat het proces van het bouwen en testen van de software op een zodanige manier dat we eerst het dummy-model ontwikkelen en als het haalbaar is en aan alle zakelijke vereisten voldoet, dan implementeren we het daadwerkelijke werkende model.
Hier hebben we eerst het prototype gebouwd en getest en vervolgens het daadwerkelijke model gebouwd met de exacte systeemspecificaties. Softwareprototyping is het maken van prototypes van softwaretoepassingen.
# 5) V- en V-model
Het is het verificatie- en validatiemodel. Hier, tijdens het ontwikkelen van de software die we hebben gebruikt om alles in elke fase van de SDLC te verifiëren en valideren. Het V-model wordt beschouwd als een uitbreiding van het watervalmodel.
Alle SDLC-typen hebben dus hun kenmerken en kenmerken. Op basis van de projectvereisten, behoeften, haalbaarheid en tijdsduur kunnen we de specifieke levenscyclus van softwareontwikkeling kiezen om de softwareapplicatie te ontwikkelen.
Nu zullen we de levenscycli van softwareontwikkeling in Waterfall en Agile in detail bespreken.
Waterval model
In het Watervalmodel moet elke fase worden voltooid voordat een andere fase wordt gestart. We kunnen niet meerdere fasen tegelijk bedienen. Dit werd in 1970 geïntroduceerd door Winston Royce. Het Watervalmodel is opgedeeld in verschillende fasen.
(beeld bron
Watervalmodel omvat de volgende fasen:
- Verzameling van vereisten
- Haalbaarheidsstudie
- Ontwerp
- Codering
- Testen
- Onderhoud
# 1) Vereiste analyse
Hier krijgt de bedrijfsanalist de specificatie van de vereisten. De vereiste is in het CRS-formaat (Customer Requirement Specification). CRS legt uit hoe de bedrijfsstroom moet verlopen en hoe de applicatie moet werken volgens de gespecificeerde vereisten. De bedrijfsanalisten zetten CRS om in SRS (Software Requirement Specification).
Vervolgens bespreekt de bedrijfsanalist de behoeftespecificaties met het ontwikkel- en testteam in detail en begrijpt hij de eis vanuit het oogpunt van ontwikkeling en testen. Dit is de fase waarin vereisten worden besproken en geanalyseerd om de applicatiesoftware te bouwen op basis van daadwerkelijke vereisten.
Hier moet alles worden gedocumenteerd in het specificatiedocument voor softwarevereisten. In het watervalmodel is het deliverable / resultaat / de output van elke fase de inputbron voor de volgende fasen.
In een servicegerichte industrie kan een bedrijfsanalist de vereiste brengen.
In een op producten gebaseerd bedrijf brengt de productanalist de vereiste.
# 2) Haalbaarheidsstudie
Het managementteam doet de haalbaarheidsstudie. Het betekent dat het team parameters zal analyseren zoals, is deze vereiste / applicatie kan worden ontwikkeld in onze omgeving of niet, de beschikbare middelen zijn voldoende of niet, de kosten en vele andere factoren zijn haalbaar of niet, en om te controleren of we in staat zijn deze te dekken alle zaken stromen of niet.
In deze bijeenkomst / analyse zullen Project Manager, Business Analist, Finance Manager, HR, Project Lead deel uitmaken van de discussie.
# 3) Systeemontwerp
Hier bereidt de projectarchitect het systeemontwerp voor. Hij specificeert de hardware, systeemvereisten en ontwerpt de applicatiearchitectuur. Het systeemontwerp bestaat uit 2 delen: ontwerp op hoog niveau en ontwerp op laag niveau. Bij high-level design ontwerpen we de verschillende blokken van de applicatie. Bij low-level design schrijven we de pseudo-code.
# 4) Codering
Hier beginnen ontwikkelaars met de exacte codering van elke functie en gebruikersinterface van de applicatie door verschillende methoden en verschillende logica's te gebruiken. Ze kunnen elke programmeertaal gebruiken, zoals Java, Python of elke andere taal om de applicatie te bouwen.
Zodra de codering is voltooid voor elke functionaliteit van de specifieke module van de applicatie, zal de ontwikkelaar de unit testen. Als de code goed werkt, implementeert de ontwikkelaar de code in de testomgeving en geeft de build aan de tester om te testen.
# 5) Testen
Vanaf hier begint de testactiviteit. Tot deze fase hebben we geen taak in het Watervalmodel. In deze fase doen we alle soorten testen. Deze testtypen omvatten rooktesten, functionele testen, integratietesten, systeemtesten, acceptatietesten, regressietesten, ad-hoc testen, verkennende testen en cross-browser testen.
Zodra we de build hebben, zullen we beginnen met het testen van de applicatie. Eerst beginnen we met rooktesten. Als er geen blocker-problemen worden waargenomen, gaan we door met de gedetailleerde tests.
Bij functioneel testen beginnen we met het testen van elk onderdeel van de applicatie. Hier controleren we de verschillende componenten zoals tekstvelden, knoppen, koppelingen, keuzerondjes, uploadknoppen, vervolgkeuzemenu's en navigatielinks.
Vervolgens zullen we de gebruikersinterface, het uiterlijk en het gevoel en de positieve en negatieve input testen.
Daarna starten we met de integratietest. Hier zullen we de data-integratie controleren. We zullen controleren of dezelfde gegevens worden weergegeven op verschillende respectieve pagina's of niet, we zullen de e-maillinknavigatie naar de respectieve pagina's verifiëren. We zullen de data-integratie met applicaties van derden controleren en de databasewijzigingen in de applicatie controleren.
Vervolgens zullen we systeemtesten doen. We zullen de hele applicatie als één geheel controleren. We zullen de functionaliteit, integratie van de pagina's, veldvalidaties, foutmeldingen, bevestigingsmeldingen en nog veel meer controleren.
Tijdens het testen van de applicatie loggen we de problemen in de bug-trackingtool. We geven prioriteit aan de bug op basis van de problemen. Nadat we de bug hebben gemaakt, zullen we deze aan de respectievelijke ontwikkelaar toewijzen om het probleem op te lossen. We zullen de bugs verifiëren zodra de ontwikkelaars ze aan testers hebben toegewezen nadat ze zijn opgelost. Als het goed werkt, zal tester de bug sluiten, anders zullen testers terug toewijzen aan de ontwikkelaar om het probleem op te lossen. Dit is hoe de levenscyclus van de bug verloopt.
Daarna gaan we verder met de acceptatietest. Hier testen we de applicatie in verschillende omgevingen zoals staging en UAT (User Acceptance Testing). Dit is de belangrijkste fase om de applicatie grondig te testen voordat we de code naar de productieomgeving verplaatsen.
Zodra de acceptatietest zonder fouten is uitgevoerd, plant de klant de implementatie van de code op de productieserver en plant hij de release.
# 6) Onderhoud
Zodra we de applicatiecode op de productieserver hebben geïmplementeerd, moeten we de ondersteuning / het onderhoud aan de clienttoepassing bieden. Deze onderhoudsfase is bedoeld om de realtime productieproblemen te observeren en op te lossen, de geheugenproblemen te controleren, de applicatie te verbeteren en de nieuwe vereisten te ontwikkelen.
In welke gevallen kunnen we kiezen voor het watervalmodel?
- Als er geen vereiste wijzigingen zijn.
- Als het project klein en eenvoudig is.
- Als er geen complexiteit is in technologie.
- Als er meer middelen beschikbaar zijn.
Waterval Voordelen:
- Vooruit achteruit planning en implementatie is eenvoudig
- Het watervalmodel is eenvoudig in gebruik en gemakkelijk te begrijpen. Het vereist geen speciale training voor projectmanagers of medewerkers. Het heeft een gemakkelijke leercurve
- Stijf van aard, is het gemakkelijk te beheren de watervalcyclus. Elke fase heeft vaste resultaten en een beoordelingsproces.
- Minder complexiteit omdat de fasen elkaar niet overlappen. Fases volgen elkaar op. Het gebruikt een duidelijke structuur in vergelijking met de andere methoden voor softwareontwikkeling. Het project doorloopt vaste opeenvolgende stappen, beginnend bij het verzamelen van vereisten en uiteindelijk bij onderhoud.
- Door gefaseerde ontwikkeling discipline wordt afgedwongen , en tijdschema's kunnen gemakkelijk worden bijgehouden.
- Werken goed voor kleine projecten waar we vaste en glasheldere eisen stellen.
- Processen en resultaten zijn goed gedocumenteerd
- Taken regelen is eenvoudig.
- Het is gemakkelijk om de voortgang te meten aangezien de start- en eindpunten van elke fase vooraf zijn bepaald.
- Er is bijna geen verandering in de vereisten gedurende het project, vandaar de taken blijven stabiel voor de ontwikkelaars. Het is ook gemakkelijk voor iedereen nieuwe ontwikkelaar om snel te leren en begin met het werk.
- Er zijn geen financiële verrassingen Zodra de vereisten zijn vastgesteld, kunnen de uiteindelijke kosten worden berekend voordat met de ontwikkeling wordt begonnen.
- Geschikt voor een sequentieel financieringsmodel
- Haar gedetailleerd ontwerp maakt het uiteindelijke verwachte resultaat voor iedereen heel duidelijk.
- De functionele specificatie van vereisten die in de fase van het verzamelen van vereisten is gedocumenteerd, geeft voldoende details aan de testers om testscenario's en testcases te ontwerpen. Vandaar dat de testproces wordt eenvoudig in het watervalmodel.
Waterval nadelen:
- Omdat alle vereisten duidelijk bekend moeten zijn voordat met de ontwikkeling wordt begonnen, is it vertraagt het project
- Vereist uitgebreid onderzoek in de gebruikersbehoeften.
- In de beginfase van het project is het voor een klant een uitdaging om hun vereisten duidelijk te definiëren en te conceptualiseren in de vorm van functionele specificaties. Daarom is er een grote kans dat ze van gedachten veranderen nadat ze het eindproduct hebben gezien. Deze verandering kan ook optreden als gevolg van een businessplan of marktinvloed. Lage flexibiliteit in dit model maakt het moeilijk om aan dergelijke veranderingen tegemoet te komen , vooral als het product grotendeels opnieuw moet worden ontworpen.
- Geen werkend model wordt geproduceerd tot de later fase tijdens de levenscyclus van de waterval.
- Trage levertijden De klant kan het product pas zien als het volledig is voltooid.
- De klant heeft geen gelegenheid om vooraf met het systeem vertrouwd te raken. Het watervalmodel is meer een intern proces en houdt de eindgebruiker uitgesloten
- De opdrachtgever is niet geïnformeerd goed over de gezondheid van het project.
- Deadlines kunnen gemist worden als er geen strikt beheer en regelmatig toezicht wordt gehouden.
- Er is geen ruimte voor veranderingen zelfs als het tijdens de ontwikkeling zichtbaar is, omdat het product niet zal inspelen op de marktbehoefte.
- Vertraagt het testen tot na voltooiing. Grote revisies zijn op dit moment ook erg duur.
- Hoog risico en onzekerheid zijn betrokken bij het watervalmodel, omdat er te veel ruimte is om problemen onopgemerkt te laten totdat het project bijna voltooid is.
- Geen geschikt model voor lange, complexe en lopende projecten.
- Het is moeilijk om meet de voortgang binnen elke fase.
- Testers zitten stil tijdens de vele fasen van het project.
Agile workflow
Nu zullen we de ontwikkelingscyclus van Agile Software zien. Agile is het proces waarbij werk snel en gemakkelijk met meer nauwkeurigheid wordt gedaan.
Dit model is gerelateerd aan een methode van projectmanagement, die speciaal wordt gebruikt voor softwareontwikkeling. Het kenmerkt zich door de taakverdeling in korte werkfasen en het veelvuldig herbeoordelen en aanpassen van plannen. Elk teamlid moet een idee hebben van de basisbedrijfsstromen.
(beeld bron
In Agile werken ontwikkelaars en testers parallel aan het ontwikkelen en testen van de applicatiesoftware. Ontwikkeling gebeurt in iteratieve modus. Elke iteratie van gebruikersverhalen vereist de analyse, het ontwerp, de codering en het testen.
We testen de vereiste op een gedetailleerde manier om te verifiëren of de vereiste foutloos en implementeerbaar is of niet. Schakel over naar de volgende iteratie na het einde van elke iteratie en we volgen hetzelfde proces voor de nieuwe / andere vereisten.
Dit proces van het ontwikkelen en testen van het softwareblok wordt dus in korte tijd met meer nauwkeurigheid en flexibiliteit uitgevoerd. Dus meer industrieën volgen en passen dit proces toe.
Allereerst voegt de product owner alle eisen toe aan de product backlog. De product backlog bevat alle user stories. Laten we zeggen dat 100 tot 150 user stories gerelateerd zijn aan het complete project. Voeg nu de specifieke gebruikersverhalen toe aan de sprint-backlog die we moeten implementeren. Vervolgens werken alle ontwikkelaars, QA, BA aan de sprintitems. Dit is hoe Agile flow werkt.
Belangrijkste terminologieën die worden gebruikt in Agile
Wat is de achterstand in de sprint?
webservices in java interviewvragen en antwoorden
Het is de lijst met gebruikersverhalen die we in de huidige iteratie of sprint moeten implementeren.
Bijvoorbeeld, er zitten 20 tot 30 user stories in de sprint backlog. Dit zijn dan de user stories die we in de huidige sprint moeten implementeren.
(beeld bron
Wat is een sprint?
Sprint is de korte duur waarin we de geselecteerde gebruikersverhalen binnen een bepaalde duur moeten implementeren. De sprint duurt ongeveer 2 tot 3 weken. De duur varieert van bedrijf tot bedrijf.
Tijdens deze sprintduur moet het team de vereiste analyseren, de vereisten ontwerpen, coderen, testen, het probleem oplossen, opnieuw testen, regressietesten, demo en nog veel meer activiteiten.
Dagelijkse Standup Scrum-bijeenkomst
Business Analist, Developer, Tester en de Project Manager maken deel uit van de dagelijkse stand up scrum meetings. Het wordt dagelijks gedaan. Het mag niet langer duren dan 15 tot 30 minuten.
Hier delen alle teamleden de dagelijkse werkstatus. De belangrijkste dingen die we hier bespreken zijn: wat zijn de dingen die gisteren zijn voltooid, plannen voor het werk van vandaag en eventuele uitdagingen of afhankelijkheden waarmee ze worden geconfronteerd in het project.
Als een teamlid tijdens het project uitdagingen of obstakels tegenkomt, zal de betrokken persoon eraan werken om het voor elkaar te krijgen.
Burndown-grafiek
Het is een grafische weergave van tijd en werk. De x-as vertegenwoordigt het resterende werk, de y-as vertegenwoordigt de overgebleven sprinttijd. Het team moet de werktaken creëren met betrekking tot de beschikbare tijd in de betreffende sprint. Het team zal de taakuren dagelijks verbranden op basis van het werk dat ze hebben gewerkt en voltooid.
(beeld bron
Kanban-grafiek
Het is een diagram / tool voor projectbeheer. Hiermee kunnen we de taken van het hele project beheren. We kunnen de voortgang van het project en de werkstatus van individuen controleren. Het toont de picturale digitale weergave van voortgangsitems, lopende items, voltooide items.
(beeld bron
verschil tussen testcase en testscenario
Pokeractiviteit plannen
Het is een spel tussen de sprintteamleden om de user stories in te schatten. Hier speelt het hele team de pokeractiviteit. Elk teamlid geeft de schatting op basis van het user story-punt. Op basis van de stemmen van de meerderheid, zal het team beslissen en het tijdslot toewijzen.
Bijvoorbeeld , zal een user story teamlid een schatting geven zoals 3, 5, 8, 3, 1, 3. Dan kiest het team 3 als schatting. Pokeractiviteitskaart bevat 0, 1, 3, 5, 8, 13, 20, 100, pauze, twijfels? kaarten. Op basis van dit team zullen de teamleden een schattingskaart voorstellen. Op deze manier schatten we alle gebruikersverhalen in die betrekking hebben op de betreffende sprint.
(beeld bron
- 0 poker nummer staat voor: geen taak in dat item / gebruikersverhaal
- 1, 3 cijfers staan voor: de taak is minder
- 5, 8 cijfers staan voor: taken op gemiddeld niveau
- 13, 20 nummer staat voor: taken op groot niveau
- 100 nummer staat voor: zeer grote taken
- Infinity staat voor: De taak is enorm, moet worden opgesplitst in meerdere taken en gebruikersverhalen
- Break staat voor: een pauze nodig
- Vertegenwoordigt: Twijfels
Scrum Master
Hij is de persoon die het team helpt om het agile proces te volgen en te voldoen aan de projecteisen. Hij zal de vergadering leiden wanneer dat nodig is en helpt bij het bespreken van de behoefte van het project.
Scrum master fungeert als een brug naar alle teamleden om de uitdagingen en afhankelijkheden die het project tegenkomt op te lossen. Hij zal de voortgang van het project per sprint volgen.
Hij is betrokken bij de stand-up meeting, retrospective meeting, inspectie, review, demo. Hij is degene die de dagelijkse stand up meetings leidt en de teamlid update op zich neemt.
Product eigenaar
Hij is de persoon die het product / project vanuit zakelijk oogpunt aanstuurt en bewaakt. Hij blijft kijken of het product is ontwikkeld volgens de zakelijke vereisten of niet. Hij is degene die prioriteit geeft aan de user stories en de requirements verplaatst van de product backlog naar de sprint backlog. Hij zal de deadlines van het project inschatten.
Hij kijkt altijd naar het product vanuit het standpunt van de gebruiker. De product owner heeft volledige kennis over hoe de applicatie zou moeten werken.
Gebruikersverhaal
Het is een vereiste. Het bevat de set use-cases / vereisten die betrekking hebben op dezelfde module. Hier definiëren we hoe elk onderdeel van een applicatie moet werken en hoe de gebruikersinterface eruit moet zien. De reikwijdte van elke component wordt gedefinieerd in het gebruikersverhaal.
Taken
Teamleden gaan de taak maken voor het gebruikersverhaal dat aan hen is toegewezen. Ze moeten de taak maken op basis van de verschillende taken, zoals ontwikkelingstaak, testtaak, analysetaak gebruikersverhaal. De duur van de taak moet afhangen van de gebruikersverhalen.
Als tester zullen we de taken creëren voor analyse van gebruikersverhalen, voorbereiding, uitvoering van testcases, uitvoering, regressietesten en nog veel meer.
Achterstand in verzorging
Dit onderdeel betreft het beheren van backlog-items. De activiteiten die we hier doen, zijn prioriteit geven aan de backlog-items, opsplitsen in kleinere items, de taak creëren en de acceptatiecriteria bijwerken.
Iteratie
Iteratie is het ontwikkelen en testen van enkele modules / onderdelen van de softwareapplicatie. Elke iteratie bestaat uit de analyse van het product, het ontwerp van het product, de ontwikkeling van het product, het testen van het product en de demo van het product.
Belangrijkste factoren om Agile-methodologie toe te passen
- Observatie: Beoordeel het werk en het product regelmatig en plan de activiteiten dienovereenkomstig. Het productontwikkelingsproces en de productkwaliteit zullen dus goed zijn.
- Welkom Veranderingen: Veranderingen worden heel gemakkelijk afgehandeld. Het heeft niet veel invloed op het product omdat modules van de software afzonderlijk worden ontwikkeld en later worden geïntegreerd. Er zal dus niet opnieuw worden gewerkt als de vereiste in de toekomst wordt gewijzigd.
- Tijdsspanne: We krijgen het tijdsbestek voor elke eenheid van de aanvraag. De schatting zal dus nauwkeurig zijn ten opzichte van de geschatte projecttijd.
- Klanttevredenheid: Klanttevredenheid is meer omdat we gedurende het hele project communiceren met de klant en de aandeelhouder en we zullen een demo geven op elk niveau van productontwikkeling. Hierdoor krijgen we de klant / opdrachtgever regelmatig feedback over de bedrijfsstromen en de voortgang van het werk. Zo wordt het werk en de ontwikkeling van de applicatie dienovereenkomstig gedaan.
Soorten Agile-methodologieën
- Agile Scrum-methodologie
- Lean softwareontwikkeling
- Kanban
- Extreme programmering (XP)
- Kristal
- Dynamische systeemontwikkelingsmethode (DSDM)
- Feature Driven Development (FDD)
Agile voordelen:
- Een van de grootste voordelen van het agile-model is zijn groot aanpassingsvermogen Aanpassingsvermogen betekent ‘reageren op verandering’. Agile is zeer flexibel in het omgaan met de veranderingen in klantbehoeften en prioriteiten.
- Staat toe de algehele productachterstand voortdurend verfijnen en opnieuw prioriteren zonder de huidige iteratie waarin het team zich richt op het leveren van de MVP, te beïnvloeden. De wijzigingen kunnen worden gepland voor de volgende iteratie, waardoor de mogelijkheid wordt geboden om de wijzigingen binnen enkele weken door te voeren.
- Agile-methodologie biedt een grote mate van betrokkenheid van belanghebbenden De opdrachtgever en het projectteam ontmoeten elkaar voor, tijdens en na elke sprint. Omdat de klant constant betrokken is tijdens het project, zijn er meer mogelijkheden voor het team om de visie van de klant duidelijk te begrijpen.
- De werkende software wordt vroeg en frequent geleverd. Dit verhoogt de het vertrouwen van belanghebbenden in het team en moedigt het team aan blijf zeer toegewijd naar het project.
- Dit model geeft transparantie Zowel de stakeholders als het team weten goed wat er gebeurt. De opdrachtgever kan het onderhanden werk zien.
- Er is ruimte voor sprints van één tot vier weken met een vast schema vroege en voorspelbare levering Nieuwe functies worden snel en vaak in een tijdsbestek vrijgegeven.
- Agile is klantgericht Het levert niet alleen de functionaliteit, maar richt zich ook op het leveren van de functie die van enige waarde is voor de gebruiker. Elk gebruikersverhaal heeft een bedrijfsgericht acceptatiecriterium.
- Waardevol klanten feedback wordt gewonnen vroeg in het project en wijzigingen aan het product kunnen indien nodig worden aangebracht.
- De focus ligt op bedrijfswaarde Het levert eerst wat voor de klant het belangrijkst is.
- Verbetert de kwaliteit van te leveren producten In tegenstelling tot waterval, wordt er continu en regelmatig getest in een Agile-project en dat helpt op zijn beurt bij het vroegtijdig opsporen en oplossen van problemen.
- Behendig ondersteunt TDD (Test Driven Development) aanpak wat voldoende tijd biedt om unit-tests te maken voor de functies die via MVP zullen worden vrijgegeven.
- Ook door te produceren frequente builds kan elke afwijking met de eisen van de klant ook vroegtijdig worden opgespoord en verholpen.
- Zoals we krijgen onmiddellijke gebruikersfeedback na elke MVP-release, de het risico op mislukking van een project is laag, als je op een Agile manier werkt.
- Behendig bevordert teamwork Er is een geweldige samenwerking, interactie, harmonie en enthousiasme onder de Agile teamleden.
- De kosten- en planningsschattingen van elke sprint worden voorafgaand aan de start van de sprint aan de klant meegedeeld. Dit verbetert de besluitvorming aangezien de gebruiker de kosten van elke functie kan begrijpen en dienovereenkomstig prioriteiten kan stellen.
- In een agile project is er ruimte voor continue verbetering Lessen uit de afgelopen sprints kunnen worden toegepast in de komende sprints.
- Het richt zich in elke fase van het project op de specifieke taak.
Agile nadelen:
- Het wordt vaak gezien dat Agile-teams een neiging om documentatie te verwaarlozen Dit komt omdat het Agile-manifest meer gericht is op werkende software dan op de uitgebreide documentatie. De teams moeten echter het juiste evenwicht bewaren tussen de code en documentatie.
- Omdat het een hoge mate van klantbetrokkenheid vereist, kan het soms problematisch zijn voor klanten die niet veel tijd en interesse hebben om aan het project deel te nemen.
- Het werkt niet goed als het team geen inzet en toewijding heeft. Waterval vereist betrokkenheid, maar Agile vereist inzet.
- Als de oorspronkelijke architectuur en het ontwerp zwak zijn, dan frequente refactoring Is benodigd.
- In vergelijking met de waterval is Agile dat wel moeilijk te oefenen De teamleden moeten goed thuis zijn in Agile-concepten. Het vereist veel discipline en toewijding om Agile te beoefenen.
- Vanwege herprioritering is dat zo minder voorspelbaar dan wat er aan het einde van de sprint wordt opgeleverd.
- Vanwege time-boxed levering en frequente herprioritering, bestaat de kans dat een paar functies niet worden geleverd in de toegewezen tijdlijn. Dit kan leiden tot extra sprints en extra kosten Dit kan ook leiden tot het probleem van vage tijdlijnen
- Gebrek aan structuur in vergelijking met de waterval, het vereist zelfgedisciplineerde, zeer bekwame en vakoverschrijdende teams Zonder dit kan het project echt een uitdaging zijn.
- Beschikbaarheid is minder een blauwdruk van het uiteindelijke resultaat
- Soms het externe stakeholder kan het niet laten om de Agile-aanpak te volgen In dergelijke gevallen is training en opleiding over Agile vereist voor een breed publiek.
- Alle teamleden moeten worden betrokken bij het beheer van het project.
- Documentatie is minder gedetailleerd.
Verschil tussen Agile Vs Waterfall-modellen
De verschillen tussen de Waterfall en Agile Software Development Life Cycles staan hieronder vermeld.
Waterval | Behendig |
---|---|
Het proces wordt behandeld als één enkel project dat verder is onderverdeeld in verschillende fasen. | Het proces is onderverdeeld in meerdere projecten en elk project kent een iteratie van verschillende fasen. |
Watervalmethodologie is een model waarin elke fase van de levenscyclus van het product in een reeks plaatsvindt. De voortgang van het project stroomt geleidelijk naar beneden door deze fasen als een waterval. | Agile-methodologie is een model dat een iteratieve benadering volgt. |
Dit model gelooft in een eenmalige massale levering. Het product wordt aan het einde van de SDLC geleverd. | Dit model gelooft in meerdere kleine hoeveelheden levering op bepaalde tijdsintervallen. Aan het einde van elke sprint wordt een MVP (Minimum Viable Product) afgeleverd. |
Het is een traditionele en ouderwetse benadering. | Het is een nieuwe en moderne benadering. |
Een enkele cyclus en een enkele release. | Herhaaldelijk aantal iteraties en meerdere releases. |
Het verdeelt de levenscyclus van softwareontwikkeling in verschillende fasen. | Het verdeelt de levenscyclus van softwareontwikkeling in sprints. |
![]() | ![]() |
Gestructureerd en strak model. Het is moeilijk om de beschrijving, specificatie en ontwerp van het project te wijzigen. | Dit model staat bekend om zijn flexibiliteit. We kunnen op elk moment wijzigingen aanbrengen in elke projectfase. |
Planningsschaal op lange termijn. | Planningsschaal op korte termijn. |
Er bestaat een grote afstand tussen de klant en de ontwikkelaar. | Er bestaat een korte afstand tussen de klant en de ontwikkelaar. |
Lange tijd tussen specificatie en implementatie. De bedrijfsanalist verzamelt en bereidt de vereiste voor voordat het project begint. | Korte tijd tussen specificatie en implementatie. De product owner bereidt in elke sprint de requirements en updates voor aan het team. |
Het duurt lang om problemen te ontdekken. | Problemen worden snel ontdekt. |
Hoog risico op projectplanning. | Laag risico op projectplanning. |
Minder snel kunnen reageren op veranderingen. | Hoog vermogen om snel op veranderingen te reageren. |
Testfase vindt pas plaats na voltooiing van de ontwikkelingsfase. | Het testen wordt over het algemeen parallel met de ontwikkeling uitgevoerd om de kwaliteit continu te waarborgen. |
De klant is alleen betrokken bij de fase van het verzamelen van vereisten en daarna is er geen betrokkenheid van de klant. Hij komt pas in beeld op het moment van levering van het product. | De klant is gedurende het hele project betrokken en er wordt van tijd tot tijd feedback van de klant genomen om de klanttevredenheid te garanderen. |
Geschikt voor projecten met duidelijk gedefinieerde eisen en projecten die geen veranderingen verwachten. | Geschikt voor projecten die moeten evolueren en met veranderende eisen. |
Stringent sequentieel proces. | Een zeer collaboratief softwareontwikkelingsproces leidt tot betere teaminspanningen en snelle probleemoplossing. |
Vertoont een projectmentaliteit. | Introduceert een productmentaliteit en is dus meer klantgericht. Eisen en veranderingen maken deel uit van het proces |
Formeel en hiërarchisch. De projectmanager is de beslisser. | Het is informeel. Het hele team is verantwoordelijk voor de besluitvorming. |
Dit model verwacht dat er gedurende het hele project geen wijzigingen in de eisen zullen zijn. | Dit model is gebaseerd op aanpassing en omarmt veranderingen. |
U moet handmatige documenten maken om de status van het werk en de voortgang van het project te verifiëren. | Volgt het Kanban-diagram en het Burn Down-diagram om de voortgang van het project en de werkstatus van het individu te verifiëren. |
We hadden genoeg discussie over de verschillen tussen Agile & Waterfall-methodologieën en de voordelen en uitdagingen van elk. Laten we nu de verschillen onderzoeken tussen agile testen en watervaltesten.
Verschillen tussen Agile testen versus watervaltesten
Vanuit het perspectief van softwaretesten is het belangrijk voor ons om een goed beeld te hebben van hoe Agile testen verschilt van Waterfall testen.
Waterval testen | Agile testen |
---|---|
Testteams en ontwikkelteams worden gescheiden door een duidelijke grens en er is een strikte en formele communicatie tussen hen. | Het testteam en de ontwikkelteams zijn geïntegreerd als één team en er is een vrije communicatiestroom tussen hen. |
Het testen begint na voltooiing van de ontwikkeling en bouwt fasen. | Het testen begint gelijktijdig met de ontwikkelingsfase. |
De planning wordt slechts één keer gedaan vóór de testfase. | Planning wordt gedaan voordat het project start en wordt vaak tijdens het project gedaan. |
Het testplan wordt zelden beoordeeld tijdens het project. | Na elke sprint wordt het testplan herzien. |
Het is een hele uitdaging voor het testteam om eventuele wijzigingen in de vereisten voor te stellen. | Het testteam neemt actief deel aan het proces van het verzamelen van vereisten en het veranderingsproces. |
Voor alle functionaliteiten worden eenmalig testcases gemaakt. | Testcases worden sprint voor sprint gemaakt voor de functionaliteiten die in elke sprint moeten worden vrijgegeven. |
Acceptatietesten worden na de vrijgave eenmalig door de opdrachtgever uitgevoerd. | Acceptatietests kunnen worden uitgevoerd na elke iteratie en vóór de oplevering door een bedrijfsanalist of het testteam. Later wordt het na elke release door de klant gedaan. |
Uitgebreide en uitgebreide testdocumentatie. | Testdocumentatie wordt alleen gedaan voor zover nodig. |
Testschattingen en opdrachten zijn vaak de verantwoordelijkheid van de testmanager. | Testschattingen en opdrachten zijn de gedeelde verantwoordelijkheid van het team en de testingenieurs die betrokken zijn bij het maken van de schattingen en het kiezen van hun taken. |
Regressietesten worden zelden gedaan en het omvat de uitvoering van alle testgevallen. | Regressietesten worden na elke iteratie uitgevoerd en het betreft alleen die testgevallen die vereist zijn. |
Gevolgtrekking
In dit artikel hebben we de exacte verschillen tussen de moderne Agile-aanpak en de traditionele Waterfall-methode van softwareontwikkeling en -testen geleerd met een vergelijkingstabel met de voor- en nadelen van elk model.
Door rekening te houden met alle factoren die in dit artikel worden genoemd, kunnen we het juiste levenscyclusmodel voor softwareontwikkeling selecteren om de softwaretoepassing te ontwikkelen. Het lijdt geen twijfel dat Agile-methodologieën de voorkeur hebben boven het Waterfall-model. 90% van de bedrijven geeft de voorkeur aan en volgt de Agile-workflow om de softwareapplicatie te ontwikkelen.
Agile-methodiek is goed voor allerlei soorten projecten. Zeer weinig bedrijven volgen de watervalmethode. Deze methode is alleen geschikt als de applicatie klein en eenvoudig is en er geen wijzigingen zijn in de vereiste.
In sommige gevallen kiezen we ook voor andere benaderingen genaamd Spiral, V en V, en Prototype, op basis van de behoeften.
Ik hoop dat deze informatie nuttig is om te beslissen welk model het beste voor uw project is. U kunt ook gaan voor de hybride model waarbij de nadelen van elke methode worden verwijderd - hier besproken.
Aanbevolen literatuur
- Casestudy: hoe fouten in waterval en Agile ontwikkelingsprocessen te elimineren met behulp van een hybride model
- Wat is het SDLC-watervalmodel?
- Zephyr Enterprise Test Management Tool Review - Hoe Waterfall Model Assets in Agile Tool te gebruiken
- VersionOne-zelfstudie: All-in-one Agile Project Management Tool Guide
- Jira Portfolio Tutorial: Agile Project Portfolio Management Plug-in voor JIRA (Review)
- TOP 10 beste Agile projectmanagementtools in 2021
- Agile schattingstechnieken: een echte schatting in een agile project
- 4 stappen naar de ontwikkeling van de Agile-testmentaliteit voor een succesvolle overgang naar een Agile-proces