Als reactie op de klassieke waterval-ontwikkelmethode die ervaren werd als bureaucratisch, traag en bekropen heeft men in 2001 een nieuw manifest ontwikkeld. Het resultaat was het Agile Manifest:
Agile wordt vooral toegepast in situaties die heel herkenbaar zijn bij het ontwikkelen van software, namelijk:
Terwijl de Agile methodologie kan toegepast worden op product ontwikkeling en zich niet enkel beperkt tot software ontwikkeling, is Scrum speciaal ontwikkeld voor software ontwikkeling.
Scrum is een flexibele manier om softwareproducten te maken. Er wordt gewerkt in multidisciplinaire teams die in korte sprints, met een vaste lengte van 1 tot 4 weken, werkende software opleveren. Scrum is een term die afkomstig is uit de rugbysport. Bij een scrum probeert een team samen een doel te bereiken en de wedstrijd te winnen. Samenwerking is heel belangrijk en men moet snel kunnen inspelen op veranderende omstandigheden.
Tijdens iedere sprint is het essentieel dat deze constant blijft, de vooropgestelde planning en prioriteiten gevolgd worden. Alles wat na de sprint gebeurd staat volledig ter discussie en alles wat ontstaat tijdens die 2 weken kan best wachten tot wanneer die sprint afgelopen is. Zijn dit waardevolle punten dan komen ze bovenaan de lijst voor de volgende sprint.
De product backlog is een overzicht van de items die nog gedaan moeten worden. Dit wordt in andere software ontwikkelmethoden wel de requirements genoemd, de eisen en wensen. Het bestaat uit alles wat van belang is om mee te nemen in de sprint zoals eigenschappen, fouten uit vorige releases, niet functionele eisen zoals navigatie, kleur, “look and feel”, snelheidseisen etc. De product-owner is de eigenaar van deze lijst en bepaalt de volgorde. In principe staan de belangrijkste bovenaan, maar ook een andere volgorde is mogelijk. Hierbij spelen zaken als risico, waarde voor de organisatie, datum waarop iets nodig is, wettelijke eisen, etc. De zaken op de lijst zijn normaal gesproken in de vorm van een user story. Hierin staat WAT er gemaakt moet worden WAAROM en voor WIE. Iedereen kan er items aan toevoegen, maar de product-owner is en blijft verantwoordelijk. Er staan ook ruwe schattingen bij van de waarde voor de organisatie en van de ontwikkelkosten.
In de sprint backlog staat wat er deze sprint wordt gedaan. De sprint backlog wordt samengesteld uit de bovenste items van de product backlog. Het ontwikkelteam bepaalt wat ze kunnen doen gebaseerd op hun snelheid in de vorige sprints. Gebruikelijk is dat de items op de sprint backlog geschreven worden op post-its. Er zijn dan drie kolommen, “to do”, “in progress”, “done”. Soms met een vierde kolom “testing”. Zodoende is voor iedereen duidelijk hoe het ermee staat. Het ontwikkelteam bepaalt zelf wie wat doet, of eigenlijk kiezen de leden zelf wat ze (kunnen en willen) oppakken van de todo-lijst. Dit bevordert dat het team zich ermee verbonden voelt, dat ze zich er voor willen inzetten, dat het hun product wordt. Er kunnen na de start geen items meer toegevoegd worden aan de sprint, behalve door het ontwikkelteam zelf. Nadat de sprint klaar is wordt de product backlog nog eens tegen het licht gehouden en kunnen prioriteiten en dus de volgorde wijzigen.
De Product-owner (product eigenaar) is de opdrachtgever / klant. Hij heeft het meeste belang bij het (software)product dat gemaakt wordt. Hij zorgt dat de rekening betaald wordt. Hij beheert ook de product backlog, hij bepaalt wat er moet gebeuren en in welke volgorde. In principe wordt begonnen met het belangrijkste, waar het meeste voordeel mee te behalen is, wat boven aan de product backlog staat.
Het ontwikkelteam is multidisciplinair samengesteld en is verantwoordelijk voor het afleveren van het (software)product aan het einde van elke sprint. Het team bestaat meestal uit 3 tot 9 personen. Het team organiseert zichzelf. Zij doen de analyse, ontwerp, ontwikkeling, test en documentatie en zorgen dat er aan het eind van de sprint een kant en klaar product is, dat in principe in productie genomen kan worden.
De scrum master begeleidt / helpt het team door te zorgen dat het juiste scrum proces gevolgd wordt. Hij verzorgt ook eventuele trainingen. De scrum master regelt alle vergaderingen. Hij regelt de voorzieningen zoals een werkruimte, hardware en software. De scrum master zorgt ervoor dat het team niet lastig gevallen wordt door derden die met extra eisen tussendoor komen of die bijvoorbeeld tijdelijk mensen nodig hebben uit het team.
Aan het begin van de sprint is er een sprint planning overleg. In principe worden de bovenste, belangrijkste user-stories van de product backlog in de sprint opgenomen. Het is cruciaal dat het ontwikkelingsteam de user-stories kiest die worden opgenomen, omdat zij degene zijn die zich engageren om de onderliggende taken uit te voeren. Daarom bepalen ook zij hoeveel werk kan worden opgenomen in de betreffende sprint en zijn tevens verantwoordelijk voor de inschatting van de hoeveelheid werk per user-story.
Elke dag is er de “Daily scrum” of “Stand-up”. Deze vergadering heeft de volgende richtlijnen:
Na elke sprint wordt er een sprint review meeting gehouden, hierbij toont het team wat zij verwezenlijkt hebben tijdens de sprint. Normaal gezien gaat dit gepaard met een demo van de nieuwe functionaliteiten. Hierbij worden alle punten nog eens afgetoetst met wat vooropgesteld werd tijdens de sprint planning. Deelnemers van zo’n sprint review zijn de product owner, ontwikkelteam, de scrum master en management.
Het maakt niet uit hoe goed je Scrum team is, er is altijd ruimte voor verbetering. Daarom dat er na de sprint review nog eens samengezeten wordt met het team waarbij de Scrum master aan elk lid vraagt wat het team zou moeten doen, stoppen met doen of blijven verder doen.