Scrum en het LeaseWeb Cloud team: 3 tips

Sinds 2011 gebruikt het LeaseWeb Cloud Development Team Scrum om software te ontwikkelen. In die tweeënhalf jaar hebben we heel wat goede resultaten geboekt. Maar wanneer je iets voor het eerst implementeert, loopt niet alles altijd van een leien dakje. We kregen met allerlei uitdagingen te maken en moesten onze processen doorlopend aanpassen. Als product owner van het Cloud Development Team deel ik graag enkele van de lessen die we de afgelopen jaren hebben geleerd.

Scrum voor beginners

Ik heb een korte omschrijving van Scrum gemaakt voor wie niet (erg) vertrouwd is met de methodiek. Scrum is veel verfijnder en uitgebreider dan deze korte omschrijving, maar het is een goede kennismaking.

Scrum hoort thuis in de categorie Agile software development, die ontstaan is als reactie op de (indertijd) meer gangbare manieren om software te ontwikkelen. De bestaande methoden kostten tot dan meestal veel meer tijd dan beoogd, terwijl ze vaak niet de verwachte resultaten opleverden. Dit omdat de prioriteiten of de behoeften van de opdrachtgever tussentijds waren veranderd. Agile development lost die problemen op door met kleine, incrementele ontwikkelingsstappen te werken. Hierdoor ben je tijdens development veel flexibeler.

In scrum werkt een multidisciplinair team van ontwikkelaars, testers, functionele ontwerpers enz. naar een (in grote lijnen) bepaald doel toe. Dat doel wordt vastgelegd in door de product owner gecreëerde user stories. User stories vertellen via een specifieke beschrijving wat de doelen zijn die behaald moeten worden:

“As <stakeholder> I want <certain goal/feature/piece of functionality/software> in order to <business value>.”

User stories moeten binnen een gegeven tijdsbestek haalbaar zijn. Deze zogeheten sprints zijn meestal erg kort. Momenteel gebruikt het LeaseWeb Cloud team bijvoorbeeld sprintcycli van twee weken.

Een belangrijk verschil tussen een document met volledig gespecificeerde eisen en een user story is het detailniveau. Of beter gezegd, het gebrek aan details. Dat gebrek aan details bevordert de flexibiliteit van de technische oplossing(en)/architectuur en maakt het makkelijker om een doel en de daarvoor benodigde architectuur bij te stellen als de inzichten in doel en dus het beoogde resultaat verandert – wat heel vaak gebeurt! Bijkomend voordeel van de korte ontwikkelingscycli en de vrij algemene beschrijving van het doel is dat het veel voorbereidend werk voorkomt. Je kunt dus meteen beginnen met software ontwikkeling en snel waarde voor de business creëren.

Om ervoor te zorgen dat alles vlot verloopt, werken we structureel met een aantal vergadermomenten die deel uitmaken van elke sprint.

  • Grooming: We schatten de complexiteit van de user stories door ze story points toe te kennen. Op langere termijn vertellen die punten ons welke doelstellingen we in een sprint kunnen bereiken. Op den duur weten we namelijk uit ervaring hoeveel story points we per sprint aankunnen (de velocity). Hiermee kan het team snel bepalen of een bepaald doel binnen een sprint haalbaar is.
  • Sprints plannen: Nadat de user story punten heeft gekregen, verdeelt het team ze tijdens sprint planning in kleinere taken en verbindt het zich tot de levering van een user story in de vorm van werkende software. Het team gaat die verbintenis pas aan wanneer het denkt dat ze binnen één sprint haalbaar is.
  • De dagelijkse standup: Dit is een korte ochtendvergadering waarin we bespreken wat elk teamlid de vorige dag heeft gedaan en vandaag zal doen. We identificeren struikelblokken (impediments) en blijven op de hoogte van elkaars werk. De meeting heet een standup omdat iedereen blijft staan. Dit voorkomt lange uitweidingen zodat alles sneller gaat.
  • Demo: Na elke sprint tonen we de eindgebruikers een stuk werkende software.
  • Sprint retro: In deze vergadering bespreekt het team wat er tijdens de sprint goed is gegaan en wat volgende keer beter zou kunnen.

Zoals bij elke methodiek wijkt de daadwerkelijke toepassing van Scrum in de praktijk vaak af van de originele structuur. Dat is een goede zaak, want de methodiek moet een doel dienen. Het idee achter Scrum is dat je de regels niet stipt hoeft te volgen; het belangrijkste is goede resultaten boeken.

