Datamodelleren: regels zijn een aanwijzing, niet een gebod
Datamodelleren is abstraheren van de werkelijkheid. Zoals in elk abstractieproces moet je keuzes maken. Ik merk dat mensen soms dogmatisch omgaan met de regels van een datamodelleringsaanpak wanneer ze voor een modelleringskeuze staan.
De bedenker van de aanpak heeft vaak al een antwoord bedacht. Door aanhangers of de bedenker van de methodiek, wordt dit antwoord tot enig mogelijk juiste keuze verheven. Terwijl het niet per definitie het passende antwoord is. De consequentie is dat er moeilijk onderhoudbare of lastig te begrijpen constructies worden gekozen.
In de praktijk modelleer je om problemen op te lossen. Soms ervaar je dat de regels van een datamodelleringsaanpak in het modelleren van een specifieke situatie eerder een probleem veroorzaken dan het op te lossen. Je weet dan dat je een andere keuze moet maken. Daarbij is het natuurlijk verstandig dat je eerst de voor- en nadelen van een techniek goed begrijpt voordat je jezelf vrijheidsgraden gunt.
Keuzes onderbouwen is de uitdaging
Mijn motto is ‘slechte keuzes bestaan niet, wel slecht onderbouwde keuzes’.
De motivering van een keuze is vaak belangrijker dan de keuze zelf. Dit geldt niet alleen voor een logisch of een fysiek datamodel, maar voor alle keuzes die je moet maken over de modellen heen.
Als je begrijpt waarom je voor een oplossing kiest, dan vergroot je de kans dat je de consistentie en het begrip van je datamodel op lange termijn borgt.
Datamodelleren is een lastig vak. Het consequent volgen van regels biedt veel mensen houvast.
Ik zie de regels meer als een soort checklist om na te gaan of je wel consistent blijft in je benadering. Dezelfde soort problemen los je bij voorkeur op met dezelfde soort modelleringspatronen. Niet omdat het beter is, maar omdat het begrijpelijker is. De herkenbaarheid wordt groter bij zowel gebruikers als ontwikkelaars naarmate er meer herhaalde patronen in het model zitten. Daar waar nodig wijk je af en je motiveert en toetst een alternatief patroon op voorhand.
De consequenties van alternatieve patronen beschouwen vanuit verschillende oogpunten is cruciaal voor de levensduur van een oplossing. Elk keer kun je jezelf een aantal vragen stellen, bijvoorbeeld:
- Begrijpen mijn gebruikers en analisten het model nog?
- Wat is de consequentie voor de complexiteit bij het transformeren van data naar het model toe?
- Wat is de consequentie voor de performance bij het bevragen van het model?
Voortschrijdend inzicht is geen noodzakelijk kwaad
Voortschrijdend inzicht is inherent onderdeel van het modelleringsproces. Naarmate je meer te weten komt over de materie en je meer feedback van gebruikers krijgt, wijzigt de interpretatie en daarmee het datamodel.
Daarnaast heb je in de praktijk te maken met de nukken van de gebruikte dataopslagtechnologie en analytische tools. Om deze nukken het hoofd te bieden moet je pragmatische oplossingen bedenken. In de loop van de tijd zie je dat door gebruikservaring en ervaring met technische uitdagingen de patronen verfijnen.
Wijzigingen met terugwerkende kracht zijn gevolg van voortschrijdend inzicht
Gewijzigde modelleringspatronen zijn niet alleen geldig voor toekomstige uitbreidingen van het datamodel, maar ook met terugwerkende kracht. Je borgt de consistentie van je model als je dit consequent doet.
Met terugwerkende kracht aanpassingen in je datamodel doorvoeren kost echter tijd en daarmee geld. Die investering laat zich niet direct vertalen in concreet aanwijsbaar korte-termijn voordeel. Pas op langere termijn leidt het tot een kortere time-to-market van toekomstige informatieproducten en tot lagere totale ontwikkelings- en exploitatiekosten over de levensduur van je analytische oplossingen.
Dat is lastig verkoopbaar onder de druk van deadlines, maar waar enige dogmatische vasthoudendheid wel gewenst is.