2 minute read

Vandaag heb ik aan een project gewerkt. Alles is opgedeeld in landing, bronze, silver en gold. Zoals het hoort. Je kijkt wat er in iedere omgeving gebeurt en je ziet de tussenresultaten. Maar toch merk je dat mensen dat elke keer net anders invullen. Hoe komt dat eigenlijk?

Bij Brons, Zilver en Goud denk je toch aan sport. Je wilt de eerste plaats bereiken. Dus goud is het beste, zou je zeggen. Dat klopt ook, want daar is aan gesleuteld. Maar is hier wel sprake van een eerste plaats? Want zonder brons bestaat er geen goud. Ook geen zilver. En om goud te halen moet je zilver en brons hebben verslagen.

Wat je eigenlijk wilt, zijn metaforen die passen bij wat je aan het doen bent. Voor mensen is het handig om een gedeeld beeld te hebben van hoe alles in elkaar zit. Zo kun je samenwerken. Voor machines was het wel handig om het op deze manier te verwerken. Je moet letten op I/O, op compute en op geheugengebruik. Wat je dan doet, is data binnenhalen, er een groep bewerkingen op uitvoeren en het resultaat fysiek opslaan, zodat het geen geheugen en rekenkracht meer kost. Pas bij de volgende stap haal je het weer van opslag voor de volgende slag. Maar in een wereld met SaaS, OneLake, Spark en notebooks is die tijd grotendeels voorbij.

Ik denk dat je beter met lagen kunt werken die refereren aan een fabriek. Een fabriek heeft verschillende afdelingen en producten gaan door verschillende fases. Laten we beginnen met goederenontvangst, of gewoon ontvangst. Je ontvangt data van allerlei kanten. Het blijft in die afdeling totdat het gekeurd is. Vervolgens, als de inspectie is geweest, komt er goedkeuring en mag het verder. Dus: ontvangen. Controleren of het aangekomen is.

Navraag doen als het wegblijft. Inspecteren van de ontvangen waren en na goedkeuring doorgeven aan het volgende proces. In communicatie praat dat makkelijker. “Het zit nog vast in goederenontvang.” Ook een leek die niet veel van database-engineering weet, begrijpt dan onmiddellijk waar het ongeveer is.

Dan komen we in de productie. Hier wordt de ruwe data omgevormd tot goede producten. Eerst wordt de data verbeterd en vervolgens gecombineerd tot kwalitatief goede dataproducten. Je kunt dat, als je wilt, nog splitsen in twee: grondstofverwerking en assemblage. Vervolgens test je of de producten van goede kwaliteit zijn. Als dat het geval is, kom je in voorraad gereed product. De laatste laag is dan verpakking en logistiek. Hier zorg je ervoor dat de producten bruikbaar zijn voor de eindklant: de handleiding, de verpakking, hulp bij problemen, en de logistiek om het bij de klant te krijgen.

Uiteindelijk zie je hier een beeld ontstaan van een fabriek die data als input heeft en commerciële producten levert die op maat zijn gemaakt voor klanten.

Het voordeel van deze indeling is dat het de discussie vergemakkelijkt. Moet je een verbetering in de data doen? Productie. Wil je een betere sortering mogelijk maken of andere labels? Verpakking. Uiteindelijk kies je een structuur die past bij de omgeving waarin je zit, een structuur waar mensen een gedeeld beeld bij hebben. Het indelen in lagen is bedoeld om structuur aan te brengen. Die structuur is er om het overzicht eenvoudiger te bewaren. Het helpt ook als je ergens diep in de binnenkant bezig bent om te weten waar je bent, en wat je daar wel en niet kunt doen. De structuur ondersteunt dan de mensen die ermee werken.