De zone der wanhoop

Twee weken geleden ben ik gestart met een nieuwe, uitdagende opdracht. Het inventariseren van een complex systeemlandschap van legacy systemen om uiteindelijk een nieuw architectuur voorstel neer te kunnen leggen. Het is me opgevallen dat de mate van complexiteit die ik binnen dit project ervaar nogal varieert. Het ene moment vraag  ik me af of ik ooit wijs ga worden uit alle regelingen, afkortingen en formulieren, een paar dagen later als alles weer netjes op papier staat heb ik weer vol vertrouwen in een goede afloop.

Matt Gemmel , een freelance software ontwikkelaar en blogger, schreef in 2011 een artikel met de titel “Perceived Software Complexity”[1], oftewel “Waargenomen of ervaren software complexiteit”. Hij schrijft in zijn artikel dat elk project waar hij aan begint een zekere mate van complexiteit in zich heeft, het startpunt van de grafiek hieronder.  Als het project niet complex was zou er immers geen ondersteuning bij nodig zijn. Na de start van het project fluctueert de complexiteit die hij ervaart strek, wat sterk overeenkomt met mijn eigen ervaringen.

Direct na de start van het project neemt de waargenomen complexiteit exponentieel toe. Je wordt overladen met documentatie en medewerkers van de organisatie vragen je of je wel weet waar je aan begonnen bent. De complexiteit blijft toenemen tot het punt waarop je je afvraagt of je de opdracht überhaupt had moeten accepteren. Matt noemt dit gedeelte van de curve vrij vertaald “De zone der wanhoop (a)”.

Gelukkig komt aan deze fase snel een eind. Na het doorlezen van zoveel mogelijk documentatie en het voeren van gesprekken met experts binnen de organisatie begint zich door de bomen langzaam het bos af te tekenen (piek 1). De functionaliteiten van alle deelsystemen zijn in kaart gebracht, sommige afdelingen blijken hun werkprocessen al volledig in kaart te hebben gebracht, de zon breekt door.

Maar net op het moment dat je alles weer onder controle denkt te hebben komen de onvermijdelijke uitzonderingen om de hoek (piek 2); beslisregels die net niet op alle gevallen van toepassing zijn, componenten waarvan het onduidelijk is of ze wel of niet binnen de scope van het project vallen, nog een CRM pakket waar gegevens uit geplukt worden en ga zo maar door. In dit gedeelte van de curve (b) loopt de complexiteit dus weer op. Je raakt naar mate het project vordert ook steeds beter ingespeeld op de andere leden van het projectteam. Je weet de juiste mensen sneller te vinden en het onderlinge vertrouwen groeit. Hierdoor loopt waargenomen complexiteit aanzienlijk minder ver op als in fase a. Dat wil niet zeggen dat deze fase geen inspanning kost, maar we weten wat we aan elkaar hebben en er is vertrouwen dat we ook deze knoop uiteindelijk kunnen ontwarren.

Ons projectteam heeft inmiddels de b-fase achter de rug (piek 3). Volgens Matt zou de ervaren complexiteit nu steeds moeten afnemen. Ik heb echter het vermoeden dat er nog wel een aantal b-fases zullen volgen, maar dat is niet erg.  We gaan elke nieuwe vorm van complexiteit met enthousiasme en verwondering te lijf en elke keer zal de ervaren complexiteit sneller worden getemperd.  Uiteindelijk zullen we alle complexiteit vangen in schema’s en diagrammen die het mogelijk maken om een nieuwe, toekomst vaste architectuur neer te zetten.


[1] Matt Gemmel – Percieved software complexity: http://mattgemmell.com/2010/06/11/perceived-software-complexity/

 

Door Hilko Jacobse, Lost Lemon.

U bent hier