Ik weet niet wat ik wil en ik wil het ook niet weten

,

We horen regelmatig dingen als “We weten precies wat we willen: hoe lang duurt dat om te maken?” en “We moeten eerst alles duidelijk hebben voordat we kunnen beginnen met bouwen”. In beide gevallen hebben degenen die dit zeggen ofwel het idee dat ze weten wat ze willen, of het gevoel dat ze dit precies zouden moeten weten voordat er software ontwikkeld kan gaan worden (spoiler: dat is gelukkig niet zo!).

Deze uitspraken komen dan ook voort uit het niet precies snappen wat de term “iteratie” of “iteratief” in de context van Scrum betekent en waar het voor gebruikt wordt. Bovendien wordt de term iteratief vaak gebruikt terwijl incrementeel eigenlijk beter op z’n plek is. Het zijn namelijk twee verschillende dingen, ook al lijken ze op het eerste gezicht veel op elkaar.

Iteratief of incrementeel?

Bij software ontwikkelen op een incrementele manier, weet je van te voren al exact wat je gaat maken. Vervolgens bouw je telkens een stukje van het geheel tot in detail uit. Elke increment voegt een stuk software toe en doet niets met hetgeen al gemaakt was in vorige increments. Na veel increments heb je veel software. Dit wordt als volgt geïllustreerd:

Incrementeren van de Mona Lisa (Bron: Jeff Patton)

Bij een iteratieve werkwijze gaat het anders. Je hebt van te voren slechts een globaal idee van wat je wilt gaan maken, maar nog niet precies hoe. Dit bedenk je gaandeweg, naarmate je een beter idee hebt hoe het uiteindelijke plaatje eruit gaat zien. En dit weet je op basis van feedback die je krijgt. Het is niet erg als er dingen veranderd moeten worden in een latere stap, omdat je niet alles perfect uitwerkt. Je maakt wat goed genoeg is voor nu, om vervolgens feedback te ontvangen. Je ontwikkelt met de verwachting dat het gaat veranderen. Als het wel in één keer goed is, is dat een prettig ongelukje. Hieronder staat weer een afbeelding van de Mona Lisa die bovenstaande uitleg visualiseert.

De Mona Lisa op iteratieve wijze (Bron: Jeff Patton)

In de praktijk

Bij het Agile ontwikkelen van software, passen we eigenlijk beide werkwijzen tegelijkertijd toe. Sommige onderdelen worden nieuw gebouwd en dus toegevoegd (incrementeel), terwijl andere bestaande functionaliteiten verder verfijnd en verbeterd worden (iteratief). In het voorbeeld van de Mona Lisa ziet dat er als volgt uit:

De Mona Lisa iteratief én incrementeel (Bron: Steven Thomas)

Weten wat je wil?

Om terug te komen op de inleiding van dit verhaal. De uitspraken “We weten precies wat we willen” en “We moeten eerst alles duidelijk hebben voordat we kunnen beginnen met bouwen” zijn beiden geen verstandige uitgangspunten om een software traject mee te beginnen. Je weet namelijk nooit écht wat je wilt, ook al denk je van wel. Als je de opgeleverde software eenmaal ziet, wil je het toch vaak net iets anders. En ook feedback van je gebruikers kan ervoor zorgen dat de software toch weer aangepast moet worden. Aan de andere kant kun je ook nooit van te voren alles analyseren en specificeren. Dat kost enorm veel geld en tijd. Die tijd kun je beter steken in het beginnen met bouwen en zo snel mogelijk verifiëren bij je gebruikers of je op de goede weg zit.

Conclusie

Laat het idee achterwege dat je precies moet weten wat je wilt. Als je gebruik maakt van iteraties zul je het vanzelf krijgen. Ook al wist je van te voren niet wat dit was. Johnny Rotten van de Sex Pistols verwoordde dit zo mooi:

Don’t know what I want, but I know how to get it.

Referenties:

Hoe werkt Scrum bij Procurios? 

Bekijk onze werkwijze

Labels:

Plaats een reactie

Italic en bold

*Dit is italic*, en _dit ook_.
**Dit is bold**, en __dit ook__.

Links

Dit is een link naar [Procurios](http://www.procurios.nl).

Lijsten

Een lijst met bullets kan worden gemaakt met:
- Min-tekens,
+ Plus-tekens,
* Of een asterisk.

Een genummerde lijst kan worden gemaakt met:
1. Lijst-item nummer 1.
2. Lijst-item nummer 2.

Quote

Onderstaande tekst vormt een quote:
> Dit is de eerste regel.
> Dit is de tweede regel.

Code

Er kan een blok met code worden geplaatst. Door voor de tekst vier spaties te plaatsen, ontstaat een code-block.

Niek.jpg

Niek Adam

Ontwerper, frontend-ontwikkelaar en Scrum Master. Gedreven om onze klanten zo goed mogelijk te helpen.

TimH.jpg

Tim Hofman

Developer. Architectuur in code hoog in het vaandel en altijd bezig om manieren te vinden om ons werkproces te verbeteren.

Voordat je verder gaat ...

Met onze nieuwsbrief houden we je maandelijks op de hoogte van de mogelijkheden van het Procurios Platform en de ontwikkelingen in de markt.

Schrijf je in op de nieuwsbrief

Lees ook

  1. 31 oktober 2017Scrum in het kort0 reacties
  2. 18 oktober 2017Wat is Agile nou eigenlijk?0 reacties
  3. 12 juli 2017Weerbericht vs. Scrum0 reacties
  4. 25 september 2018Het juiste doen; het juist te doen0 reacties
  5. 02 augustus 2018Column: Hoe wij werken0 reacties