Agile / Scrum


Agile/Scrum is een framework voor het met een multidisciplinair team ontwikkelen van complexe producten. De methode is ontwikkeld door Ken Schwaber en Jeff Sutherland en vastgelegd in de Scrum Guide. Scrum gaat uit van een heuristische aanpak: het te ontwikkelen product wordt ‘ontdekt’ door het systematisch volgen van de methode. Dit in tegenstelling tot zogenaamde voorschrijvende methoden, waarbij de ontwikkeling zoveel mogelijk vooraf wordt gepland.

Scrum is gefundeerd op empirische procesbeheersingstheorie: kennis ontstaat uit ervaring, stapsgewijs verbeteren van de voorspelbaarheid en beheersen van risico’s. Uitgangspunt van Scrum is dat de uitkomst en werkzaamheden bij productontwikkeling van nature onzeker zijn en dat je hier het best mee omgaat door gebruik te maken van het zelf-organiserend en probleemoplossend vermogen van capabele en gemotiveerde medewerkers.

De methode is gebaseerd op drie fundamenten:

  • Transparantie: zorg dat alle betrokkenen weten wat er speelt en hier een gemeenschappelijk beeld bij hebben op basis van een gemeenschappelijke standaard.
  • Inspectie: stel geregeld de werkelijke stand van zaken vast, bij voorkeur door capabele inspecteurs.
  • Aanpassing: pas het proces of de resources zo snel mogelijk aan wanneer aspecten afwijken buiten de acceptabele kaders.

De door Schwaber en Sutherland beheerde Scrum guide beschrijft de gemeenschappelijke waarden, een voorgeschreven rolverdeling, vaste afstemmingsmomenten (zg. Scrum events) en registraties waarmee de voortgang wordt gemanaged (zg. Scrum artifacts). Scrum is eenvoudig qua opzet, maar het goed toepassen ervan vereist kennis en ervaring. Zoals de Scrum guide stelt: Scrum is ‘lightweight, simple to understand but difficult to master’

Scrum waarden

De Scrum waarden (sinds juli 2016 toegevoegd) zijn voorwaardelijk voor multi-disciplinaire intensieve samenwerking in een Scrum team. Alle teamleden werken samen en zijn in de Scrum filosofie gelijkwaardige professionals. Ze kunnen een eigen rol en expertise hebben, maar dit is niet zichtbaar in de vorm van een hiërarchie. De gedeelde Scrum waarden zijn  een onmisbare basis voor flexibele, interactieve manier van samenwerken tussen professionals:

  • Durf: Scrum teamleden hebben de moed om de juiste dingen te doen en moeilijke problemen aan te vatten
  • Focus: iedereen focust op het Sprint-werk en de resultaten van het Scrum team
  • Betrokkenheid: mensen committeren zich persoonlijk aan de doelstellingen van het Scrum team
  • Respect: teamleden zien elkaar als capabele, onafhankelijke mensen
  • Openheid: teamleden zijn open over het werk en de uitdagingen die zich voordoen

Scrum rollen

Scrum onderscheidt drie rollen: Producteigenaar (Product Owner), Ontwikkelaar (Development Team) en Scrum Master:

  • De Producteigenaar vertegenwoordigt de klant en is er voor verantwoordelijk dat de tijd van het ontwikkelteam optimaal wordt ingezet voor het toevoegen van waarde aan het eindproduct. Hij is eindverantwoordelijk voor de zg. Product Backlog: de dynamische specificatie van het product. De Product owner bepaalt de prioriteiten van het ontwikkelteam en bewaakt de productspecificatie (Product requirements).
  • De Ontwikkelaars vormen een multidisciplinair ontwikkelteam, dat alle competenties in huis heeft om het eindresultaat te kunnen opleveren. Alle teamleden zijn gelijkwaardig – ze heten allemaal ontwikkelaar (developer) en er is geen hiërarchie. Het team bepaalt in onderling overleg welk werk zij gedurende de volgende sprint oppakken (het zg. increment). Het team als geheel is eindverantwoordelijk voor het werk en resultaat daarvan.
  • De Scrum Master is er voor verantwoordelijk dat alle betrokkenen de Scrum methode begrijpen en op de juiste manier gebruiken. Hij is de coach van het Scrum team (servant leader) en beïnvloedt degenen die met het team interacteren (stakeholders) zodat het team optimaal functioneert. De verschillende taken van de Scrum master zijn benoemd in de Scrum Guide.

Afstemming (Scrum events)

