Organisatie SYSQA B.V. Pagina 1 van 10 Scrum Een introductie Almere 1999 Proud of it Pagina 1 van 10
Organisatie SYSQA B.V. Pagina 2 van 10 Inhoudsopgave 1 Inleiding... 3 2 Scrum... 4 3 Scrum rollen... 5 3.1 Product Owner... 5 3.2 Scrum Master... 5 3.3 Het Development Team... 5 4 Processen in Scrum... 6 4.1 De Sprint... 6 4.2 Sprint Planning... 6 4.3 Daily Scrum... 6 4.4 Sprint Review... 6 4.5 Sprint Retrospective... 6 4.6 Backlog Refinement... 7 5 Producten... 8 5.1 Product Backlog... 8 5.2 Sprint Backlog... 8 5.3 Increment... 8 5.4 Burndown Chart... 8 5.5 Definition of Done... 9 6. Literatuurverwijzingen...10 Almere 1999 Proud of it Pagina 2 van 10
Organisatie SYSQA B.V. Pagina 3 van 10 1 Inleiding Traditionele (waterval)systeemontwikkelmethoden zoals LAD/SDM hebben in de praktijk een aantal nadelen. Ten eerste wordt de fasering als inflexibel ervaren en is het moeilijk om de doorlooptijd en de kosten in te schatten. Daarbij is de doorlooptijd vaak lang, de kosten hoog en de gebruikersparticipatie laag. Tevens vindt het testen pas in één van de laatste fasen plaats, waardoor fouten pas in een laat stadium gevonden kunnen worden. Als antwoord op deze nadelen is midden jaren negentig een nieuwe manier van ontwikkelen ontstaan: Agile. Agile betekent behendig of lenig en staat voor het verkleinen van risico s door software te ontwikkelen in korte, overzichtelijke perioden (iteraties). Op deze manier kan worden ingespeeld op veranderingen in de requirements die tijdens het project ontstaan. Naast iteratief is de Agile-methode ook incrementeel en gebaseerd op evolutionaire ontwikkelmethoden. Dit betekent dat na iedere iteratie een zelfstandig en bruikbaar product of productmodule wordt opgeleverd en dat per iteratie het gehele ontwikkeltraject wordt doorlopen. Binnen Agile-methoden is Scrum één van de meeste gebruikte methoden. Scrum is een term uit de rugby-sport en staat voor het aanpassingsgedrag van het team bij het naar voren brengen van de bal over het veld. De term werd voor het eerst gebruikt door de Japanse onderzoekers Nonaka en Takeuchi en vervolgens hebben diverse andere onderzoekers de principes van Scrum verder uitgewerkt. Almere 1999 Proud of it Pagina 3 van 10
Organisatie SYSQA B.V. Pagina 4 van 10 2 Scrum Scrum is een raamwerk waarbinnen verschillende processen en technieken worden ingezet om complexe productontwikkeling op een eenvoudige manier te managen. Het raamwerk omvat verschillende rollen, meetings en producten. Een aantal belangrijke kenmerken van Scrum zijn: - Zelfsturende teams; - Dagelijkse afstemming binnen een team; - Snelle terugkoppeling van de klant; - Business eisen en wensen worden ontwikkeld op basis van hun waarde. De tijdlijn van het Scrum proces is in kaart gebracht in figuur 1. Figuur 1: het Scrum proces Kort samengevat komt het erop neer dat bij Scrum de business requirements, zoals vastgelegd in de productvisie, worden uitgewerkt naar een lijst van productfunctionaliteiten en eigenschappen (Product B acklog). Items van deze Product Backlog met de hoogste prioriteit worden door het Scrum team vervolgens ontwikkelt gedurende een Sprint. Een Sprint heeft een tijdsbestek van twee tot maximaal vier weken. Binnen een Sprint wordt het product of productmodule ontworpen, gecodeerd en getest. In de volgende hoofdstukken gaan we verder in op de rollen binnen het Scrum Team, de verschillende processen binnen Scrum en de producten die hierbij ontstaan. Almere 1999 Proud of it Pagina 4 van 10
Organisatie SYSQA B.V. Pagina 5 van 10 3 Scrum rollen Er zijn drie rollen te onderscheiden binnen Scrum: de Product Owner, de Scrum Master en het Development Team. Elk Scrum Team bestaat uit een Scrum Master en het Development Team en is zelfsturend en multidisciplinair. Dit betekent dat de leden van het team zelf kiezen hoe zij het beste hun werk uitvoeren, dat zij hun eigen problemen oplossen en dat de leden samen alle competenties bezitten die nodig zijn om het werk goed uit te voeren. 3.1 Product Owner De Product Owner-rol wordt ingevuld door één persoon (mogelijk full-time of part-time) en is gericht op de business kant van het project. Hij is verantwoordelijk voor het maximaliseren van de businesswaarde van het product en daarmee de prioritering van de werkzaamheden van het Development Team. Hiervoor heeft de Product Owner het mandaat gekregen van de business. Tevens is hij de eigenaar en verantwoordelijke van de Product Backlog. De Product Owner is de voice of the customer en is verantwoordelijk voor de vertaling van de wensen en eisen van de klant naar items op de Product Backlog (Zie ook 5.1 Product Backlog). Deze Product Backlog dient hij zichtbaar, transparant en duidelijk te maken en houden voor iedereen. Tevens is hij verantwoordelijk voor het ordenen van de items en maakt hij de beslissing met betrekking tot de product release. Op deze manier bepaalt de Product Owner wat het Development Team doet, maar niet op welke manier en in welk tijdsbestek. 3.2 Scrum Master De Scrum Master-rol wordt door één persoon per team ingevuld en is verantwoordelijk voor de implementatie, toepassing en bewaking van het Scrum proces. De Scrum Master zorgt ervoor dat het team zijn werk kan blijven doen door obstakels weg te nemen. Hij beschermt het team tegen nieuwe verzoeken van buiten niet in de laatste plaats van de Product Owner en zorgt er ook voor dat het team intern goed functioneert. Daarnaast is de Scrum Master de ambassadeur van Scrum binnen de organisatie en is hij verantwoordelijk voor het uitleggen van het Scrum proces en het zichtbaar maken van de meerwaarde van Scrum. 3.3 Het Development Team Het Development Team bestaan uit de personen die het product volgens de eisen en wensen en de Definition of Done op moeten leveren. Een team bestaat uit drie tot negen personen die full-time (aanbevolen) werken aan het project. Minder dan drie leden maakt dat de interactie zeer laag is en dat er een gebrek aan specifieke vaardigheden kan optreden. Meer dan negen leden vereist teveel coördinatie. Het team is zelfsturend en multidisciplinair. Ieder teamlid is Developer, wat betekent dat de verschillende competenties van de leden het belangrijkste zijn en dat het gehele team verantwoordelijk is voor alle onderdelen van het product en de bijbehorende activiteiten. Almere 1999 Proud of it Pagina 5 van 10
Organisatie SYSQA B.V. Pagina 6 van 10 4 Processen in Scrum Binnen Scrum zijn vaste processtappen voorgeschreven om zo regelmaat te creëren. Elke processtap is daarnaast ook nog time-boxed. 4.1 De Sprint De Sprint is het hart van het Scrum proces. Een Scrum project bestaat uit één of meerdere cycli waarin delen van het product worden opgeleverd. Een Sprint is een cyclus met een timebox van maximaal 4 weken waarbinnen een bruikbaar en potentieel leverbaar product wordt gecreëerd (increment). Sprints bestaan uit verschillende gebeurtenissen: Sprint Planning, Daily Scrum, Sprint Review en Sprint Retrospective. 4.2 Sprint Planning Tijdens de Sprint Planning wordt bepaald hoe het doel van de eerstvolgende Sprint wordt gerealiseerd en wordt duidelijk gemaakt wat team in de Sprint allemaal gaat uitvoeren. De teamleden selecteren tijdens deze gebeurtenis items uit de Product Backlog die zij tijdens de aankomende Sprint gaan afwerken en op welke manier zij dit gaan doen. Hierbij geldt de afspraak dat die items worden geselecteerd die de hoogste prioriteit hebben. Het team doet dit in samenspraak met de Product Owner. Deze selectie vormt op zijn beurt de Sprint Backlog (zie 5.2 Sprint Backlog). De timebox voor de Sprint Planning is 4 uur (op een Sprint van vier weken). 4.3 Daily Scrum De dagelijkse Scrum-meeting betekent dat elke dag, op dezelfde plaats en hetzelfde tijdstip, het Development Team bij elkaar staan (o m de meeting kort te houden) waarbij dezelfde vragen door elk teamlid worden beantwoord: - Wat heb je gedaan sinds de vorige Scrum-meeting? - Wat ga je doen vóór de volgende Scrum-meeting? - Tegen welke problemen loop je aan die je voortgang belemmeren? De timebox voor de Daily Scrum is 15 minuten. De Daily Scrum wordt voorbereid door de Scrum Master en deze zorgt er ook voor dat de bijeenkomst daadwerkelijk plaatsvindt. Het Development Team zelf zijn echter verantwoordelijk voor het uitvoeren van de Daily Scrum. Tijdens de Daily Scrum-meeting wordt tevens de voortgang van de Sprint getoetst door de Scrum Master (zie 5.3 Burndown Chart). 4.4 Sprint Review Elke Sprint wordt afgesloten met een Sprint Review. Gedurende de Review bekijken het Scrum Team en de belanghebbenden samen wat er bereikt is gedurende de afgelopen Sprint. In de praktijk neemt dit veelal de vorm aan van een demo van het opgeleverde increment. Tevens identificeert de Product Owner tijdens deze gebeurtenis welke Product Backlog items klaar zijn (voldoen aan de Definition of Done ). De timebox voor de Sprint Review is 4 uur (op een Sprint van vier weken). 4.5 Sprint Retrospective De Sprint Retrospective vindt plaats na de Sprint Review en voor de volgende Sprit Planning. Het doel van deze meeting is om te inspecteren hoe de afgelopen Sprint is gegaan in relatie tot de mensen, processen en tools. Welke dingen gingen goed en waar liggen Almere 1999 Proud of it Pagina 6 van 10
Organisatie SYSQA B.V. Pagina 7 van 10 potentiële verbetermogelijkheden? Aan het einde van de meeting is er een plan gecreëerd om de verbeteringen voor de manier waarop het Scrum Team zijn werk doet te implementeren. De timebox voor de Sprint Retrospective is 3 uur (op een Sprint van vier weken). 4.6 Backlog Refinement De Backlog Refinement is een meeting waar het team samen met de Product Owner die items op de Product Backlog bespreken die in de eerstvolgende sprint moeten worden opgepakt door het team. Het doel van de meeting is om te bepalen of alle requirements helder genoeg zijn en daarmee realiseerbaar. Indien dit niet het geval is, geeft dit de Product Owner de gelegenheid om de requirements nog te verduidelijken voor de volgende Sprint Planning begint. De Backlog Refinement vindt dan ook meestal halverwege een Sprint plaats, om de requirements voor de aankomende Sprint reeds te bespreken. De timebox voor de Backlog Refinement is 4 uur (op een Sprint van vier weken). Almere 1999 Proud of it Pagina 7 van 10
Organisatie SYSQA B.V. Pagina 8 van 10 5 Producten Bij het uitvoeren van het werk via Scrum ontstaan verschillende vaststaande producten, die een hoge mate van transparantie en mogelijkheid bieden voor het inspecteren en aanpassen van het Scrum proces. 5.1 Product Backlog De Product Backlog is een geordende lijst met alle gewenste functionaliteiten van het product. Deze lijst wordt onder verantwoordelijkheid van de Product Owner opgesteld en bevat vaak requirements in de vorm van user stories, maar andere requirementsvormen kunnen hier ook in worden opgenomen. De Product Owner is verantwoordelijk voor de inhoud, beschikbaarheid en ordening van de Product Backlog. 5.2 Sprint Backlog De Sprint Backlog is de verzameling van Product Backlog items die zijn geselecteerd voor een Sprint (tijdens de Sprint Planning). Het is een verzameling van de functionaliteiten die aan het einde van de Sprint opgeleverd gaan worden (increment). Tevens omvat de Sprint Backlog het doel van de Sprint en een gedetailleerd plan voor hoe de incrementen gaan voldoen aan de Definition of Done en hoe het doel van de Sprint behaald gaat worden. Dit gedetailleerde plan ontstaat door de Backlog items te breken in kleinere items. Zodra items van de Product Backlog naar de Sprint Backlog zijn overgedragen, mogen deze items niet meer gewijzigd worden. De taken binnen de Sprint Backlog die de Product Backlog items realiseren mogen echter wel gedurende de Sprint wijzigen, zolang het item uiteindelijk maar wordt opgeleverd volgens de Definition of Done. 5.3 Increment Een increment is een opsomming van alle Product Backlog items die voltooid moeten zijn aan het einde van een Sprint. Een increment moet voldoen aan de Definition of Done en moet leverbaar zijn. 5.4 Burndown Chart De Burndown Chart is een manier om de voortgang van het project, of een enkele Sprint, te visualiseren. De Product Owner is verantwoordelijk voor het visualiseren van de voortgang van het project en het Development Team voor het visualiseren van de voortgang van de Sprint. De Scrum Master faciliteert in beide situaties. In een Burndown Chart wordt de hoeveelheid werk dat nog gedaan moet worden vergeleken met het werk dat al gedaan is. Hieruit kan een voorspelling ontstaan voor wanneer het project of de Sprint opgeleverd kan worden en of alles op schema verloopt. Figuur 2: Voorbeeld van een Burndown Chart. Almere 1999 Proud of it Pagina 8 van 10
Organisatie SYSQA B.V. Pagina 9 van 10 De verticale as laat de hoeveelheid werk dat nog gedaan moet worden zien en op de horizontale as wordt de hoeveelheid tijd aangegeven. 5.5 Definition of Done Het is belangrijk dat iedereen in het Scrum Team hetzelfde in gedachten heeft bij wanneer iets klaar is. Hiervoor wordt de Definition of Done opgesteld aan het begin van het project. Iets is vervolgens niet klaar, voordat het volledig aan de definitie voldoet. In de Definition of Done staan bijvoorbeeld afspraken over het reviewen van elkaars werk, het voldoen aan bepaalde kwaliteitseisen en het opleveren van bepaalde documentatie. Almere 1999 Proud of it Pagina 9 van 10
Organisatie SYSQA B.V. Pagina 10 van 10 6. Literatuurverwijzingen Rad, N.K. & Turley, F. (2013). The Scrum Master Training Manual. A Guide to Passing the Professional Scrum Master (PSM) Exam. Schwaber, K. & Sutherland, J. (2013). The Definitive Guide to Scrum: The Rules of the Game. Verkregen op 19-01-2015 via scrum.org Triodor Software. Scrum. ICT-projecten op tijd en binnen budget!. Verkregen op 20-01-2015 via http://www.triodor.nl/default.aspx?id=21834 Almere 1999 Proud of it Pagina 10 van 10