Hoe houden we onze leefomgeving beheersbaar?

 

Gelukkig wordt onze leefomgeving gekenmerkt door allerlei wetmatigheden. Zonder dat zou het een chaos zijn en zouden we er niet kunnen leven. Er bestaat een wetmatigheid die grote invloed heeft op de beheersbaarheid van onze activiteiten. Toch zijn we ons niet erg bewust van deze wet. De dingen die in onze omgeving een rol spelen beïnvloeden elkaar via de relaties die tussen deze dingen bestaan. Wat er gebeurt of gebeuren kan hangt sterk af van het soort relatie waarlangs de beïnvloeding plaats vindt. Wanneer het aantal samenhangende dingen toeneemt dan neemt zonder verdere maatregelen het aantal relevante relaties nog sneller toe. Tussen tien dingen kunnen maximaal 99 relaties relevant zijn. Tussen duizend dingen bestaan maximaal 999000 relevante relaties. Om te weten wat er gebeurt, is het nodig om te weten welke relaties relevant zijn en wat zij betekenen. De toegenomen complexiteit vergt tijd, kennis en inspanning. Zonder maatregelen wordt de situatie al snel onbeheersbaar. Als de benodigde bronnen opdrogen dan lopen de kosten nog veel harder op dan de complexiteit die de ellende in eerste instantie veroorzaakt.

 

De natuur heeft ons geleerd dat dit dilemma opgelost kan worden door complexe organismen uit onderdelen op te bouwen en de onderdelen via specifieke verbindingen aan elkaar te koppelen. Deze oplossing kan de beheersbaarheid van complexe systemen gemakkelijk met ordegroottes verbeteren. De mens heeft geleerd om deze remedie met succes toe te passen. Zonder deze maatregel zouden auto’s, radio’s, computers en vliegtuigen onbetaalbaar zijn. Om ze bestuurbaar te houden hebben grote organisaties een hiërarchische structuur, waarin de afdelingen een grote zelfstandigheid krijgen.

 

Toch wordt er nog steeds tegen de aanbevelingen van de relatiewet gezondigd. Het fuseren van complexe organisaties gaat lijnrecht in tegen deze richtlijn. Om die reden gaat het dan ook vaak genoeg fout of het levert niet het verwachte voordeel op.

 

Er is zelfs een gebied dat zeer duidelijk aantoont dat het slecht afloopt wanneer de raad van de relatiewet genegeerd wordt. De wijze waarop software ontwikkeld en gebouwd wordt maakt geen gebruik van de modularisatie die op hardwaregebied juist zulke grote voordelen gebracht heeft. Hardware wordt geheel of voor een aanzienlijk deel uit onderdelen opgebouwd. Hetzelfde geldt voor fietsen, auto’s, huizen en zo voort. In plaats daarvan lijkt de structuur van complexe softwareproducten nog het meest op een stapel lappendekens, waarbij de lappen met lange warrige draden aan verbonden zijn. Dientengevolge is de complexiteit vaak vele ordegroottes groter dan noodzakelijk en is de beheersbaarheid droevig laag. Het gevolg is dat zulke producten erg fragiel zijn en de goede werking ervan niet kan worden gegarandeerd.

 

Het merkwaardige is dat de gebruikers van deze softwareproducten met deze situatie hebben leren leven en de toestand accepteren. Dat software zoveel anders gebouwd wordt is historisch gegroeid. Het is door verkeerde keuzes in de zeventiger jaren van de twintigste eeuw fout gelopen doordat men de gegevens en de dingen die er mee werkten is gaan scheiden en de ontwerptechnologie daar steeds verder op ingericht heeft. Door deze keuze is het zeer moeilijk geworden om software op modulaire wijze te bouwen. Dat zegt helemaal niet dat het onmogelijk is om software wel modulair te bouwen. Dat laatste zou echter betekenen dat het softwaremaakproces drastisch aangepast zou moeten worden. De softwaremakers ondervinden geen stimulans om dat te doen. Zij verdienen veel aan de huidige toestand. Het zijn de gebruikers van complexe software die lijden. Zo wordt het vernieuwingsproces in de hightech industrie ernstig belemmerd doordat de tijd en de kosten van de ontwikkeling van complexe ingebedde software nagenoeg exponentieel stijgt met het aantal functie-elementen dat de software moet behandelen. Zie het artikel “Beheersbaarheid” voor dieper gaande informatie.