Flattening the curve
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