Software is de afgelopen decennia sterk veranderd, en wat nog belangrijker is: het blijft veranderen. Natuurlijk verandert ook het ontwikkelingsproces van software mee.
Agile softwareontwikkeling is een iteratieve, aanpasbare manier van werken die flexibel genoeg is om in te spelen op technologische ontwikkelingen en veranderende eisen van klanten. Een van de populairste agile modellen is scrum, waarbij kleine teams zich richten op incrementele productontwikkeling in korte perioden. Als scrum effectief wordt toegepast, helpt het teams om efficiënter en flexibeler te werken en nauwer samen te werken met klanten.
In deze blogpost beschrijven we de belangrijkste principes van scrum, evenals de gebeurtenissen en artefacten, zodat je kunt beslissen of scrum het juiste agile model voor jou is.
Wat is scrum?
Scrum is een agile model voor softwareontwikkeling. Traditionele softwareontwikkelingsprocessen werken lineair, met een strikt patroon van eerst plannen, dan ontwikkelen, vervolgens testen, enzovoort. Agile softwareontwikkeling daarentegen hanteert een meer iteratieve aanpak door initiatieven op te splitsen in kleinere periodes van twee tot vier weken. Deze periodes heten sprints.
Tijdens elke sprint voegt het ontwikkelingsteam functies toe en worden deze functies verbeterd, zodat geleidelijk het best mogelijke product wordt ontwikkeld. Er wordt voortdurend getest en ontwikkeld, en beide processen overlappen vaak. Scrumteams komen dagelijks bijeen om hun voortgang te volgen, de transparantie te vergroten en obstakels aan te pakken.
Het scrummodel wordt gekenmerkt door de focus op teamwerk en samenwerking. De naam scrum is dan ook afkomstig van rugby, waarbij de scrum een onderdeel van het spel is dat een gecoördineerde teaminspanning vereist
.
Scrum werd oorspronkelijk ontworpen voor softwareontwikkeling, maar wordt nu gebruikt door organisaties, teams en projectmanagers in alle disciplines. De methode werkt goed voor kleinere teams die te maken hebben met veranderende deliverables, onbekende oplossingen en regelmatige interactie met klanten of eindgebruikers.
Wat is de scrummethodologie?
Het scrummodel wordt soms ook wel de scrummethodologie genoemd, hoewel het eigenlijk vooral een raamwerk is. In tegenstelling tot methodologieën voor projectmanagement die processen, procedures en documentatie voorschrijven, biedt scrum een lichte structuur voor de oplevering. Details van de werkwijze worden aan het team overgelaten. Om complexe problemen beter op te lossen, is scrum opzettelijk vaag. Het erkent de onvoorspelbare aard van productontwikkeling en benadrukt tegelijkertijd het belang van continue inspectie en aanpassing van het werk.
Scrum stimuleert niet alleen teams om creatief te denken tijdens iteraties, maar ordent ook functionaliteiten en doelen in een prioriteitenlijst. Op deze manier kan het team zich eerst richten op het belangrijkste werk.
Belangrijkste principes van scrum
Het scrummodel is gebaseerd op zes kernprincipes. Elk aspect van de scrummethode, van dagelijkse sprintvergaderingen tot scrum-artefacten, weerspiegelt deze principes.
De zes belangrijkste scrumprincipes zijn:
1. Controle over empirische processen: Door de 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: Voor een succesvolle toepassing van het scrummodel moet elk lid van het team volledig achter het proces staan. Deze toewijding vereist een hoge mate van zelfstandigheid en zelforganisatie.
3. Samenwerking: Om het best mogelijke product te leveren, moet een softwareontwikkelingsteam samenwerken. Teams delen tijdens elke cyclus verantwoordelijkheid en aansprakelijkheid. Zoals het gezegde luidt: samen slagen, samen falen.
4. Op waarde gebaseerde prioritering: Een van de bepalende kenmerken van scrum is de flexibiliteit. Om zich aan te passen aan nieuwe eisen en wensen voor het project, evalueren en herprioriteren scrumteams voortdurend elke taak die ze moeten uitvoeren.
5. Timeboxing: In de scrummethodologie heeft elk element van een sprint een duidelijk gedefinieerde tijdlijn. De sprint zelf is twee tot vier weken lang, en dagelijkse vergaderingen werken ook volgens strikt aangehouden tijdlijnen.
6. Iteratieve ontwikkeling: Omdat scrum een agile raamwerk is, worden producten iteratief gebouwd. Deze iteratieve voortgang zorgt voor voortdurende verbetering, flexibiliteit en uiteindelijk een product van hoge kwaliteit.
Wie maakt deel uit van een scrumteam?
Voor een soepel verloop van elke sprint, bestaat elk scrumteam uit drie primaire rollen en verantwoordelijkheden: ontwikkelingsteam, product owner en scrummaster. Meestal heeft een team één product owner, één scrummaster en meerdere ontwikkelaars.
De product owner beheert de productbacklog en vormt het verbindingspunt tussen het team en de klant. De product owner zorgt dat het team de klantbehoeften begrijpt en aan de meest waardevolle taken werkt. De scrummaster zorgt ervoor dat het hele team begrijpt hoe het scrummodel moet worden geïmplementeerd en faciliteert scrumgebeurtenissen. Het ontwikkelingsteam bestaat uit teamleden die aan de ontwikkeling van het product werken.
Stappen van het scrumproces
Het scrummodel is opgebouwd rond een aantal gebeurtenissen zodat het team kan samenwerken, plannen en incrementele waarde kan leveren. Hieronder volgen enkele van de meest voorkomende scrumgebeurtenissen.
Sprintplanning
Als je je in een onbekende omgeving bevindt, begin je niet zomaar te rijden. Je raadpleegt eerst een kaart en zoekt de beste route naar je bestemming. Op dezelfde manier selecteren scrumteams niet zomaar een paar items van de backlog om daarna meteen aan een sprint te beginnen. Er komt veel planning bij kijken.
Een sprintplanningsvergadering, die aan het begin van elke sprint wordt gehouden, duurt doorgaans enkele uren en is bedoeld om het sprintdoel vast te stellen en de volgende vragen te beantwoorden:
-
Wat gaan we tegen het einde van deze sprint bereiken?
-
Hoe gaan we dat bereiken?
-
Waarom is deze sprint waardevol?
Net als bij andere scrumgebeurtenissen helpt het om software te gebruiken zodat je sprintplan een levend document is dat zo nodig kan worden bijgewerkt. Door gebruik te maken van een visuele samenwerkingsoplossing zoals Lucid, kun je gemakkelijk de doelen visualiseren die je van plan bent te bereiken terwijl je hele team in real time bewerkt en samenwerkt.