Ik de praktijk hangt het enorm af van het soort project of je voor de scrum manier of de waterval manier gaat.
Niet alle projecten zijn helemaal geschikt voor scrum en niet alle projecten zijn helemaal geschikt voor waterval.
Het grote voordeel aan scrum is dat je een enorme betrokkenheid hebt, door het hele proces heen, van de klant. De klant kan op ieder gewenst moment bijsturen (c.q. andere criteria doorgeven), die dan alsnog meegenomen kunnen worden.
Bij Waterval staat van tevoren (voor de bouw), eigenlijk al vast wat je gaat maken. Omdat projecten vaak een lange looptijd hebben (b.v. een applicatie maken kan maanden, zelfs jaren duren), is dit ivm voortschrijdend inzicht, niet altijd even handig.
Neem b.v. een afdeling marketing die een wijziging wil op een website.
Dat is nou typisch iets wat heel goed op de scrum manier kan gebeuren. De wijziging wordt gemaakt, de klant bekijkt het, kan het finetunen, uitbreiden, uitkleden (wat hij/zij maar wil) enz enz.
Hiervoor zou waterval veel te stroperig en langdradig zijn.
Maar neem nou een bestandsuitwisseling met b.v. een overheidsdienst.
Dat is vaak iets wat al aan de kant van de overheidsdienst helemaal vaststaat en waar bedrijven zich dan b.v. op aan moeten sluiten.
Omdat alles feitelijk al vaststaat (mapping is gedaan, analyse is gedaan), kan een klant niet zomaar zeggen; ik wil dat veldje niet in de XML, dus de klant staat van dit soort projecten een stuk verder weg.
In deze gevallen kan het handiger/efficienter zijn om eea via waterval op te pakken (kostentechnisch, want bij scrum staat er van begin tot eind een heel team klaar van ontwikkelaars, testers, Functioneel ontwerpers, klant, etc, terwijl het bij de waterval methode steeds van schutting naar schutting gegooid wordt, dus tester hoeft pas ingezet te worden als ontwikkelaar klaar is, etc.
Wat jou vraag betreft over leveren:
Bij scrum maak je gebruik van kleine, overzichtelijke userstories. Dus: een klantvraag wordt opgeknipt in zo klein mogelijke eenheden die los ontwikkeld kunnen worden (en waar de klant ook nog iets mee kan).
Aan het begin van een ontwikkelperiode (sprint), komt het hele team bij elkaar en worden de userstories besproken en ingeschat.
Die inschatting wordt tegenover de userstories gezet en er wordt simpelweg ergens een streep getrokken (dit kunnen we volgens onze inschatting binnen deze sprint afkrijgen, de rest komt in de volgende sprint).
In feite is iedere wijziging die de klant aangeeft, een nieuwe userstory.
Zo kan het zijn dat userstory 1 is: ik wil wielen met spaken, waarna de klant zich bedenkt en dan als userstory 2 verzint dat ie toch sterwielen wil.
Dat kan natuurlijk, maar dan wordt OF userstory 1 eerst gebouwd en daarna herbouwd naar userstory 2, OF userstory 1 vervalt, userstory 2 wordt door het team ingeschat en opnieuw geprioriteerd en dan past het wel/niet in de sprint (of er wordt binnen de sprint iets verschoven, waardoor een andere userstory met lagere prio naar de volgende sprint gaat).
De kwaliteitseisen worden bij de userstory ingeschat en moet door de professionals (b.v. ontwikkelaars) in de gaten gehouden worden. Als b.v. een userstory inhoudt dat er een stuk software herschreven moet worden om het totaal aan de ontwikkelstandaarden te laten voldoen, dan hoort dat simpelweg bij die userstory en bij de inschatting. Als dat niet gebeurd, dan is de professional gewoonweg niet goed bezig.
De kwaliteit zou dus, met een goed team, zeker gegarandeerd moeten zijn.