Een website ontwerpen met agile design en scrum (2): wat heb je nodig?

0

In dit deel: wat heb je nodig om te scrummen? ‘Scrummen’ is een manier van agile (‘vlug en lenig’) werken. Een project wordt opgedeeld in korte ‘sprints’ waarin steeds samen met de klant wordt gewerkt aan een concreet resultaat.

Wij hebben inmiddels veel ervaring opgebouwd met Scrum en andere vormen van Agile ontwerpen. In drie artikelen wil ik graag onze ervaringen delen en de basics van Scrum uiteenzetten. Mijn advies aan ontwerpers: just do it!

Scrum: wat heb je nodig?

Hieronder zie je een overzicht van het scrumproces. De totale hoeveelheid werk (product backlog) wordt ingedeeld in een aantal sprints. In dit artikel beschrijf ik de belangrijkste onderdelen van Scrum.

Bron: Wikipedia

Het Scrumproces (bron: Wikipedia)

Scrum room

Scrum drijft op ad hoc-communicatie tussen de teamleden. Het hele team zit daarom in één ruimte. Altijd. Zelfs één deur tussen twee teamleden decimeert de communicatiebandbreedte tussen die twee teamleden!

scrum room

Onze ervaring

De Scrum room…

  • … hoeft niet dedicated te zijn, dus er mogen niet-projectleden bij zitten. Maar een Agile Design project maakt veel lawaai, dus aan te raden is het niet.
  • … moet veel muurruimte hebben. Eén van de belangrijkste pijlers van Scrum is: maak het fysiek. Werk op papier. Werk je op de computer? Haal alles eruit, hang alles op. Schrijf en corrigeer op de prints, zodat iedereen het ziet.
  • … moet een ruime voorraad pennen, papier, post-its in alle kleuren en Scotch invisible tape bevatten.
  • … moet echt VAN het team zijn. Maak het eigen. Ja, hang die poster van Jakob Nielsen maar op. Don’t be shy.

Soorten sprints

Scrum gebruikt een projectopdeling in ‘sprints’. Een sprint duurt tussen 2 en 4 weken, met 3 weken als duidelijk optimum. Fabrique onderscheidt deze sprints:

  • Sprint 0 – De eerste sprint, die als ‘kwartiermakersfase’ zou kunnen worden gekenmerkt. Alle benodigde aanleveringen worden gedaan, research wordt gedaan, persona’s en scenario’s worden opgesteld, en er wordt een redelijk precieze omschrijving van de scope van het project gemaakt. In Scrum heet dat laatste de product backlog.
  • Zelfgereguleerde sprints – Soms plannen we een aantal gelijkvormige sprints achter elkaar. Deze sprints zijn communicerende vaten. Het team bewaakt zijn eigen voortgang (velocity) per sprint, en stuurt -indien nodig- bij. Dit is de klassieke Scrum aanpak.
  • Fixed deliverable sprints – Het kan handiger zijn om elke sprint een vast resultaat te geven, zoals een tak van een website, of verschillende middelen.
  • Split sprints – in dit sprinttype zijn in één ruimte twee scrum teams tegelijkertijd bezig: een design team en een software-ontwikkelingsteam. Daily scrums zijn gezamenlijk, maar het ontwikkelaarsteam loopt één sprint achter, en bouwt wat het design team in de sprint ervoor heeft ontworpen. Ja, “au”. Maar het werkt.
  • Sweep sprint – Soms is het handiger om het rework op sprintresultaten niet meteen te doen, maar al het rework te verzamelen in één laatste sprint.

Onze ervaring

  • Fixed deliverable sprints is de meest laagdrempelige vorm om mee te beginnen. De fixed deliverables geven houvast en zorgen dat je je geen zorgen hoeft te maken over ingewikkelde zaken zoals velocity, of een grote homogene product backlog. De meeste van onze Agile projecten hebben fixed deliverable sprints.
  • Agile projecten mèt ontwikkeling zijn bij ons split sprints. We hebben geprobeerd om ontwerp en ontwikkeling in één sprint te vatten, maar het is om allerlei redenen heel lastig, zo niet onmogelijk, om het efficiënt te laten gebeuren. Het doet pijn om zo’n waterval te moeten laten bestaan, maar uit rondvraag blijkt dat ook anderen met hetzelfde probleem zitten. Jammer!
  • Toch streven we er nog steeds naar om split sprints te voorkomen. We proberen nog verschillende dingen uit, bijvoorbeeld eerder prototypen, of tweetallen maken van ontwerper en programmeur.

