Scrum

In het Nederlands "stroomvorming". Het verwijst naar een aanpak voor agile softwareontwikkeling binnen projectmanagement. Het is gericht op het geven van richting aan zelforganiserende teams, terwijl ze zoveel mogelijk vrijheid krijgen bij de uitvoering.

We voeren onze projecten inmiddels al geruime tijd uitsluitend volgens Scrum uit, omdat zowel onze eigen ervaringen als de feedback van onze klanten hebben aangetoond dat de voordelen zwaarder wegen dan de nadelen.

ScrumVoordelen

  • Verhoogt de flexibiliteit van het project
  • Terugkerende bijeenkomsten verhogen de motivatie en productiviteit van de ontwikkelaars
  • Testbaarheid en aanpasbaarheid zijn vanaf het begin van het project gewaarborgd
  • Verbetert de communicatie tussen alle belanghebbenden en het ontwikkelteam
  • Zorgt voor een beter begrip van de te ontwikkelen functionaliteiten

Wat zijn de fundamentele bouwstenen van Scrum?

Het Scrum-framework richt zich voornamelijk op drie gebieden: de teamstructuur, de gebeurtenissen die tijdens het project plaatsvinden en de artefacten waaraan tijdens het project wordt gewerkt. De volledige set regels is vastgelegd in de zogenoemde Scrum Guide, een document van slechts enkele pagina's.

Team

Volgens de Scrum Guide moet een team uit maximaal tien personen bestaan. Een dergelijk team bestaat uit een Product Owner, een Scrum Master en de ontwikkelaars.

  • De Product Owner is in de eerste plaats verantwoordelijk voor het actueel houden van de zogenoemde Product Backlog en het voortdurend prioriteren van de User Stories, zodat het ontwikkelteam aan de juiste onderdelen werkt.
  • De Scrum Master is daarentegen een servant leader die het team ondersteunt, coacht om de productiviteit te verhogen en belemmeringen van buitenaf wegneemt.
  • Het ontwikkelteam is verantwoordelijk voor het opleveren van een bruikbare productincrement in iedere sprint.

Evenementen

Scrum is een integraal projectmanagementframework, wat betekent dat een product in meerdere fasen, zogenaamde sprints, wordt ontwikkeld. Binnen deze sprints vinden verschillende bijeenkomsten plaats die nodig zijn om de artefacten te coördineren en eraan te werken. De Scrum Guide definieert de volgende evenementen:

  • Sprint: Een sprint duurt tussen de één en vier weken. Gedurende deze periode werkt het ontwikkelteam voornamelijk aan het realiseren van een bruikbaar productincrement.
  • Sprint Planning: Aan het begin van iedere sprint komen alle teamleden bijeen voor een Sprint Planning, waarin het sprintdoel en de omvang van het uit te voeren werk worden vastgesteld.
  • Daily Scrum: Dit is een dagelijkse bijeenkomst die niet langer dan vijftien minuten mag duren. Het doel is dat ontwikkelaars de voortgang van hun werk delen en indien nodig taken onderling herverdelen.
  • Sprint Review: De Sprint Review vindt altijd plaats aan het einde van een sprint. Tijdens deze bijeenkomst presenteert het team de resultaten van de sprint. Het is wenselijk om ook stakeholders van buiten het team te betrekken om zoveel mogelijk feedback te verzamelen.
  • Sprint Retrospective: Tijdens de Sprint Retrospective krijgt het team aan het einde van de sprint de gelegenheid om problemen te bespreken die tijdens de sprint of binnen het team zijn ontstaan. De Scrum Master treedt hierbij op als neutrale moderator.

Een andere belangrijke bijeenkomst, die niet expliciet in de Scrum Guide is gedefinieerd, is refinement. Bij Ambient voeren we deze bijeenkomst altijd uit. Tijdens refinement worden de door de Product Owner geschreven User Stories geoptimaliseerd en ingeschat met behulp van story points.

Artefacten

Scrum definieert ook drie artefacten. Dit zijn de waarden die tijdens de sprints worden gecreëerd.

  • Product Backlog: De Product Backlog is een lijst met globaal beschreven User Stories die samen de volledige productomvang vertegenwoordigen. Het werken eraan draagt bij aan de verwezenlijking van het productdoel.
  • Sprint Backlog: De Sprint Backlog definieert het doel van de betreffende sprint en een plan om dat doel te bereiken. Het werken eraan ondersteunt het behalen van het sprintdoel.
  • Increment: Een increment beschrijft een geïmplementeerde functionaliteit die het product dichter bij zijn doel brengt. Een increment kan alleen worden geaccepteerd als het voldoet aan de Definition of Done (een door de ontwikkelaars vastgestelde set regels) en grondig is getest door de Product Owner.