Scrum uitleg met de scrum basics
Leestijd: ongeveer 9 min
Software is de laatste decennia sterk veranderd. (Dat spreekt voor zich, toch?) En wat nog belangrijker is, het blijft veranderen. Het ontwikkelingsproces van software verandert natuurlijk ook.
Dat gezegd hebbende, is het niet duurzaam om voortdurend nieuwe softwareontwikkelingsprocessen uit te vinden. Zou het niet het beste zijn om een ontwikkelingsproces te creëren dat flexibel genoeg is om in te spelen op de vooruitgang en veranderingen op het gebied van softwareontwikkeling? Hier doet agile softwareontwikkeling zijn intrede.
Agile software-ontwikkeling is een iteratieve, aanpasbare benadering van software-ontwikkeling. In deze post over de scrum basics nemen we een van de meest populaire agile-frameworks onder de loep: de scrummethode.
Scrum uitleg: wat is scrum?
De scrum-methode (ook wel scrumframework genoemd) is een agile-framework voor softwareontwikkeling.
Dus wat betekent dat precies?
Scrum werkwijze uitgelegd
Traditionele software-ontwikkelingsprocessen verlopen lineair: eerst plannen, dan ontwikkelen, dan testen, enzovoort. Agile softwareontwikkeling, daarentegen, gaat uit van een iteratieve benadering. Projecten worden opgedeeld in korte stukken die sprints worden genoemd. (Een sprint duurt meestal tussen de twee weken en een maand).
Met elke sprint voegt het ontwikkelingsteam functies toe en verbetert ze, om zo geleidelijk het best mogelijke product af te leveren. Hierbij wordt er veel getest en ontwikkeld, en vaak overlappen ze elkaar. (Wil je meer lezen over agile softwareontwikkeling? We hebben een post gewijd aan dit onderwerp!)
Er zijn een aantal frameworks die onder de agile paraplu vallen — scrum, zoals hierboven al genoemd, is een van die frameworks.
Wat betekent scrum?
De scrum-methode wordt gekenmerkt door een nadruk op teamwork en samenwerking. De naam scrum is ontleend aan scrums in de rugbysport, een onderdeel van het spel dat een gecoördineerde teaminspanning vereist. Tijdens elke sprint komen scrumteams dagelijks bijeen om hun voortgang bij te houden, hindernissen te identificeren en aan te pakken, en het project op koers te houden. (Later meer over de verschillende soorten scrum meetings!)
Scrum uitleg: de belangrijkste uitgangspunten van de scrum methode
Het scrumframework is gebaseerd op zes basisprincipes — elk aspect van de scrummethode, van dagelijkse sprintvergaderingen tot scrumartefacten, geeft uitdrukking aan deze principes. Laten we daar dus eens op ingaan! De zes basisprincipes van scrum zijn:
1. Controle over empirische processen: met zijn nadruk op transparantie, aanpassing en regelmatige evaluatie helpt de scrummethode ontwikkelingsteams hun product in elk stadium van het proces te testen en te verbeteren.
2. Zelforganisatie: om het scrumframework succesvol te gebruiken, moet elk lid van het team volledig achter het proces staan. Dit vereist een grote mate van zelfstandigheid en zelforganisatie.
3. Samenwerking: om het best mogelijke product te leveren, moet een softwareontwikkelingsteam samenwerken. De teams delen tijdens elke cyclus alle verantwoordelijkheid en aansprakelijkheid. Zoals men zegt: samen slagen, samen falen.
4. Prioritering op basis van waarde: een van de belangrijkste kenmerken van scrum is de flexibiliteit. Om zich aan te passen aan en in te spelen op nieuwe eisen en wensen voor het project, evalueren en herprioriteren scrumteams voortdurend elke taak die ze moeten volbrengen.
5. Tijdsindeling: in de scrummethode heeft elk onderdeel van een sprint een duidelijk gedefinieerde tijdlijn. De sprint zelf duurt twee weken, maar ook de daily standup meetings werken volgens strikt aangehouden tijdlijnen.
6. Iteratieve ontwikkeling: omdat scrum een agile-framework is, worden producten iteratief gebouwd. Dit zorgt voor voortdurende verbetering, flexibiliteit, en uiteindelijk een product van hoge kwaliteit.
Wie maakt deel uit van een scrumteam?
We gebruiken heel de tijd de term 'scrumteam', maar laten we eens kijken wat het eigenlijk betekent. Aan de ene kant spreekt het voor zich: een scrumteam is gewoon een software-ontwikkelingsteam dat de scrum-methode gebruikt. Maar er is nog iets meer aan de hand.
Om elke sprint vlot te laten verlopen, schrijft de scrummethode drie posities voor — vaak scrumrollen genoemd — die elk scrumteam zou moeten bevatten: product owner, ontwikkelingsteam en scrummaster. In het volgende deel zetten we elke rol en hun verantwoordelijkheden voor je op een rijtje.
Product owner
Om het best mogelijke product af te leveren, moet een ontwikkelingsteam goed op de hoogte zijn van de behoeften en verwachtingen van de klant. Er moet sprake zijn van open communicatie tussen de twee partijen. Dus hoe zorg je daarvoor? Dat is waar de product owner om de hoek komt kijken.
De product owner moet het product door en door kennen. Deze persoon is het voornaamste contactpunt tussen de klant en het ontwikkelingsteam. Ze gaan uit van de eisen van de klant en vertalen die naar actiepunten. Dit betekent dat ze de uit te voeren taken van het product maken en bijhouden, dit wordt de backlog genoemd.
Elk scrumteam heeft één product owner (dit mag nooit een gedeelde rol zijn).
Development team
Deze is vrij eenvoudig: de ontwikkelingsteams zijn de personen die... het product ontwikkelen. Scrumontwikkelingsteams moeten klein zijn en een groot aantal vaardigheden bezitten — een doorsnee team bestaat uit zowel ontwerpers als programmeurs.
Herinner je je de basisprincipes van scrum nog? Dit is waar samenwerking om de hoek komt kijken. Leden van een scrumontwikkelingsteam moeten andere teamleden trainen in hun vaardigheden om knelpunten te helpen voorkomen. Omdat het scrumontwikkelingsteam verantwoordelijk is voor het eigenlijke programmeerwerk, zijn ze verantwoordelijk voor het inschatten en toewijzen van de tijd en middelen die voor elk backlogitem nodig zijn.
Scrum Master
Als het nog niet duidelijk was: in het scrumframework wordt er veel vergaderd. En iemand moet die vergaderingen plannen, coördineren en leiden. Dat is de taak van de scrummaster.
De scrummaster houdt zich bezig met alles wat met scrum te maken heeft. Hoe implementeert het team de scrummethodologie? Zijn er gebieden die bijgesteld of verbeterd moeten worden? Hoe kan het team met elke sprint beter worden?
Daarnaast zijn ze er verantwoordelijk voor dat scrum meetings gepland worden en vlot verlopen.
Scrumartefacten
We hebben al heel wat scrumjargon behandeld, maar we zijn nog niet helemaal klaar. In scrum is een artefact gewoon een mechanisme — of hulpmiddel — om werk te beheren en te voltooien. Er zijn vier belangrijke scrumartefacten:
Productbacklog
De productbacklog, die door de product owner wordt bijgehouden, is een lijst van eisen voor het eindproduct. Naarmate de prioriteiten veranderen, zal de product owner de backlog herschikken en reorganiseren. Aan het begin van elke sprint kiezen scrumteams een aantal taken uit de productbacklog waar ze tijdens die sprint aan willen werken.
Sprintbacklog
Bij elke sprint worden de taken uit de productbacklog geselecteerd en in de sprintbacklog gezet. De sprintbacklog wordt uitsluitend door het ontwikkelingsteam bijgehouden en gebruikt. Deze taken worden vaak georganiseerd op een scrum board — een visueel hulpmiddel om de voortgang en prioriteit van elke taak bij te houden. Taken worden op het bord gesorteerd in kolommen: opslagen, te doen, in uitvoering, en voltooid. Naarmate taken voltooid worden, verplaatst het ontwikkelingsteam ze door deze kolommen.
User stories
User stories zijn een manier om backlogitems te beschrijven. De productbacklog is in wezen een lijst van functies die in het eindproduct moeten komen. User stories beschrijven die functies vanuit het perspectief van een eindgebruiker: waarom heeft de gebruiker deze functie nodig en hoe gaat die er in de praktijk uitzien?
Productverbetering
Aan het eind van elke sprint heb je (hopelijk!) een stapel voltooide taken die samen de productverbetering vormen. Dat wil zeggen, de productverbetering is gewoon de werkende versie van het product aan het eind van een sprint.
Scrum events
We hebben het al een paar keer gehad over scrum meetings (en hoeveel dat er zijn) zonder verdere uitleg — die uitleg volgt nu! Het scrumframework berust op een aantal 'gebeurtenissen'. Een aantal van de meest voorkomende en belangrijke scrum events zijn:
Sprint
De sprint is de ruggengraat van agile softwareontwikkeling; het is de kern van het scrumproces. Sprints, die meestal tussen twee en vier weken duren, zijn de organisatie-eenheid van scrum. De werkzaamheden worden gepland in sprints en daaromheen worden vergaderingen gepland enzovoort.
Sprintplanning
Als je je op onbekend terrein begeeft, begin je niet zomaar te rijden. (Of misschien doe je dat wel, maar dat loopt waarschijnlijk niet zo goed af.) Je wilt een kaart bekijken en de beste route naar je bestemming uitstippelen.
Op dezelfde manier kiezen scrumteams niet zomaar een paar backlogtaken en beginnen ze halsoverkop aan een sprint. Er komt heel wat planning bij kijken. Een sprintplanningsvergadering, die aan het begin van een sprint gehouden wordt, zou een paar uur moeten duren — houd rekening met twee uur voor elke week van je sprint. In die tijd moeten jij en je team een aantal vragen beantwoorden: wat gaan we deze sprint bereiken? En hoe gaan we dat bereiken? Wees zo specifiek mogelijk.
Daily Standup
Dagelijkse vergaderingen — ook wel dagelijkse scrums of daily stand-upmeetings genoemd — zijn korte vergaderingen (liefst vijftien minuten) die elke ochtend op hetzelfde tijdstip gehouden worden. Tijdens deze vergaderingen bespreekt het ontwikkelingsteam wat ze de vorige dag bereikt hebben, en wat ze vandaag hopen te bereiken.
Beoordeling van de sprint
De scrummethode moedigt transparantie tussen alle stakeholders aan. Sprintbeoordelingsvergaderingen helpen deze transparantie te bevorderen. Deze vergaderingen, die aan het eind van elke sprint worden gehouden, bieden het scrumteam de gelegenheid het product, in de huidige iteratie, aan de andere stakeholders te presenteren. Op basis van de feedback die in deze vergadering gegeven wordt, verfijnt de product owner de productbacklog.
Sprint-retrospectives
Sprintbeoordelingsvergaderingen worden bijgewoond door een aantal stakeholders, sprint-retrospectives zijn alleen voor het scrumteam. Deze vergaderingen worden gehouden aan het eind van elke sprint en geven teamleden de kans om te reflecteren op de vorige sprint.
Stel je scrumteam tijdens sprint-retrospectives een aantal vragen: wat ging er goed? Wat ging er minder goed? En, het allerbelangrijkste, hoe kunnen we het de volgende sprint beter doen?
De voordelen van scrum
Hopelijk heb je na het lezen van deze scrum uitleg op z'n minst de basisprincipes van scrum onder de knie. Wat nu? Je moet beslissen of de scrummethode iets is waar je team baat bij kan hebben.
De voordelen van scrum liggen grotendeels in het feit dat het een iteratieve benadering is. Door het scrumframework te gebruiken, kan je team zich aanpassen aan de steeds veranderende wereld van softwareontwikkeling en een product afleveren dat met elke sprint beter wordt.
Nu ben jij aan de beurt! Ga vandaag nog aan de slag met ons scrum board-sjabloon.
Houd je projecten georderdOver Lucidspark
Lucidspark, een virtueel whiteboard in de cloud, is een belangrijk onderdeel van Lucid Software's pakket voor visuele samenwerking. Dit geavanceerde digitale canvas brengt teams samen om te brainstormen, samen te werken en het collectieve denken te consolideren in uitvoerbare volgende stappen - en dat alles in realtime. Lucid is trots op zijn diensten aan belangrijke bedrijven over de hele wereld, waaronder klanten als Google, GE en NBC Universal, en 99% van de Fortune 500. Lucid werkt samen met brancheleiders, waaronder Google, Atlassian en Microsoft. Sinds de oprichting heeft Lucid talrijke onderscheidingen ontvangen voor zijn producten, bedrijfsvoering en werkcultuur. Ga voor meer informatie naar lucidspark.com.