Scrum schrijft een aantal zg. events voor, waarmee de activiteiten en afstemming binnen het project worden geregeld. De events kennen een eigen periodiciteit, die vooraf is afgesproken of vanuit de methode is voorgeschreven. Elke soort events helpt op zijn eigen manier de stand van zaken te verhelderen (transparency), te controleren (inspection) en waar nodig het project bij te stellen. Scrum onderscheidt de volgende events (zie de Scrum Guide voor een gedetailleerdere omschrijving):

  • Sprint: Tijdens de sprint werkt het ontwikkelteam gezamenlijk aan het projectresultaat. Een Sprint is een vooraf afgesproken periode, altijd een maand of korter, waarin het team werkt aan de items uit de product backlog, die het in deze periode denkt te kunnen afronden. Het resultaat is een afgerond, tastbaar stuk werk, dat gepland, ontwikkeld, opgeleverd en geëvalueerd kan worden.
  • Sprint planning: Het Ontwikkelteam bepaalt gezamenlijk wat het tijdens de komende sprint zal opleveren en welke werkzaamheden hiervoor nodig zijn (de zg. increment). De Producteigenaar en Scrum master kunnen dit proces ondersteunen, maar het Ontwikkelteam bepaalt altijd zelf welk werk het op zich neemt. De tijd voor een sprint planning (time-box) mag niet meer dan acht uur zijn voor een sprint van een maand (en eventueel minder bij een kortere sprintperiode). Uitgangspunt voor de sprint planning zijn de Product Backlog, het laatste increment en de beschikbare capaciteit van het team. Het Ontwikkelteam verwoordt het op te leveren resultaat als doelstelling (Sprint Goal).
  • Daily Scrum: Zodra een sprint start, maakt het Ontwikkelteam elke dag gezamenlijk de stand van zaken op en maakt een plan voor de komend 24 uur. Hierbij evalueert het team het werk sinds de vorige Daily Scrum en bepaalt het gezamenlijk wat de komende Daily Scrum gereed kan zijn. Aandachtspunten zijn onder meer lopende issues en de benodigde samenwerking. De Scrum Master ondersteunt en bewaakt het proces en leert het ontwikkelteam de Daily Scrum affectief en efficiënt te houden. Het ontwikkelteam is en blijft echter verantwoordelijk.
  • Sprint Review: Na afloop van de sprint maken het volledige Scrum team en de stakeholders samen de balans op. De Producteigenaar presenteert de vordering van het resultaat, gezien vanuit de Backlog. Het ontwikkelteam evalueert de werkuitvoering, de issues en de manier waarop deze zijn aangepakt, demonstreert het resultaat en beantwoordt vragen. De producteigenaar evalueert de impact op de Backlog, waarna de groep gezamenlijk de input voor de komende Sprint Planning bespreekt. Daarna worden de eventuele impact op en ontwikkelingen van de markt besproken en worden tijd, budget, benodigde competenties en capaciteit en externe factoren voor de komende release besproken. Het resultaat van de Sprint Review is een geactualiseerde en eventueel verbeterde Product Backlog.
  • Sprint retrospective: Tussen de sprint review en de volgende sprint planning, voert het Scrum Team een zelfevaluatie uit. In een time-box van maximaal drie uur, bespreekt het team de individuele input, samenwerking, werkwijze en tools. Het team benoemt de belangrijkste verbeterpunten en plant verbeteractiviteiten. Dit borgt inspectie en aanpassing in het Scrum Proces.

Registraties (Scrum Artifacts)

Voor het managen van het werk, worden registraties bijgehouden, de zg. Scrum Artifacts. Het Scrum Team houdt hierin de historie, planning en voortgang bij. Registraties worden continu geactualiseerd: aan het begin van een project is informatie meestal beperkt en onnauwkeurig, maar deze ontwikkelt zich gedurende de projectuitvoering tot het benodigde detail- en kwaliteitsniveau. Scrum onderscheidt de volgende artifacten:

  • De Product Backlog is een registratie van alle informatie over het product: eigenschappen, functies, eisen, verbeteringen en (toekomstige) fixes en changes. De registratie is het uitgangspunt bij het specificeren, plannen, vrijgeven, registeren, opvolgen en evalueren van werk. Bijhouden van de Product Backlog is een continu proces, waarbij de items steeds in prioriteitsvolgorde worden weergegeven: de belangrijkste en meest urgente eerst. Items bovenaan de lijst zijn meestal gedetailleerder uitgewerkt, dan items die wat lager op de lijst staan. Een minimale eis is, dat de items voor de volgens sprint voldoende zijn uitgewerkt om de volgende sprint te plannen en met het Ontwerpteam objectief vast te stellen wanneer een volgende release gereed is (Scrumterm: ‘done’). De Product Owner beheert de Product Backlog gedurende de levensduur van het product en is er voor verantwoordelijk dat deze steeds up-to-date en op het juiste detailniveau uitgewerkt is.
  • De Sprint Backlog bevat een selectie van de tijdens de sprint te produceren Backlog Items en het plan voor het realiseren van het Product Increment en de Sprint Goal. Dit is de ‘opdracht’ voor het Ontwikkelteam tijdens de volgende sprint. De Sprint Backlog specificeert het werk, de resultaten (op te leveren functionaliteit) en de eisen waaraan moet worden voldaan om het werk als gereed te beschouwen (‘done increment’). Het Ontwikkelteam wijzigt en detailleert de Sprint Backlog tijdens het werk en op basis van de evaluatie tijdens de Daily Scrum.
  • De Increment is het totaal van alle afgeronde Product Backlog items tijdens een sprint en alle eerder afgeronde items. De status van de vorderingen zijn op elk moment zichtbaar.

De Scrum guide legt in de laatste paragrafen extra de nadruk op openheid, het verkrijgen van overeenstemming over wanneer een increment echt klaar (‘done’) is en de rol van de Scrum Master en het Scrum team daarbij. Scrum vereist een open opstelling, intensieve samenwerking en gelijkwaardigheid bij het realiseren van het product en een gezamenlijk beeld over wanneer een oplevering precies aan de eisen voldoet (Increment ‘done’). Naast de ‘structuur’ van de methode, is er daarom in de praktijk veel aandacht voor teamdynamiek en cultuuraspecten.

Certificering

Er zijn verschillende organisaties die SCRUM certificeringen aanbieden. De meest gangbare zijn Scrum Master en Product Owner. Voor een volledig overzicht: kijk op de site van SCRUMstudy, de internationale accrediterende instelling. https://www.scrumstudy.com/certification

 

Meer weten? Wij selecteerden de volgende boeken voor jou.

Aanvullende artikelen

Wat is Agile?

In dit artikel worden de Agile fundamenten toegelicht en kan jij bepalen of jij Agile bent. We horen de laatste tijd steeds meer over een Agile projectaanpak. Wat is dit? Is Agile een project management methodiek zoals Prince2 of moeten we ons hier toch iets anders bij voorstellen? Dit artikel

Posted in Methoden | Tagged | Comments Off on Wat is Agile?