SynTouch Integrated Data Architecture Framework (SIDAF) organiseert het framework rond domeinen. Domeinen zijn de resultaten van een logische groepering van bedrijfsobjecten; de relevante begrippen voor jouw business waarover je data vastlegt en gebruikt. Voor SIDAF is een goed opgezet domeinmodel een belangrijke basis. Het zorgt namelijk voor decentrale en agile bedrijfsvoering, heldere governance rond data en IT-oplossingen en een goede basis voor effectieve en efficiënte data-uitwisseling. Hoe je tot een gedegen domeinmodel komt, leg ik stapsgewijs uit.
1. Businessobjecten identificeren
Om tot een domeinmodel te komen identificeren we eerst de belangrijkste business-termen, ofwel businessobjecten. Dit zijn meestal de relevante begrippen (objecten en transacties) waarmee de business te maken heeft. Denk hierbij aan klanten, facturen, contracten, betalingen etc.
2. Relaties businessobjecten aangeven
Deze begrippen leggen we vervolgens vast in een model, waarbij elk object apart wordt opgenomen. Tussen de objecten kunnen we de belangrijkste relaties aangeven om wat meer inzicht in de samenhang te krijgen. Zo kunnen we bijvoorbeeld middels een simpel verbindingslijntje aantonen dat een order bij een klant hoort.
3. Businessobjecten groeperen tot domeinen
Dit inzicht in de samenhang helpt ons om de objecten goed weer te geven en te groeperen. Dit doen we door objecten die logisch bij elkaar horen samen te nemen, bijvoorbeeld door ze te omkaderen. Deze omkaderde groepen vormen de uiteindelijke domeinen. Het is niet verrassend dat deze vaak in lijn zijn met een functionele opdeling van de organisatie.
Bij de groepsindeling behoort elk van de bedrijfsobjecten tot exact één domein. De scheiding is strikt omdat hierop de verantwoordelijkheden zijn gebaseerd. Een domein waarbinnen een object valt, functioneert als eigenaar van een object. Het is daarmee verantwoordelijk voor de beschrijving, het beheer en de kwaliteit van de data rond dit object.
4. Level objecten vastleggen
In het domeinmodel horen in principe alleen de belangrijkste objecten thuis. Dit is arbitrair. Vaak gaan we initieel uit van een top 100. In de praktijk kunnen dit er tussen de 50 en 200 zijn. Let erop dat in principe alleen de belangrijkste objecten worden opgenomen. Een object ‘product’ kan bijvoorbeeld volstaan zonder dat er noodzaak is om dit uit te splitsen naar alle productfamilies.
We noemen deze objecten de ‘Level 1 objecten’. Deze zijn de meest relevante voor de gehele organisatie. Elk van de domeinen kent weer ‘Level 2 objecten’, die wel relevant zijn voor het domein zelf maar minder daarbuiten. Elk domein kan zo een eigen businessobject-model maken, waarin naast de Level 1 ook Level 2 en wellicht zelfs nog lagere level objecten geïdentificeerd zijn.
5. Eén businessobject toekennen aan meerdere domeinen
In voorgaande stappen beschreef ik hoe een domeinmodel eenvoudig kan worden opgesteld. In theorie ziet dit er triviaal uit. In de praktijk lopen we vaak tegen uitdagingen aan. Neem bijvoorbeeld het businessobject ‘product’. Deze is erg belangrijk voor zowel de domeinen Sales, Product Ontwikkeling, Productie, Distributie en Voorraadbeheer. Waar hoort dit businessobject dan bij? Het antwoord is eenvoudig: bij alle! Maar hoe verwerk je dit dan in je domeinmodel?
5a. Kenmerken groeperen
Elk domein heeft een eigen gebruik en definitie van een ‘product’ en registreert verschillende kenmerken. Waar bijvoorbeeld voor Sales de functionele beschrijving en prijs van een product relevant zijn, zijn voor Distributie de omvang en gewicht meer van belang. We kunnen deze productkenmerken logisch groeperen en zelfs als businessobject beschouwen die gerelateerd zijn aan een product.
5b. Centraal object met basisgegevens
De extra businessobjecten zijn aan een specifiek domein toe te wijzen. Om alles met elkaar te verbinden is er een ‘basis Product’ object nodig met bijvoorbeeld alleen een productcode en productnaam. Dit ‘basis Product’ object wordt bijvoorbeeld door het domein ‘Product Ontwikkeling’ beheerd. Op deze manier kan een complex businessobject als ‘Product’ worden opgedeeld in een centraal object met basisgegevens als ‘Product-ID’ en ‘Productnaam’, dat beheerd wordt in het meest geschikte domein.
5c. Satellietgegevens
Rond het centrale object kan ieder domein zijn eigen gegevens registreren, de zogeheten ‘satellietgegevens’. Alles moet daarbij worden gehangen aan de basisgegevens om de samenhang te kunnen bewaken. Dit centrale object en de betreffende identificatie ervan is weer belangrijk voor de processen rond het lifecycle-management. Hier kun je meer over lezen in mijn vervolgblog over Business Process Management uit de SIDAF-blogserie.