Wat is Scrum
Scrum is een raamwerk voor softwareontwikkeling waarbij de nadruk ligt op het beheersen van het project en in mindere mate op technieken en hulpmiddelen. Scrum is net zoals RUP ook een agile-ontwikkelmethode. Zij het dat Scrum veel minder rollen, processen en artifacts (zoals sjablonen) kent dan RUP. Scrum is in eigen woorden de 'lean and mean' variant van RUP. Dat is waarschijnlijk ook de reden dat Scrum op dit moment veruit de populairste ontwikkelmethodiek is. De 4 basisbeginselen en 12
uitgangspunten van Scrum staan op de pagina agile ontwikkelmethode.
Samenstelling Scrumteam
Net als bij de andere agile ontwikkelmethoden vormt een multidisciplinair team de basis van het ontwikkelproces. Een multidisciplinair en zelfsturend scrumteam, waarbij elk teamlid betrokken is bij het plannen, het verdelen van de taken en het managen van risico's. Scrum beschrijft exact welke rollen in het scrumteam moeten worden opgenomen.
- Product-owner; de product-owner (product eigenaar) is de opdrachtgever / klant. Hij heeft het meeste belang bij het (software)product dat gemaakt wordt. Hij zorgt dat de rekening betaald wordt. Hij / zij beheert ook de product backlog, hij bepaalt wat er moet gebeuren en in welke volgorde. In principe wordt begonnen met het belangrijkste, waar het meeste voordeel mee te behalen is, wat boven aan de product backlog staat.
- Development team; het ontwikkelteam is multidisciplinair samengesteld en is verantwoordelijk voor het afleveren van het (software)product aan het einde van elke sprint. Het team bestaat meestal uit 3 tot 9 personen. Het team organiseert zichzelf. Zij doen de analyse, ontwerp, ontwikkeling, test en documentatie en zorgen dat er aan het eind van de sprint een kant en klaar product is, dat in principe in productie genomen kan worden.
- Scrummaster; de Scrum Master begeleidt / helpt het team door te zorgen dat het juiste scrumproces gevolgd wordt. De Scrummaster is een expert in de Agile processen en coacht het team, de product-owner en de projectorganisatie. Hij moet goed kunnen samenwerken met alle stakeholders die bij het project en het team betrokken zijn. De scrummaster regelt alle vergaderingen. Ook regelt hij de voorzieningen zoals een werkruimte, hardware en software. De Scrummaster staat hiërarchisch op hetzelfde niveau als de teamleden. Dit om openheid van alle teamleden te borgen.
Verder kent Scrum nog een aantal rollen aan de 'zijlijn'. Zoals stakeholders, kwaliteitsmanagers en project- of lijnmanagers. Deze rollen kunnen op sleutelmomenten aansluiten als er bijvoorbeeld belangrijke keuzen gemaakt moeten worden of issues spelen rondom kwaliteit of capaciteit van het Scrumteam. Ze staan aan de zijlijn omdat ze in het voortbrengingsproces zelf een marginale rol spelen omdat de product-owner en het development team al dan niet onder begeleiding van de scrummaster zelf deze beslissingen kunnen en mogen maken.
Werkwijze
Scrum schrijft een vaste werkwijze voor. De basis voor Scrum-systeemontwikkeling is de zogenaamde
sprint. Binnen zo'n sprint wordt door het Scrumteam binnen een vaststaande periode (time box) een deelsysteem opgeleverd. Om een sprint (deelsysteem) op te leveren maakt scrum gebruik van de volgende stappen en technieken:
- Product Backlog / User Stories; de backlog is de werkvoorraad voor het Scrumteam. In de product backlog staan de stukken functionaliteit beschreven die de product-owner wil hebben. Deze gewenste functionaliteiten worden in user stories weergegeven. Een user stories is een korte beschrijving (story) van wat een gebruiker (user) wil. User stories worden gebruikt binnen agile software development als een manier om de requirements te beschrijven.
- Als een gebruiker wil ik mijn klanten kunnen zoeken zowel op voornaam als op achternaam.
- Aan het begin van het programma wordt het document getoond waarmee de gebruiker de laatste keer bezig was.
- Bij het sluiten van het programma wordt de gebruiker gevraagd of hij z'n werk wil opslaan.
De product-owner is eigenaar van de product backlog en bepaalt de prioriteit van de user stories op de backlog. De belangrijkste user stories staan boven aan.
- Sprint Backlog; in de sprint backlog staat wat er in de komende sprint wordt gedaan. De sprint backlog wordt samengesteld uit de bovenste items van de product backlog. Het ontwikkelteam bepaalt wat ze kunnen doen gebaseerd op hun snelheid in de vorige sprints.
Gebruikelijk is dat de items op de sprint backlog geschreven worden op post-its. Er zijn dan drie kolommen, "to do", "in progress", "done". Soms met een vierde kolom "testing". Zodoende is voor iedereen duidelijk hoe het ermee staat.
- Het ontwikkelteam bepaalt zelf wie wat doet, of eigenlijk kiezen de leden zelf wat ze (kunnen en willen) oppakken van de todo-lijst. Dit bevordert dat het team zich ermee verbonden voelt, dat ze zich er voor willen inzetten, dat het hun product wordt.
- Er kunnen na de start geen items meer toegevoegd worden aan de sprint, behalve door het ontwikkelteam zelf. Nadat de sprint klaar is wordt de Product Backlog nog eens tegen het licht gehouden en kunnen prioriteiten en dus de volgorde wijzigen.
- Sprintplanning; aan het begin van de sprint is er een sprint planning overleg. Het team bepaalt hoeveel werk kan worden opgenomen in de betreffende sprint en is verantwoordelijk voor de inschatting van de hoeveelheid werk per user-story. Het ontwikkelteam moet ook bevestigen dat alles duidelijk is. Taken worden dan vervolgens verder binnen het ontwikkelteam verdeeld.
- Daily Scrum; elke dag is er de "Daily scrum" of "Stand-up". Deze vergadering heeft de volgende regels:
- Alle leden van het ontwikkelteam hebben zich voor de vergadering voorbereid.
- De vergadering start precies op tijd, ook als niet iedereen aanwezig is.
- De vergadering is elke dag op precies dezelfde tijd en plaats, meestal 9:00 uur in de projectkamer.
- De vergadering duurt maximaal 15 minuten, korter mag ook. De vergadering wordt staande gehouden: "stand-up", zodat het daardoor al eenvoudig tot 15 minuten wordt beperkt.
- Bezoekers zijn welkom maar normaal gesproken spreken alleen de leden van het ontwikkelteam, de scrummaster en product-owner.
- Normaal gesproken houdt men een rondje waarbij elk teamlid drie vragen beantwoordt: Wat heb je gedaan? Wat ga je doen? Zie je ook problemen/uitdagingen (impediments), heb je hulp nodig, zijn er dingen die voor andere teamleden van belang zijn?
- Burn Down Chart; de burn down chart van de sprint hangt meestal aan de wand in de projectkamer. Op die manier is voor iedereen direct duidelijk hoeveel er nog gedaan moet worden. Doordat het dagelijks wordt bijgewerkt is direct duidelijk hoe het ervoor staat.
Scrum Board; het Scrum Board hangt naast de Burn Down Chart. Het Scrumboard (of Taskboard) is een bord waar alle Sprint Backlog Items op staan vermeld. De taken op het bord zijn verdeeld over 3 kolommen: To Do, In Progress en Done. De belangrijkste taken hangen bovenaan het bord. De Sprint Backlog is daarmee ook gesorteerd op prioriteit. Samen met de Sprint burn-down chart geeft dit bord in één oogopslag inzicht in de huidige status. Het Scrum Board is voor het team de centrale plaats om het resterende werk en de aanpak af te stemmen.
- Definition of done (Acceptatiecriteria); In de "Definition of done" staat wat er is afgesproken over hoe men een product oplevert. Eisen over documentatie (Engelstalig), testen (getest door gebruikers en de afdeling beheer, op welke apparaten/webbrowsers), locatie (op de acceptatieomgeving), etc.
- Increment; het Increment is een lijst van alle gerealiseerde deelsystemen van het uiteindelijke product. Deze lijst wordt in elke sprint, aan het eind van de sprint bijgewerkt. Hierop staan alleen items die voldoen aan de "definition of done". Dit overzicht moet in een vorm zijn die bruikbaar is voor de klant / product-owner. De lijst kan nodig zijn om verdere investeringen in het project te verdedigen en om aan buitenstaanders / klanten / overheid, duidelijk te maken wat men tot nu toe bereikt heeft. Of deze lijst gebruikt en gepubliceerd wordt, ligt aan de producteigenaar.