Overslaan en naar de inhoud gaan

Flattening the curve

Teken een assenstelsel. Horizontaal de grootte van systemen. Links een minimaal systeem dat helemaal niets voorstelt, rechts het meest reusachtige systeem dat je kent. En op de verticale as staat de energie die nodig is om een wijziging in die systemen door te voeren. Stel je voor dat je in systemen van verschillende groottes dezelfde wijziging zou moeten doorvoeren. Welke lijn trek je door dit assenstelsel? Een horizontale rechte lijn – een wijziging kost altijd evenveel energie?
Curve
© CC0 - Pexels.com
CC0 - Pexels.com

Een rechte lijn die schuin omhoogloopt? Een lijn die exponentieel omhooggaat?

Grote IT-projecten willen nog weleens misgaan. Het bouwen van een groot systeem is ook niet niks.

Ik ga ervan uit dat het werk aan zo’n systeem exponentieel van aard is. Dat wil zeggen: dat eenzelfde wijziging aan een twee keer zo groot systeem méér dan twee keer zo veel energie kost. Waarom? Omdat de onderdelen van een systeem onderling afhankelijk zijn. Als je één zo’n component uitbreidt of aanpast, dan zijn er componenten daaromheen die ook aangepast moeten worden. Een groter systeem kent meer componenten. Een uitbreiding of wijziging raakt dus potentieel meer componenten die allemaal aangepast en hertest moeten worden. En dan is er nog de procesmatige ballast die steeds groter wordt. Elke aanpassing vergt dat je een deel van de bestaande requirements, testcases en documentatie moet bijwerken. Werken er twee keer zo veel mensen aan het project, dan heb je méér dan twee keer zo veel overleg tussen al die mensen.

Projectmatig zijn we meestal niet klaar voor de exponentiële aard van ons werk. We plannen een project, hakken het werk in stukken en gaan ervan uit dat even grote stukken werk gedurende de hele levensloop van het project evenveel tijd nodig zullen hebben. De werkelijkheid zal helaas meestal anders zijn. In extreme gevallen kost het bouwen van de laatste onderdelen van het systeem 'oneindig' veel energie, zodat het onrealistisch is om het systeem af te maken. Er is niets anders te doen dan die laatste werkzaamheden op te geven. Het project kan niet afgemaakt worden.

Er zal trouwens wel een punt komen waarop het werk niet meer exponentieel is. Zodra systemen dusdanig groot worden dat ze feitelijk een ecosysteem van systemen gaan vormen, worden de afhankelijkheden en interacties weer zwakker. De exponentiële curve zal dus eigenlijk wel een s-curve zijn, eentje met een plafond. In de praktijk komen we daar alleen niet zo vaak. Laten we voor de zekerheid maar uitgaan van exponentiële projecten.

Wat kunnen we er aan doen? Flattening the curve! Een exponentiële curve hoeft helemaal niet zo erg te zijn, als hij maar heel erg uitgerekt wordt – dan lijkt het net een horizontale of misschien lineair oplopende lijn. Die exponentiële lijn 'platslaan' doe je door alle onnodige afhankelijkheden er rigoureus uit te halen, door continu te bezuinigen op onnodige processen, door zo snel en veel mogelijk afscheid te nemen van de ballast die je met het project meezeult. Daar moet je niet mee beginnen als je aan het einde van die curve bent, dat doe je vanaf dag één.

Magazine AG Connect

Dit artikel is ook gepubliceerd in het magazine van AG Connect (septembernummer, 2020). Wil je alle artikelen uit dit nummer lezen, klik dan hier voor de inhoudsopgave.

Reacties

Om een reactie achter te laten is een account vereist.

Inloggen Word abonnee

Bevestig jouw e-mailadres

We hebben de bevestigingsmail naar %email% gestuurd.

Geen bevestigingsmail ontvangen? Controleer je spam folder. Niet in de spam, klik dan hier om een account aan te maken.

Er is iets mis gegaan

Helaas konden we op dit moment geen account voor je aanmaken. Probeer het later nog eens.

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in