Wat wij hebben geleerd

Zit je er over na te denken om zelf Scrum toe te passen? Onthoud dan de volgende punten:

  1. Kies de methode die resultaat oplevert
    Bij de ontwikkeling van een nieuw product is Scrum in de startfase misschien niet de ideale methode. Als er nog geen basisproduct is, is het lastig om haalbare user stories te bepalen en binnen een sprint werkende software voor de eindgebruiker te produceren. Een business-doel kan soms zo’n hoge prioriteit hebben dat je moet overstappen naar een methodiek die beter bij het doel past. Je zou dan kunnen overwegen om in plaats van Scrum een Kanban-benadering toe te passen. Anders zul je moeten aanvaarden dat, zolang niet alle componenten van een basisproduct ontwikkeld zijn, niet elke sprint werkende software zal opleveren. Zorg er hoe dan ook voor dat je niet de gevangene van je methode wordt. Scrum is juist bedoeld om flexibel te blijven!
  2. Synchroniseer de ontwikkeling(cycli) binnen het bedrijf
    Werken in een organisatie met verschillende teams die ieder verschillende ontwikkelingsmethoden gebruiken, kan een hele uitdaging zijn. Zeker als de producten van deze teams moeten worden geïntegreerd in hetzelfde platform, zoals LeaseWeb’s eigen customer portal. In ons geval moesten we workflows en processen op elkaar afstemmen om Scrum te combineren met een waterfall development model. Het wordt allemaal nog ingewikkelder als de verschillende sprints en releases niet gesynchroniseerd zijn en met verschillende cycli werken. De langste cyclus zal dan automatisch beslissend zijn voor de levering. Dat kan botsen met een van de voordelen van Scrum: de snelle levering van werkende software en waardevolle resultaten. Na een poosje beseften wij dat we anders moesten gaan denken over de manier waarop wij als bedrijf software ontwikkelen. Dat heeft ertoe geleid dat we de methoden van de verschillende ontwikkelingsteams op elkaar hebben afgestemd.
  3. Zorg dat de rol van de product owner voor iedereen duidelijk is
    Jammer genoeg wordt de rol van de product owner vaak verkeerd begrepen. De product owner moet bevoegd zijn om beslissingen te nemen over de prioriteit van alle user stories. Ook de feitelijke invulling van een User story is aan hem/haar. Om dat te kunnen, moet hij/zij een duidelijk beeld hebben van wat alle stakeholders wensen. Dit is het belangrijkste wat hij of zij moet doen:
  • De wensen en eisen van alle stakeholders verzamelen
  • Een eigen mening vormen over wat deze wensen en eisen in de praktijk inhouden.
  • Dat inzicht gebruiken om de ontwikkelaars uit te leggen wat van hun software wordt verwacht, en dus het resultaat van het werk van de ontwikkelaars tijdens een sprint helpen vormgeven.

Alle leden van de organisatie moeten accepteren dat de product owner besluit wat er tijdens een sprint zal worden ontwikkeld. Anders ontstaat er verwarring. Een van de grote voordelen van Scrum is dat de korte ontwikkelingscycli garanderen dat fouten of misverstanden altijd snel kunnen worden gecorrigeerd. Het heeft een poosje geduurd voordat ik als product owner voldoende mandaat had, maar door resultaat te leveren en keer op keer de neuzen in dezelfde richting te zetten, hebben we ons doel bereikt. Dat resultaat, samen met onze flexibiliteit wanneer problemen opgelost moesten worden, heeft ons het vertrouwen opgeleverd dat we nodig hadden.

Uiteindelijk zijn we meer dan tevreden over onze beslissing om Scrum te gebruiken. Je kunt erg snel waardevolle nieuwe mogelijkheden en functies ontwikkelen. Als team leren wij elke sprint nieuwe dingen en verbeteren we onze vaardigheden. We kijken iedere keer weer uit naar de kans om het geleerde toe te passen voor de ontwikkeling van nieuwe LeaseWeb Cloud-producten. Heb jij tips over of ervaring met agile methoden? Of misschien vragen over Scrum? Laat het me weten in het commentaar!


Rogier Boutkan is Product Owner Cloud computing bij LeaseWeb.

Dit artikel verscheen op 2 december op het blog van LeaseWeb en is voor ISP Today vertaald naar het Nederlands.

Over Rogier Boutkan

Laatste artikelen