De basis van agile softwareontwikkeling
Agile softwareontwikkeling is, op de hieronder genoemde uitzondering na, iteratief. Een iteratie is een korte tijdsperiode van een maand tot slechts één week. De gemiddelde lengte van een iteratie bij verschillende teams ligt naar mijn ervaring tussen een maand (de Scrum-standaard) en één week, wat mijn aanbeveling is voor een XP-cyclus. Ik denk dat de huidige trend twee weken is.
Maar ik dwaal af. Het belangrijkste element in Agile, de Conditio sine qua non, de noodzakelijke voorwaarde, de vereiste, datgene wat je in ieder geval moet doen, is:
Het team moet aan het einde van elke iteratie werkende, geteste en geïntegreerde software opleveren; in Scrum zou je zeggen dat het "done-done" moet zijn
Daar valt niet aan te ontkomen. Je kunt niet slechts om de sprint iets opleveren. Je kunt ook geen bijna afgeronde software opleveren om die vervolgens in de volgende iteratie te fixen. Probeer je er niet onderuit te draaien. Je moet software opleveren.
Een uitzondering
Als je dacht dat je hier een manier zou vinden om eronderuit te komen, heb je het mis. De enige uitzondering op het leveren van werkende software in elke iteratie is om zelfs nog vaker iets te leveren. Enkele topteams werken momenteel in een soort Kanban-modus, waarbij ze features in wezen continu opleveren, doorgaans om de paar dagen.
Sorry, daar kom je niet onderuit
Echte, werkende, geïntegreerde, geteste, done-done software – en dat in elke afzonderlijke iteratie, of gewoon permanent. Op weg daarnaartoe zul je moeten leren wat dat allemaal betekent, en daarbij ongetwijfeld op moeilijkheden stuiten. Maar je zult ook merken dat "done" meer betekent dan je dacht. Natuurlijk omvat het ook de gebruiksaanwijzing. Natuurlijk omvat het ook gebruikerstrainingen. Natuurlijk omvat het alles waarvan je dacht dat het niet mogelijk was.
Niemand is perfect
Je team is niet perfect en zal dit waarschijnlijk niet in elke iteratie allemaal voor elkaar krijgen. Wat je echter zeker moet doen als je nog ruimte voor verbetering hebt, is iets dat in Scrum "Inspect & Adapt" wordt genoemd. Kent Beck zei het ooit zo: "Vind je grootste probleem, los het op de XP-manier op en herhaal het geheel."
Als je daar hulp bij nodig hebt, haal dan die hulp.
En nu: begin die software te leveren!
Deze tekst is afkomstig van de blog van Ron Jeffries en is door ons naar het Nederlands vertaald.