Development

Software-ontwikkeling
DNA helix

Ons DNA

Onze natuurlijke code kan ons veel leren over de bouw van programmacode.

© CC BY-SA 2.0 - Flickr.com Karl-Ludwig Poggemann
4 maart 2019

“DNA, dat is de programmacode van je lichaam”. IT en software zijn zo ingeburgerd in onze taal en cultuur dat we moeilijke zaken uitleggen aan de hand van computermetaforen. In werkelijkheid is DNA veel eleganter dan de code die wij programmeren. DNA beschrijft namelijk direct hoe ons lichaam eruitziet, maar vooral hoe ons lichaam ontwikkelt, herstelt en zelfs weer afgebroken wordt. 

Uw DNA resulteert natuurlijk in uw haarkleur, kleur ogen, de vorm van uw neus en uw intelligentie. Dat doet het door te vertellen welke cellen moeten delen, verplaatsen en weer afsterven. Het vertelt welke processen die cellen moeten uitvoeren in een bepaalde fase van hun leven. Niet zozeer het eindresultaat wordt beschreven, maar de weg ernaartoe. 

In de code die wij zelf maken – programmacode – zie je op een hele kleine schaal dingen die hier een beetje op lijken. Code en scripts die nodig zijn om een ontwikkel- en testomgeving in te richten, worden nog weleens bewaard bij de code van het systeem dat ontwikkeld wordt. Nieuwe ontwikkelaars kunnen dan direct aan de slag met een omgeving die ‘zichzelf’ helemaal klaarzet om door te ontwikkelen aan dat systeem. Dat is belangrijk, want het zorgt voor een voorspelbare en reproduceerbare manier van ontwikkelen – en dat maakt dat je makkelijker aanpassingen doorvoert. 

Embryologie is het vakgebied waar je DNA echt aan het werk ziet. Hoe een bevruchte eicel via een hele reeks aan stadia steeds meer mens wordt, heeft ons al eeuwen geïntrigeerd. Als je alle stadia naast elkaar ziet, dan lijkt het alsof de evolutie nagespeeld wordt. Eerst een klein visje, met een staart en kieuwen en al, dan pootjes als een hagedisje, dan een zoogdiertje en dan steeds meer een mensje. In werkelijkheid heeft dat niet zoveel met evolutie te maken. Het gaat eigenlijk meer om hergebruik. Simpele organen worden in de loop van dat proces hergebruikt en omgebouwd tot complexere organen. Kieuwbogen worden gedeeltelijk weer afgebroken en omgebouwd tot onze gehoorbeentjes. Met maar een heel beperkt verschil in DNA worden hele verschillende soorten ‘gecodeerd’. 

Als onze systemen ook maar een beetje geschiedenis en volume hebben, dan zie je in de onderliggende programmacode ook een vorm van embryologie. Die systemen zitten vol met code die eigenlijk bedoeld was voor eerdere versies van dat systeem. Of, meer aan de buitenkant, namen van knoppen en functies die in een eerdere versie logisch waren maar ondertussen achterhaald, onlogisch en onverklaarbaar zijn. Maar ja, dat zijn allemaal voorbeelden van ongewenste verbanden met het verleden, met oudere versies. We schamen ons daarvoor. We willen heel graag stukken systeem hergebruiken, maar als die hergebruikte onderdelen onderweg veranderen, dan vinden we dat maar lastig. Verandering zit ons maar in de weg. 

In de natuur draait alles om groei, aanpassing, ontwikkeling. Wij blijven maar steken in een statische wereld, met de illusie dat een systeem één keer gebouwd wordt, dan klaar en perfect is en daarom nooit meer zou hoeven veranderen. Zo zitten we blijkbaar in elkaar – maar het zit niet in ons DNA.

Magazine AG Connect

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

Reactie toevoegen