Agile heeft een revolutie ontketend binnen de softwareontwikkeling – en ver daarbuiten. Agile app-development heeft een hoop voordelen voor opdrachtgevers. Apps zijn bijvoorbeeld sneller klaar, voldoen beter aan de wensen van de klant en de appkwaliteit is hoger. Pinch werkt daarom sinds jaar en dag agile, hoofdzakelijk volgens de scrummethodiek. We leggen uit wat agile en scrum precies inhouden, wat de pluspunten zijn en hoe opdrachtgevers de vruchten plukken van de agile aanpak van Pinch.
(Bijna) alles wordt agile
Feitje van de dag: NASA maakte voor de Mars-rover Curiosity gebruik van Jira, een tool voor agile projectmanagement die ook door Pinch wordt gebruikt. Dat NASA agile werkt, is tekenend voor de brede omarming van deze werkwijze. Bijna negen op de tien softwareontwikkelingsteams werkt inmiddels zelfs agile.
De afgelopen paar jaar is er een forse toename geweest van zowel het aantal organisaties als het aantal functies dat agile is gaan werken. De belangrijkste redenen? Steeds meer medewerkers werken remote. En veel organisaties zien in dat agile niet alleen veel meerwaarde heeft voor
softwareontwikkeling, maar ook voor niet IT-afdelingen als finance, HR en marketing.
Agile vs. waterval
De wortels van agile liggen in softwareontwikkeling. Agile is de grote tegenhanger van de watervalmethode, die door de agile-revolutie steeds verder naar de achtergrond verdwijnt. Bij waterval verloopt het ontwikkelen als een waterval van boven naar beneden volgens een aantal fasen die na elkaar plaatsvinden. Het grootste nadeel: je kunt nauwelijks rekening houden met externe factoren zoals wijzigende eisen van de opdrachtgever. Ook kan het leiden tot veel tijdverspilling, aangezien je steeds moet wachten op de afronding van een fase voordat je met de volgende kunt beginnen.
Snel bijsturen
Bij agile (dat letterlijk ‘wendbaar’ betekent) werken de verschillende disciplines niet na elkaar, maar samen met elkaar in cross-functionele teams. Open communicatie, samenwerken en aanpassen staan daarbij centraal. In plaats van dat vooraf alles wordt uitgedacht zoals bij waterval, werken teams in kleinere etappes (‘sprints’) waarbij een bepaalde hoeveelheid werk wordt ontwikkeld, getest en geëvalueerd. Agile is iteratief: de sprintcyclus wordt steeds herhaald. Het grootste voordeel: omdat vereisten, plannen en resultaten continu worden geëvalueerd, kan het team snel bijsturen.
Scrum: populairste agile framework
Agile, dat is gebaseerd op het Agile Manifesto uit 2001, is een overkoepelende term voor een hoop methodieken zoals scrum, kanban en scrumban. Scrum is veruit het populairst: naar schatting gebruikt 95 procent van de softwareontwikkelingsteams scrum of een scrumvariant. De naam is afgeleid van rugby: bij hervatting van het spel staan teams in de scrumopstelling.
Het scrumframework omvat de volgende principes:
- De product owner creëert de product backlog, oftewel een wensenlijst die is gerangschikt op prioriteit.
- Bij het plannen van een sprint (die meestal twee tot vier weken duurt) bakent het team een deel van de top van de product backlog af, dat wordt de sprint backlog. Het team beslist hoe de sprint backlog wordt geïmplementeerd voor het einde van de sprint.
- Voordat de sprint eindigt voltooit het team het gedefinieerde werk, waarbij de voortgang dagelijks wordt besproken in een stand-up.
- De scrummaster zorgt ervoor dat het team gefocust blijft op het doel.
- Aan het einde van de sprint moet het werk voldoen aan de vooraf gedefinieerde criteria.
- De sprint eindigt met een sprint review, waarin het team de ontwikkelde features aan de klant laat zien.
- Bij het begin van de volgende sprint kijkt het team naar het volgende deel van de backlog en gaat daaraan werken.
Resultaat van deze cyclus: bij iedere sprint wordt op het einde iets waardevols opgeleverd, in de vorm van een releasebaar product. En met elke sprint wordt het product dus beter.
Agile en scrum in de praktijk
Hoe pakt een mobile development agency zoals Pinch het agile werken aan? “Wij hebben de principes van scrum geïmplementeerd die bij ons passen”, vertelt Anneke Westerhuis, die als product owner werkt en heeft gewerkt voor klanten als NRC, Qmusic, Beat the Microbead en GreenFlux.
Westerhuis: “Aan het begin van elke sprint hebben we een meeting, bij de refinement worden alle taken vastgesteld waar de teamleden mee aan de slag kunnen. Ook wordt dan de planning gemaakt: hoeveel taken kunnen we in deze sprint uitvoeren? Gedurende de sprint hebben we dagelijkse stand-ups met het team. En aan eind van elke sprint organiseren we een demo waarin we laten zien wat we hebben gedaan.”
‘Klant weet altijd wat er gebeurt’
Bij de dagelijkse stand-ups van Pinch is de klant bijna altijd aanwezig. Dat leidt tot een nauwelijks te onderschatten voordeel, legt de product owner uit: “Door de frequente contactmomenten zijn de verwachtingen over en weer altijd heel duidelijk. Je werkt continu met de klant samen en iedereen weet te allen tijde wat er gebeurt. Zo voorkom je verrassingen en is een klant aan het eind van een sprint nooit teleurgesteld over het resultaat.”
Backlog als rode draad
De backlog is eigenlijk de rode draad bij het agile ontwikkelen van apps. “In de backlog in Jira staan de taken die op termijn moeten worden gedaan. Veel taken zijn nog niet gedetailleerd, bij het refinen aan het begin van de sprint neem je alle informatie over een taak op. Ook ga je dan inschatten: aan de hand van story points bepaal je hoeveel tijd een taak kost. Na een tijdje leer je per project hoeveel story points je kwijt kunt in een sprint van twee weken.”
Tickets voor uniforme werkwijze
Tickets in Jira, oftewel de taken waar teamleden aan werken, zorgen niet alleen voor efficiëntie. “Je hebt templates voor bijvoorbeeld user stories en bug tickets. Hoe taken worden omschreven, gaat dus ook altijd volgens een bepaald stramien. Tickets zorgen er dus voor dat developers makkelijker van project kunnen wisselen omdat overal op dezelfde manier wordt gewerkt.”
Spagaat: kosteninschatting
Tegenover alle zegeningen van agile werken staat ook een uitdaging, stelt Westerhuis. “Veel klanten willen graag van tevoren weten hoeveel de app gaat kosten. Dat botst met agile werken, omdat je gaandeweg het ontwikkelen tegen nieuwe inzichten en wensen kunt aanlopen waardoor je nooit precies weet hoeveel tijd het ontwikkelen precies in beslag neemt. Bij klanten waar we de app from scratch voor moeten bouwen, spreken we toch meestal een fixed fee af, vaak met een bepaalde marge. Gelukkig levert dit nooit grote problemen op, maar wel uitdagingen waar we tijdens de sprints oplossingen voor vinden.”
Agile voor remote werken
Steeds meer organisaties hebben teams of kantoren die op een heel andere geografische locatie zitten; bovendien is het thuiswerken sinds corona niet meer weg te denken. Corona heeft er, als geluk bij een ongeluk, voor gezorgd dat het remote agile werken volwassen is geworden: organisaties hebben over het algemeen allerlei tools en best practices geïmplementeerd.
Zo ook Pinch, vertelt Westerhuis. “Tijdens corona hebben we het remote werken verbeterd. Veel mensen die eerst naar kantoor kwamen, werken nu een groter deel van de tijd thuis. Daarnaast hebben we collega’s in Groningen en Maastricht en een heel team in Málaga. Waar de Pinchers ook zitten: dankzij online stand-ups en andere meetings kunnen ze volledig meedraaien met het agile werken. Spanje is dus voor ons dus niet anders dan Nederland!”