Product backlog

AH product backlog

Elke sprint bestaat uit meerdere stories. Een story is een herkenbare, min of meer op zichzelf staande eenheid in de sprint. De verzameling van alle stories over het hele project, heet de product backlog. Hier zie je de product backlog van het Allerhande project voor Albert Heijn. De items worden ingedeeld in drie groepen, van grof idee naar ready for sprint. Terwijl de sprints vorderen, zorgt de product owner (de klant) er samen met de scrum master voor dat de product backlog gevuld blijft, en dat de stories snel genoeg concreet worden. Een story is ready for sprint als er genoeg input voor aanwezig is, en er een redelijk heldere inschatting gemaakt kan worden van de bijbehorende ontwerp- en ontwikkelinspanning.

TIP: Besteed met een deel van het agile team iedere dag 10 minuten om stories te concretiseren, en zo de volgende sprint voor te bereiden.

User stories

user storiesEen story is geredeneerd vanuit een user benefit, en ziet er bijvoorbeeld zo uit:

As a user I want to see all previous orders so that I can easily reorder.

Het is belangrijk dat je met echte verhalen werkt, omdat je dan veel duidelijker de user benefit voor ogen hebt. Door een story wordt duidelijk waarom we een bepaalde feature willen. Stories dwingen de klant ook om na te denken over waarom zij een bepaald feature willen.

Het is goed om duidelijke afspraken te maken wanneer een story klaar is, om tegenvallers aan het eind van de sprint te voorkomen. Hiernaast zie je een voorbeeld van een Definition of Done-blad.

Onze ervaring

In sommige situaties kunnen klassieke user stories uitlopen op semantische discussie en onenigheid tijdens de sprint over hoe die user need beantwoord moet worden. In die gevallen zien stories er daarom zo uit, bijvoorbeeld:

  • Layout en navigatie
  • Homepage
  • Product detailpagina
  • Ingewikkelde functionaliteit X

Tasks

AH task

Elke story wordt voor aanvang van de sprint opgesplitst in taken. Typische taken zijn:

  • Wireframe schets
  • Business rules opstellen
  • Bellen met X
  • Paper prototypen & testen

Zolang taken nog niet worden uitgevoerd, hebben ze geen eigenaar. De teamleden kiezen zelf welke taken ze gaan uitvoeren en voegen dan hun naam toe aan de taak.

Scrum board

Het Scrum board geeft het grote overzicht over alles wat nog gedaan moet worden, en al gedaan is. Hiernaast zie je een aantal voorbeelden van scrum boards. Een goed onderhouden scrum board is meer waard dan duizend Excel sheets!

scrum board

De belangrijkste onderdelen van het scrum board zijn:

  • Stories en tasks statusgebied – Welke tasks zijn nog in voorraad, welke zijn checked out (‘wordt op dit moment aan gewerkt’), en welke zijn done.
  • Burndown chart – De tijdens de daily sprint besproken voortgang wordt aan de hand van de eerder gedane schattingen omgezet in een aantal dagen. Dit wordt van de werkvoorraad afgetrokken, en zo ontstaat een mooie rechte lijn naar beneden. 😉
  • Unplanned items – Gebruik je hoofd niet om te onthouden. Bedenk je iets dat “ook nog moet gebeuren” maar dat nog nergens is opgeschreven? Maak een post-it en plak hem bij de unplanned items. Scrum master of projectleider zorgen ervoor dat ze in de workflow een plek krijgen.
  • Evaluatieblad – Scrummen is leren, ieder project, iedere dag opnieuw. Na iedere sprint, maar vaak ook al tijdens de daily scrum, kijken we wat er beter kan, wat al beter gaat, en wat helemaal top gaat.

Onze ervaring

Sommige scrummasters vinden het handig om een extra kolom in het statusgebied toe te voegen: keuring door product owner. De product owner, meestal de klant, ziet dan welke taken op zijn keuring wachten. Hij of zij kan ze bespreken en vervolgens naar rechts (done) of naar links (checked out) verplaatsen.

Wordt vervolgd…

Tot zover dit tweede deel. In het eerste deel heb ik uitgelegd wat het betekent om een website te ontwerpen met agile design en scrum. In het volgende en laatste deel ga ik in op de teamsamenstelling en overlegvormen die wij hanteren. Met onder andere mijn pleidooi om de product owner, oftewel de klant, volledig in het Scrum-team op te nemen. Tot dan!