Verreweg de meeste bankzaken worden tegenwoordig online afgehandeld. Dit maakt de website tot het belangrijkste ‘gezicht’ naar buiten en een zeer bedrijfskritisch platform. Ook neemt de concurrentie snel toe door de opkomst van nieuwe, online banken. Je ziet dan ook dat banken continu bezig zijn met ontwikkeling en innovatie en daarbij nieuwe functionaliteit toevoegen om de klant online nog beter van dienst te zijn. Het ontwikkelen en zeker het testen van nieuwe functionaliteit kan echter nogal tijdrovend zijn. Wat als je deze processen nou eens zou kunnen versnellen? In deze blog beschrijf ik hoe Agile en DevOps hierbij kunnen helpen.

Je ziet dat veel bedrijven momenteel de beweging maken richting kortcyclisch werken (Agile). In plaats van maandenlange projecten gaat men werken in korte sprints. Projecten worden opgeknipt in kleine individuele delen die los van elkaar opgeleverd kunnen worden. Daardoor wordt een organisatie flexibeler en kan men veel sneller inspelen op de wensen en feedback van een klant.

Combinatie DevOps en Agile

In grote projectorganisaties zie je nog een tweede ontwikkeling: de splitsing tussen development en beheer. Voorheen leverde een project een stuk software op en werd het overgegeven naar de beheer-afdeling die het in ontvangst nam en ging draaien. Eventuele problemen tijdens het draaien van de software konden pas in een volgende release (dus na een aantal maanden) opgelost worden. Soms werd zelfs de project-organisatie opgeheven en was er helemaal niemand meer beschikbaar om fouten op te lossen. Om dit te voorkomen is het idee voor DevOps ontstaan; DEVelopment en OPS (beheer). Door DevOps in combinatie met Agile toe te passen werken de afdelingen veel efficiënter samen en kan een probleem in productie direct in een volgende sprint opgelost worden.

Een ideale situatie, maar hier komen ook enkele uitdagingen bij kijken. Sprints duren kort, dus alle disciplines van het ontwikkelen moeten snel afgehandeld worden (of worden weggelaten). Dus zaken als code schrijven, testen en documenteren moeten allemaal doorgaans binnen twee weken worden uitgevoerd. Als je echter alleen al kijkt naar performance testing, lijkt dit onmogelijk. Een volledige test duurt al snel een week, wat doorgaans te lang is. Bovendien zou dat elke sprint weer moeten, wat zowel erg inefficiënt als duur is.

Kortcyclische performance testing

De oplossing hiervoor is kortcyclische performance testing. Dit heeft verschillende voordelen. Ik licht dit toe aan de hand van een voorbeeld: stel je wil als bank specifieke functionaliteit voor internetbankieren toevoegen. De ontwikkelfase zit erop en het is tijd om de functionaliteit te testen. Dan kun je op sprint-niveau, dus alleen de gewijzigde functionaliteit, testen. Feedback kan direct doorgespeeld worden aan de developer die vervolgens aanpassingen doorvoert. Daarnaast kan op scrum-teamniveau worden getest. Daarbij worden alle tests die op sprint-niveau zijn ontwikkeld gecombineerd tot een testset. Deze set dekt alle functionaliteit waarvoor het team verantwoordelijk is. Denk bijvoorbeeld aan een team dat een nieuwe mobiele app voor bankieren ontwikkelt; na elke sprint wordt de performance-testset uitgebreid zodat uiteindelijk een set tests ontstaat die de hele app testen.

Als laatste kun je op overkoepelend niveau testen. Het testen van losse onderdelen zoals het uitvoeren van een overboeking, zegt iets over de performance van dat onderdeel, maar uiteindelijk moeten alle onderdelen samen in productie draaien. Elk onderdeel gebruikt systeem-resources (CPU, geheugen, etc) en zal daarmee andere onderdelen beïnvloeden. Het testen van de combinatie is dus belangrijk, met name om te zien of alles samen goed werkt en om te weten wat de gebruikerservaring is. Hierbij worden de test sets van alle scrum-teams gecombineerd en worden de testen periodiek uitgevoerd.

Dit zijn enkele voorbeelden van agile werkwijzen (die doorgaans in combinatie met DevOps worden toegepast) die het proces van idee naar deployment aanmerkelijk versnellen. En dat is niet alleen fijn voor de klant, ook de organisatie bespaart tijd en resources.

 

CDN