Agile Architectuur / Architectuur /   |   15 december 2015

Wendbaarheid voor alles

Avatar foto Paul Mulder

De laatste jaren ligt de focus bij organisaties steeds meer op wendbaarheid. Snel kunnen anticiperen op ontwikkelingen in de markt, de politiek en de techniek. Dat vinden veel bestuurders tegenwoordig belangrijker dan sturen op kosten. Opvallend is dat bestuurders steeds vaker een korte termijn visie lijken te hebben. Twee tot vier jaar vooruit kijken is wel het maximum. Wat daarna komt ‘zien wij dan wel weer’.

Enerzijds is dat te verklaren vanuit de gedachte dat veel bestuurders niet veel langer dan drie à vier jaar op dezelfde plek zitten. Het is van belang om succesvol te zijn bij het halen van korte termijn doelstellingen. Als architect denk je vaak verder vooruit en heb je dikwijls moeite met bestuurders die geen lange termijn visie lijken te hebben.

Anderzijds is een korte termijn visie zo gek nog niet. In de huidige maatschappij is het wel verstandig om je te richten op successen die op korte termijn behaald kunnen worden. Maatschappelijke en economische ontwikkelingen blijken immers steeds minder goed voorspelbaar te zijn.

Wendbaarheid is essentieel om als onderneming te kunnen overleven. Ook van overheidsinstanties en non-profit-organisaties wordt verwacht dat ze snel kunnen anticiperen op veranderende behoeftes als gevolg van maatschappelijke ontwikkelingen. Het is logisch dat daarom steeds meer agile ontwikkelmethoden worden ingezet voor systeemontwikkeling. Het doel is het leveren van businesswaarde in een korte time to market. voor IT-voorzieningen. Lange ontwikkeltrajecten worden vermeden, waarmee tegengegaan wordt dat het systeem dat uiteindelijk wordt opgeleverd meteen al achterhaald is en dus geen waarde oplevert. Echter, alleen met agile ontwikkelen van nieuwe functionaliteit ben je er niet. De architectuur moet de wendbaarheid ook ondersteunen.

De laatste decennia hebben architectuurafdelingen sterk ingezet op standaardisatie en generieke functionaliteit. Generieke componenten of bouwblokken kunnen door verschillende business lines worden gebruikt en gecombineerd tot specifieke oplossingen. Business lines zijn bijvoorbeeld verzekeringslabels bij een verzekeringsconcern of op doelgroepen gerichte organisatieonderdelen bij overheidsinstellingen. De business driver was dikwijls kostenreductie en de IT-driver was rationalisatie. Dit laatste was vooral gericht op het vervangen van meerdere systemen met vergelijkbare functionaliteit door één generiek systeem.

De wendbaarheid wordt door die ontwikkeling echter maar zelden verbeterd. Business lines zijn vaak gericht op een bepaalde doelgroepen. Om die maximaal te kunnen bedienen wordt specifieke, onderscheidende functionaliteit gevraagd. Generieke componenten combineren en configureren tot specifieke functionaliteit blijkt nogal tegen te vallen in de praktijk. Vaak zie je dat generieke componenten uitgebouwd worden tot zeer complexe applicaties als gevolg van wensen vanuit verschillende business lines. Specifieke wensen worden niet gehonoreerd, omdat het verplichte gebruik van een generieke oplossing dat in de weg staat.

Dit frustreert de wendbaarheid van de business lines. Aanpassen van generieke componenten raakt alle gebruikers. Dit vergt veel afstemming, veel afhankelijkheden in releaseplanningen en veel testen. Business lines hebben last van wijzigingen als gevolg van wensen uit andere business lines. Dit terwijl ze andere prioriteiten hebben en hun budget en capaciteit liever aanwenden om eigen veranderingen door te voeren.

Willen wij maximale wendbaarheid, dan moeten wij durven afstappen van sturen op standaardisatie en generieke oplossingen. Dat betekent overigens niet dat je deze uitgangspunten volledig moet loslaten. Ze mogen echter de wendbaarheid niet frustreren.

Standaarden en generieke componenten zijn prima te gebruiken voor functionaliteit die niet of nauwelijks aan verandering onderhevig is en ook werkelijk generiek is. De opzet van een grootboek verandert bijvoorbeeld niet vaak. Anders wordt het als het op specifieke doelgroepen gerichte functionaliteit gaat. Als je dit met alleen generieke componenten kunt invullen, dan kun je je afvragen waarom je verschillende doelgroepen hebt onderkend. Optimale klantbediening vraagt om optimaal daarop afgestemde applicaties. Als je snel wilt inspelen op nieuwe wensen of technologische mogelijkheden, dan wil je wijzigingen kunnen doorvoeren zonder met andere business lines te hoeven afstemmen en concessies te doen. Ook wil je niet wachten op de voor alle business lines geschikte generieke oplossing.

Dit vraag om een architectuur waarbij zorgvuldig is afgewogen welke componenten generiek of specifiek zijn en welke bovendien gedeeld gebruikt worden. Soms is al veel flexibiliteit te creëren door de mogelijkheid te scheppen verschillende versies van generieke componenten naast elkaar in productie te kunnen nemen. Dat voorkomt moeizame releaseplanningen. Versiebeheer wordt wat complexer, maar hogere wendbaarheid maakt veel goed.

Bespreek de mogelijkheden
3