Scrum Een introductie
Algemene informatie voor medewerkers van SYSQA B.V.
Organisatie Titel Onderwerp
SYSQA B.V. Scrum Een introductie
Pagina Versie Datum
2 van 10 1.2 12-4-2011
Inhoudsopgave 1
INLEIDING ...............................................................................................................................3
2
SCRUM ....................................................................................................................................4
3
FASERING...............................................................................................................................5
4
KENMERKEN ..........................................................................................................................6 4.1
DE SCRUM-MEETING ..........................................................................................................7
5
SCRUM EN ANDERE METHODES .........................................................................................9
6
LITERATUURVERWIJZINGEN .............................................................................................10
Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Scrum Een introductie
Pagina Versie Datum
3 van 10 1.2 12-4-2011
1 Inleiding De traditionele systeemontwikkelmethodes zoals SDM I, SDM II en LAD hebben, zo bleek in de praktijk, een aantal nadelen. Zo wordt de fasering als rigide ervaren, is de doorlooptijd vaak langer dan gewenst, zijn de kosten hoog en is de gebruikersparticipatie te laag. Ook worden riskante activiteiten, zoals de integratie van modules en een load test, pas in een laat stadium uitgevoerd. Als gevolg hiervan zijn er aan het einde van de 20e eeuw een aantal systeemontwikkelmethodes ontstaan die tegemoetkomen aan deze tekortkomingen. De methodes worden gekenmerkt door een hoge gebruikersparticipatie en het incrementeel en iteratief ontwikkelen. Met dit laatste wordt bedoeld dat er meerdere ontwikkelrondes na elkaar plaatsvinden. In plaats van ernaar te streven in één keer het systeem te bouwen worden meerdere versies gemaakt en steeds verbeterd en verfijnd. Deze methodes staan bekend als Iterative and Incremental Development (IID). Verwant aan IID zijn de zogenaamde ‘agile’ methodes, waarbij ‘agile’ staat voor ‘snel en flexibel reagerend op veranderingen’. Deze agile methodes zijn behalve iteratief (en incrementeel) ook gebaseerd op evolutionaire ontwikkelmethodes. Daarnaast speelt flexibiliteit een grote rol, het vermogen om het systeem tijdens de ontwikkeling snel aan te passen aan veranderende eisen. Agile ontwikkelmethodes zijn dus iteratief, evolutionair en flexibel.
Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Scrum Een introductie
Pagina Versie Datum
4 van 10 1.2 12-4-2011
2 Scrum Binnen de groep van agile ontwikkelmethodes (iteratief, evolutionair en flexibel) behoort Scrum, samen met XP (extreme programming), tot de meest toegepaste methodes. Scrum is een agile ontwikkelmethode waarbij de nadruk vooral ligt op: · Zelforganiserende teams van ontwikkelaars; · Dagelijkse afstemming binnen een team; · Het vermijden van vooraf gedefinieerde stappen. Een paar van de meest kenmerkende activiteiten van Scrum zijn: · Een dagelijkse meeting (de Scrum-meeting) met speciale vragen; · Ontwikkeling in iteratiestappen met een lengte van 30 kalenderdagen; · Oplevering van een demoversie voor de externe stakeholders aan het eind van elke iteratiestap. De basis van Scrum ligt in een bekend artikel over de gezamenlijke ‘best practices’ bij tien Japanse innovatieve bedrijven, gepubliceerd door Takeuchi en Nonaka in Harvard Business Review, januari 1986. De naam Scrum komt uit rugby en staat daar voor het aanpassingsgedrag van het team bij het naar voren brengen van de bal over het veld. Anderen hebben de principes uit het artikel van Takeuchi en Nonaka verder uitgewerkt. Hét boek over Scrum is geschreven door Schwaber en Beedle: Agile Software Development with Scrum [2].
Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Scrum Een introductie
Pagina Versie Datum
5 van 10 1.2 12-4-2011
3 Fasering Scrum bestaat uit vier fasen: Planning, Staging, Development en Release. In de fase Planning wordt vastgesteld wat de visie op en de verwachtingen van het te ontwikkelen systeem zijn. Ook wordt het budget voor het project zekergesteld. Er wordt een schatting gemaakt van de hoeveelheid werk; het systeemontwerp en de tussenversies worden in algemene termen gedefinieerd. In de fase Staging worden de eisen aan het systeem gedetailleerder bepaald en wordt er geprioriteerd wat er in de eerste iteratiestap gedaan moet worden. Activiteiten worden gedetailleerder gepland en ook het systeemontwerp en de tussenversies worden verder uitgewerkt. In de fase Development vindt de ontwikkeling van het systeem plaats in iteratiestappen met een lengte van 30 kalenderdagen. Deze stappen worden bij Scrum ‘Sprints’ genoemd. Elke Sprint begint met een planningsbijeenkomst en dagelijks wordt er een teammeeting gehouden. Aan het eind van de iteratiestap wordt er een tussenversie aan de opdrachtgever gedemonstreerd en wordt de Sprint geëvalueerd. In de fase Release wordt een operationeel systeem opgeleverd. Ook in deze fase wordt (pas) de documentatie van het systeem gemaakt. De gebruikers van het systeem worden getraind.
Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Scrum Een introductie
Pagina Versie Datum
6 van 10 1.2 12-4-2011
4 Kenmerken De Scrum-methode kan het best aan de hand van een aantal typische elementen worden geïllustreerd. Fasen Planning en Staging In de fases Planning en Staging kunnen alle stakeholders functionele eisen, gebruiksscenario’s, verbeteringen en gebreken aandragen. Al die zaken worden vastgelegd in een registratie. De registratie wordt door één persoon beheerd en alle verzoeken gaan via diegene. Behalve een lijst van taken voor het uiteindelijke product wordt er ook per release (tussenversie) een takenlijst geregistreerd. In deze fase wordt meer dan voldoende werk gegenereerd voor de eerste iteratiestap van de fase Ontwikkeling. Planning van een iteratiestap Aan het begin van elke Sprint herprioriteren de stakeholders de punten op de takenlijsten voor het eindproduct en de tussenreleases. Aan de hand daarvan maken het ontwikkelteam en de beheerder van het registratiesysteem een detailplanning voor de komende Sprint. Zelfsturende en –organiserende teams Tijdens een Sprint bepaalt het Scrum-team zelf hoe de doelstellingen voor die Sprint worden gehaald. Het team plant zijn eigen werk en lost zijn eigen problemen op. Daartoe is het team gemachtigd, zonder tussenkomst van het management. Scrum-meeting Elke werkdag, op dezelfde plaats en hetzelfde tijdstip, is er een zogenaamde Scrum-meeting van het ontwikkelteam. Deze meeting wordt in meer detail besproken in paragraaf 4.1. Geen toevoegingen tijdens een Sprint Aan de taken die gepland zijn voor een Sprint, kunnen in principe geen werkzaamheden worden toegevoegd. Mocht er in zeldzame gevallen toch per se iets toegevoegd moeten worden, dan dient een andere taak te vervallen. Pas bij het begin van de volgende stap kan eventueel een herprioritering worden gemaakt van de taken voor het uiteindelijke product. Scrum-master Een zogenaamde Scrum-master beschermt het ontwikkelteam tegen nieuwe verzoeken van buiten. Ook zorgt de Scrum-master ervoor dat het team zijn werk kan blijven doen door beslissingen te nemen als daarom wordt gevraagd en door blokkades te verwijderen en benodigde resources te leveren. Beslissingen binnen een uur De Scrum-master neemt zijn beslissingen over blokkades binnen een uur. Blokkades binnen een dag verwijderen Blokkades die ervoor zorgen dat het ontwikkelteam zijn werk niet kan doen, moeten voor de volgende Scrum-meeting uit de weg geruimd zijn.
Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Scrum Een introductie
Pagina Versie Datum
7 van 10 1.2 12-4-2011
Varkens en kippen Tijdens een Scrum-meeting mogen alleen de leden van het team (varkens) iets zeggen. Nietleden (kippen) mogen bij elke meeting aanwezig zijn, maar moeten hun mond houden. De enige uitzondering hierop is dat het management in een Scrum-meeting het belang mag benadrukken van het werk dat het team verricht. Teams van zeven leden Een ontwikkelteam bestaat uit niet meer dan zeven leden. Bij grotere projecten kunnen meerdere teams worden ingezet. Eén kamer (bij voorkeur) Idealiter werkt het hele ontwikkelteam in één kamer, niet in aparte ruimtes. Bij teams met leden die geografisch verspreid werken, kan overleg via de luidspreker van een telefoon of via (video)chats uitkomst bieden. Dagelijkse integratie van modules Elke dag worden de onafhankelijk van elkaar ontwikkelde modules geïntegreerd. Ook wordt er dagelijks een, bij voorkeur geautomatiseerde, regressietest uitgevoerd (om te bekijken of de onveranderde modules nog goed werken). Sprint-evaluatie Aan het eind van elke Sprint vindt er een evaluatie plaats, onder leiding van de Scrummaster. Alle teamleden en stakeholders zijn daarbij. De tussenversie wordt gedemonstreerd en de stakeholders worden geïnformeerd over de stand van zaken. Er kan verder volop door iedereen worden gebrainstormd, maar er worden geen afspraken gemaakt. Dat gebeurt pas bij de detailplanning aan het begin van de volgende Sprint.
4.1 De Scrum-meeting De dagelijkse Scrum-meeting vormt het hart van de Scrum-methode. Elke dag, op dezelfde plaats en hetzelfde tijdstip, gaan de leden het ontwikkelteam in een kring stáán (om de meeting kort te houden) en worden dezelfde, speciale vragen door elk teamlid beantwoord. 1) Wat het je gedaan sinds de vorige Scrum-meeting? 2) Wat ga je doen vóór de volgende Scrum-meeting? 3) Wat zijn de blokkades voor het bereiken van de doelstellingen voor de huidige Sprint? Twee extra vragen zijn soms nuttig: 4) Ontbreken er dingen op de takenlijst voor de huidige Sprint, die daar volgens de eerder gemaakte afspraken wel hadden moeten staan? 5) Heb je iets nieuws geleerd wat relevant is voor de andere teamleden? Overige punten: · De meetings duren gemiddeld 15-20 minuten; · Eventueel aanwezige niet-teamleden staan buiten de kring; · Alle taken en blokkades worden meteen op een whiteboard genoteerd; · Blokkades worden op het whiteboard pas uitgeveegd als ze daadwerkelijk uit de weg zijn geruimd; · Er is een telefoon met luidspreker voor teamleden die elders verkeren; · De Scrum-master bereidt de meetings voor en leidt ze; Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
· · · ·
SYSQA B.V. Scrum Een introductie
Pagina Versie Datum
8 van 10 1.2 12-4-2011
Elke meeting begint op tijd; Varkens praten, kippen zwijgen; Behalve de drie of vijf genoemde vragen wordt er over niets anders gepraat; Mocht er toch iets anders te bespreken zijn, dan gebeurt dit in een meeting meteen na de Scrum-meeting, daarbij is meestal slechts een deel van het team betrokken.
Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Scrum Een introductie
Pagina Versie Datum
9 van 10 1.2 12-4-2011
5 Scrum en andere methodes De Scrum-methode voor softwareontwikkeling biedt een aantal voordelen ten opzichte van andere methodes: · Betrokkenheid – Het ontwikkelteam werkt in elke iteratiestap aan een duidelijk omschreven doel en mag helemaal zelf bepalen hoe dat doel bereikt wordt. De Scrum-master doet er alles aan om ervoor te zorgen dat de teamleden ongestoord hun werk kunnen doen. Dat resulteert samen in een grote betrokkenheid van de teamleden bij het project; · Toewijding – Doordat de Scrum-master faciliterend werkt, kunnen de teamleden zich volledig wijden aan hun taak: het ontwikkelen van software; · Openheid – De takenlijst met werkzaamheden en prioriteiten is openbaar en in de dagelijkse Scrum-meetingen krijgt iedereen precies te horen waar de andere teamleden mee bezig zijn en hoe het staat met de voortgang van het project; · Respect – De individuele leden van het ontwikkelteam worden gerespecteerd om hun sterke en minder sterke punten. Problemen waar iemand tegenaan loopt worden binnen het team opgelost, zonder opgelegde inmenging van buitenaf. Eventueel heeft een team de mogelijkheid een specialist in te huren wanneer bepaalde expertise binnen het team geheel ontbreekt; · Moed – Het management heeft de moed om te vertrouwen op een groep individuen die helemaal zelf hun gang gaan. Het ontwikkelteam heeft de moed om zelfsturend en –organiserend te werken. De Scrum-methode kan eventueel gecombineerd worden met (elementen uit) andere agile ontwikkelmethodes zoals Evo, UP en XP. Wel is bijvoorbeeld de lengte van een iteratiestap bij Scrum (30 kalenderdagen) te lang voor Evo en XP. Het vermijden van vooraf gedefinieerde processen en voorspelbare stappen kan strijdig zijn met de UP-methode.
Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Scrum Een introductie
Pagina Versie Datum
10 van 10 1.2 12-4-2011
6 Literatuurverwijzingen Larman, C. 2004. ‘Agile and Iterative Development. A Manager’s Guide’. Addison-Wesley. Schwaber, K., en Beedle, M. 2002. ‘Agile Software Development with Scrum’. Prentice-Hall. Takeuchi,. H., en Nonaka, I. 1986. ‘The New New Product Development Game’. Harvard Business Review, januari 1986.
Almere © 2006
Quality Assurance in ICT