Agile en Scrum … Twee woorden die in deze tijd tegelijkertijd zo zijn opgehemeld en verguisd. Vaak ge(mis)bruikt als synoniemen van elkaar.
Tijdens de Shared Community gingen we aan de slag met behulp van workshops. Waarom als presentator iets uitleggen als je publiek meer kan leren door het zelf te doen, dieper in de betekenis van Agile en Scrum en hoe ze aan elkaar gelinkt worden.
AGILE
Agile zijn 4 waarden en 12 principes die je kunt terugvinden op het internet (Manifesto for Agile Software Development (agilemanifesto.org)), eigenlijk meer een grote webpagina dan zelfs een website. Toch zijn er rivieren van inkt gevloeid over deze woorden, vriendschappen gevormd en gebroken over interpretaties.
De 4 waarden zijn:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
De waarden rechts zijn belangrijk, maar de waarden links zijn belangrijker. Dus je hebt ze beiden nodig om een project of product te doen slagen, maar in de correcte hoeveelheid.
De 12 principes zijn:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
De 12 principes ondersteunen de 4 waarden en komen eigenlijk neer op je gezond verstand te gebruiken.
Laat bekwame mensen zelf hun werk regelen, zorg dat de IT veel contact heeft met de Business en de potentiële gebruikers zodat er veel feedback is op wat de klant wenst en het product (software, service…) dat de IT levert. Lever aan in kleine hoeveelheden zodat je steeds aanpassingen kunt doen op de wensen van je klant of indien de markt veranderd.
Zo simpel, maar toch hebben veel bedrijven het nog steeds moeilijk om Agile op een correcte manier te implementeren.
Beschouw Agile als een filosofie waarnaar je streeft, die een leidraad is dat je helpt om een bedrijf weerbaar en beweegbaar te maken op de hedendaagse markt, maar net zoals iedere filosofie kun je ze niet direct implementeren, maar moet je acties implementeren die je filosofie ondersteunen.
Deze acties worden in Agile vertegenwoordigt door de Agile frameworks met het Scrum Framework verantwoordelijk voor 80% van alle Agile verwezenlijkingen.
Andere Agile frameworks zijn eXtreme programming (XP), Dynamic System Development Method (DSDM), Crystal, Feature Driven Development (FDD), Cynefin en nog enkele honderden anderen.
SCRUM
Scrum is het meest gebruikte Agile framework. Je vind alles hierover in de Scrum Guide (Home | Scrum Guides). De huidige versie van de Scrum Guide is 14 pagina’s lang, 12 pagina’s als je de titelpagina en de indexpagina niet meetelt.
Scrum is een lichtgewicht raamwerk dat mensen, teams en organisaties helpt om waarde te creёren door middel van adaptieve oplossingen voor complexe problemen. In het kort heeft Scrum een Scrum Master nodig om een omgeving te bevorderen waar:
- Een Product Owner het werk voor een complex probleem ordent in een Product Backlog.
- Een Scrum Team een selectie van dit werk verandert in een waardevol Increment tijdens een Sprint.
- Een Scrum Team en zijn belanghebbenden de resultaten inspecteren en zich aanpassen voor de volgende Sprint.
- Herhaal.
De 3 accountabilities zijn:
- Scrum Master: verantwoordelijk om Scrum aan te leren aan de Developers, Product Owner en Organisatie.
- Product Owner: stem van de klant, verantwoordelijk voor het maximaliseren van de waarde van het product.
- Developers: De mensen die iedere Sprint gecommitteerd zijn aan het maken van elk aspect van een bruikbaar increment.
De 5 events zijn:
- Sprint: De Sprint is de container van Scrum waarin alle andere Events plaatsvinden. Sprints hebben een vaste lengte van één maand of korter. Een nieuwe Sprint start direct nadat de vorige Sprint is afgelopen.
- Sprint Planning: Sprint Planning start de Sprint door het uit te voeren werk voor de Sprint uit te stippelen. Het resulterende plan wordt gemaakt door het gezamenlijke werk van het gehele Scrum Team.
- Daily Scrum: Het doel van de Daily Scrum is om voortgang richting het Sprint doel te inspecteren en de Sprint Backlog als nodig aan te passen. Het is een gebeurtenis van 15 minuten voor de Developers.
- Sprint Review: Het doel is om de uitkomst van de Sprint te inspecteren en toekomstige aanpassingen te bepalen. Het Scrum Team presenteert de resultaten van hun werk aan de belanghebbenden en de voortgang wordt besproken.
- Sprint Retrospective: Het doel is om manieren te bedenken om kwaliteit en effectiviteit te verhogen en in te plannen. Het Scrum Team inspecteert hoe het is gegaan met betrekking tot individuen, interacties, processen en tools.
De 3 artifacten met hun commitment zijn:
- Product Backlog met Product Doel: De Product Backlog is een levende, geordende lijst van wat nodig is om het product te verbeteren. Het is de enige bron van het werk dat door het Scrum Team gedaan wordt.
- Sprint Backlog met Sprint Doel: De Sprint Backlog is samengesteld uit het Sprint Doel (waarom), de set van Product Backlog items geselecteerd voor de Sprint (wat) en een uitvoerbaar plan voor het opleveren van het Increment (hoe).
- Increment met Definition of Done: Een Increment is een concrete stap in de richting van het Product Doel. Elk Increment is een toevoeging aan alle voorgaande Increments en grondig getoetst om ervoor te zorgen dat alle Increments samenwerken. Om waarde te creëren, moet het Increment bruikbaar zijn.
Zoals je kunt zien is Scrum een incompleet raamwerk (of kapstok) dat slechts het minimum omvat betreffende rollen, meetings en producten.
Al de rest moet het Scrum Team, met hulp van de Scrum Master, zelf toevoegen. Dit is bewust gedaan zodat iedere versie van een Scrum uitvoer perfect aangepast kan worden aan de specifieke noden van een team.
Sommige toevoegingen worden gehaald uit andere frameworks, zoals bevoorbeeld eXtreme Programming (Test Driven Development, continuous integration/continuous deployment, test automation), Kanban (Work In Progress, Cycle Time, Work Item Age, Throughput) of uit development practices (Requirement engineering, business analysis, testing, devops…).
Ongeacht wat je toevoegt aan jouw Scrum interpretatie, gebruik de Agile filosofie als leidraad zodat jouw persoonlijk framework Agile is.
Geschreven door: René G.