Complexiteit

Alles is tegenwoordig digitaal. We kunnen langzamerhand niet meer zonder onze ICT. Dit is voor zowel ons privé-leven (denk aan de thuis PC, het internet, digitale televisie en digitale (mobiele) telefonie) als  zakelijk (denk aan de core systemen die ieder bedrijf heeft, email en telefonie) een waarheid. De connectiviteit (middels internet) van systemen is daarbij de laatste jaren enorm toegenomen. Als gevolg hiervan kampen we dagelijks met de gevolgen van deze complexiteit.

ITIL

Complexiteit leidt (uiteindelijk) tot verstoringen van de dienstverlening. Dit heeft uiteindelijk geleidt tot de ITIL (Information Technology Infrastructure Library) beheer methodiek. Als je weet dat 80% van alle wijzigingen leiden tot verstoringen, dan is het gecontroleerd doorvoeren van die wijzigingen een goede manier om de kwaliteit van de dienstverlening te verhogen. Dit is in mijn ogen dan ook de belangrijkste reden ITIL te omarmen. Het is overigens niet de enige reden, want een ander voordeel is dat ITIL alle IT beheer processen raakt en dat zorgt ervoor dat je compleet bent – ook niet geheel onbelangrijk.

Haat liefde verhouding

complexityHet bouwen van systemen / applicaties en het kopplen daarvan kan een complex geheel worden. Iets is complex wanneer we de afhankelijkheden en consequenties niet langer kunnen overzien. Dit is dodelijk als we weten dat 80% van alle verstoringen uit wijzigingen voortkomen. Hoewel het bouwen van complexe systemen en applicaties een uiterst interessante bezigheid kan zijn, is het niet bevorderlijk voor de kwaliteit van de dienstverlening. Veel ICT-ers weten dit inmiddels. En hoewel we allerlei technieken en methoden toepassen om de complexiteit te verminderen, “trappen we er elke keer opnieuw in”. Je zou kunnen stellen dat er sprake is van een “haat liefde verhouding” tussen ICT-ers en complexiteit. We kunnen niet zonder, het motiveert ons en frustreert ons tegelijkertijd.

"It's simplicity that's difficult to make" 
(Bertholdt Brecht).

Methoden en technieken

Om de complexiteit binnen de ICT te verminderen en de situatie beter overzichtelijk te maken worden verschillende methoden en technieken toegepast. Zonder uitputtend te willen zijn denk ik aan de volgende mogelijkheden:

  • ITIL als beheer methodiek, alle beheerprocessen in kaart en wijzigingen gecontroleerd doorvoeren,
  • PRINCE2 als projectmethodiek, meer grip krijgen op het project door zaken beter te definieren,
  • SCUM en AGILE methodieken om efficiënter software te ontwikkelen,
  • OTAP (Ontwikkel, Test, Acceptatie en Productie systemen) methodiek om wijzigingen beter gecontroleerd en getest door te kunnen voeren (feitelijk is dit een splitsing van het beheerproces en het bouwproces – ook wel de “dev-Ops devision” genoemd),
  • Virtualisatie als methode om functionaliteit van elkaar te isoleren
  • Enterprise Service Bus, een techniek waarmee alle communicatie tussen applicaties en platformen via een centraal kanaal verlopen (feitelijk betreft dit isolatie van de onderlinge communicatie),
  • Open standaarden, open standaarden (het beste vertegenwoordigd in open source software) zijn een goede manier om zeker te zijn dat informatie toegankelijk is en blijft en dat systemen gekoppeld kunnen worden

Design

Uiteindelijk is het beperken van complexiteit een feature die vanaf het eerste begin een leidend design principe zou moeten zijn. Bij de eerste versie van het ontwerp zou de ontwerper zich moeten afvragen, “kan het eenvoudiger?” waarna het ontwerp herzien wordt. Hierna vraagt hij zich nogmaals af, “Kan het nog simpler?”.

Fools ignore complexity; pragmatists suffer it; 
experts avoid it; geniuses remove it. 
(Alan Perlis).