Performance en security staan doorgaans alleen hoog op de prioriteitenlijst bij degenen die het testen. Ook in DevOps-omgevingen zie je dat ontwikkelaars sterk gericht zijn op het functionele aspect van hetgeen ze opleveren. Een gemiste kans, want door performance en security meer te laten leven binnen ontwikkelteams, kan niet alleen de kwaliteit van het eindproduct worden verbeterd, maar wordt uiteindelijk ook het ontwikkelproces versneld.
Vaak wordt de keuze gemaakt niet tijdens, maar pas aan het einde van een ontwikkelproces de performance en security van een applicatie te testen. Ik zie regelmatig dat dit leidt tot problemen in de productie-omgeving. Er komt in zo’n situatie meer druk op DevOps-teams om problemen, die wellicht voorkomen hadden kunnen worden, op te lossen. Gevolg daarvan is dat er aan het eind van het proces nog minder aandacht is voor het testen. Het product moet immers zo snel mogelijk live. Deze vicieuze cirkel is lastig te doorbreken, tenzij teams zich realiseren dat door performance en security in hun achterhoofd mee te nemen in het ontwikkelproces, ze in de opleverfase van het hele product juist tijd kunnen besparen.
Verrassende inzichten
Dit vereist wel een andere mindset van ontwikkelaars en betekent dat het hele team meer kennis moet hebben van deze disciplines. Ontwikkelaars kunnen dan met een performance of security bril naar hun (deel)product kijken wat tot verrassende inzichten kan leiden. Als je bijvoorbeeld als ontwikkelaar naar een (deel)applicatie kijkt, ligt de focus altijd op de ‘happy flow’ van hetgeen je oplevert: werkt het meest voorkomende pad dat de gebruiker af moet leggen vloeiend? Een security tester zal echter juist gaan zoeken naar de kwetsbaarheden hierin en naar andere paden die kunnen worden bewandeld om misbruik te maken van een systeem. Als je als ontwikkelaar al kennis hebt van de meest voorkomende kwetsbaarheden, zorgt dit ervoor dat je tijdens het ontwikkelen al heel anders naar je product kijkt.
Hoe realiseer je dit? Door testers de verantwoordelijkheid te geven om de kennis die zij in huis hebben te delen met collega’s. Zo wordt het hele team zich meer bewust van performance en security. Dit kan bijvoorbeeld door trainingen te geven aan developers en beheerders. Zo leren zij zelf na te denken over de performance-impact en de security van de (deel)applicatie. Daarmee nemen ontwikkelaars uiteraard niet de rol van de testers over, maar kunnen er wel quick wins gerealiseerd worden die aan het einde van het traject vertragingen in de livegang voorkomen.
Testen na integratie
Door de awareness te vergroten werk je toe naar een situatie waarbij performance en security, evenals functioneel testen, integraal onderdeel worden van het ontwikkelproces binnen DevOps. Je zou zelfs nog een stap verder kunnen zetten door deze testen binnen de teams geautomatiseerd uit te laten voeren. De testen na de integratie van alle componenten kunnen dan volledig worden gericht op de overall performance en security.
Dit is wellicht een ideale situatie die je in de praktijk nog maar weinig tegenkomt. Maar uiteindelijk leidt het tot een beter product dat sneller is voltooid. Ofwel een kans die organisaties met twee handen zou moeten aangrijpen.