Koe melkt Boer en Applicatie gebruikt Bedrijfsproces. Wat klopt hier niet?

Informatiearchitecten zijn soms net monniken. Zelf voel ik me in ieder geval regelmatig monnik, ook al zit ik niet in het klooster, draag ik geen pij, en doe ik niet aan zelfkastijding. Dat ik me soms net een monnik voel komt vooral omdat ik regelmatig monnikenwerk aan het doen ben. In figuurlijke zin, maar desalniettemin monnikenwerk.

Wat ik dan doe is het op nauwgezette wijze vastleggen van de enterprise-architectuur binnen het procesdomein dat mij is toevertrouwd. Een secuur geduldwerkje. Mijn broeders in de organisatie doen dat voor de andere domeinen zodat er een compleet beeld van de organisatie wordt vastgelegd. Iemand moet het toch doen? Bovendien vormt architectuurvastlegging een belangrijk deel van het takenpakket van de informatiearchitect. Gelukkig vind ik het leuk werk, anders zou ik toch van kastijding kunnen spreken.

Dat vastleggen van architectuur doe ik in een architectuurtaal genaamd “Archimate“. Dit is een formele symbolentaal waarmee je op gestandaardiseerde manier de enterprise-architectuur van een organisatie kunt optekenen en vastleggen. Je kunt er imposante platen mee tekenen, waarop symbolen staan die met elkaar zijn verbonden door middel van lijntjes en pijlen. Hoe vollediger en gedetailleerder de vastlegging deste nauwkeurig zijn de analyses die ermee kunnen worden gedaan.

Archimate is een taal zoals Nederlands een taal is, maar dan veel strikter. In het Nederlands mag je bijvoorbeeld schrijven: “De boer wordt gemolken door de koe”. Daar klopt niets van maar grammaticaal gezien mag het. In het Nederlands is het om het even welk zelfstandignaamwoord wat ook maar doet met andere zelfstandige naamwoorden. Je kunt twee znw’s met elkaar in relatie brengen door middel van een werkwoord. Daar ben je heel vrij in. Er zijn alleen regels voor de manier waarop je het werkwoord dat de activiteit uitdrukt, vervoegd dient te worden. Nederlands is eigenlijk heel betekenisblind.

In Archimate gaat het juist om betekenis, maar wel eentje die zich beperkt tot enterprise-architectuur. Er kunnen alleen bepaalde zelfstandige naamwoorden worden gebruikt. Bijvoorbeeld: Bedrijfsproces en Applicatiecomponent. In archimate worden dit “componenten” genoemd. Ook kun je maar een beperkte set werkwoorden gebruiken. “Melken” zit er niet bij.

Werkwoorden leggen ook in Archimate de relaties. Er is precies bepaald welke relaties je mag gebruiken tussen welke componenten. Zo mag een Bedrijfsinformatieobject gerealiseerd worden door en Dataobject, mag een Rol een Business Service gebruiken en mag een Bedrijfsproces – in mooi Nederlands – getriggerd worden door een Business Event. Een Bedrijfsproces dat een Actor gebruikt is niet logisch, dus dat wordt ook niet door Archimate toegestaan. Door deze precieze regels worden de modellen die je in Archimate op stelt logisch en consistent. Hieronder een voorbeeldje.

Dus wie verbaasde mijn schets, eh…maar dan andersom…, toen ik ontdekte dat een Applicatiecomponent een Bedrijfsproces mag gebruiken? Dat slaat als een tang op een varken. Dat is zo onlogisch als een boer die door een koe wordt gemolken. Archimate 1.0 staat dit echter toe en zo ook het op Archimate gestoelde architectengereedschap Bizzdesign ™ Architect (tenminste, in de versie die ik gebruik). Begrijp ik het niet, of ben ik zowaar op een bug in de Archimate specificatie gestuit? Of is die bug op mij gestuit?

Advertenties

Canonieke modellen

De laatste tijd hou ik me bezig met de ontwikkeling van een Canoniek Datamodel. Ik weet wat daarmee bedoeld wordt, maar de theorie blijkt toch wat te zijn weggezakt. Dus ik fris mijn geheugen maar eens wat op en snuffel in boeken en op het internet. Bijzonder woord ook, dat “canoniek”. En omdat ik me ineens realiseerde dat ik met mijn mond vol tanden zou staan als ik gevraagd zou worden wat “canoniek” betekent, zocht ik eens op wat dat woord nou eigenlijk betekent. 

Ik kom onder andere de volgende betekenissen tegen:

  • typisch
  • normaal, genormaliseerd
  • uniek, eenduidig
  • gestandaardiseerde manier van weergeven
  • volgens erkende, geaccepteerde regels

Het is ook een bijvoegelijk naamwoord met de betekenis dat het onderwerp in overeenstemming is met de canon, de kerkelijke wetten. Canonieke zaken zijn dus geloofwaardig, en zo ook een canoniek model. Ik weet verder niet zo veel (lees: nul comma nul) over kerkelijke wetten, en wellicht zou ik me er eens wat meer in moeten verdiepen. Wie weet wordt ik dan een geloofwaardiger informatiearchitect. 

Geloofwaardig of niet, informatiearchitecten hebben het vaak over canonieke modellen. Met model wordt hier conceptueel model bedoeld, wat een vereenvoudigde voorstelling is van een stukje werkelijkheid. Een conceptueel model deelt een stukje werkelijkheid op in concepten en legt verbanden daartussen. We maken conceptuele modellen om een stukje werkelijkheid inzichtelijk te maken, om problemen uit die werkelijkheid te begrijpen en uiteindelijk te kunnen oplossen.  

Met een canoniek model wordt een eenduidig conceptueel model bedoeld dat is gebaseerd op een gestandaardiseerde en gemeenschappelijke kijk op iets binnen een bepaalde context (een stukje werkelijkheid). Dat is mijn vertaling van de Engelse omschrijving op wikipedia. Er zit al een stukje interpretatie in, maar ik moet die zin eens verder ontleden voor ik hem helemaal snap. Ik zie de volgende aspecten:

  1. eenduidigheid
  2. standaardisatie
  3. gemeenschappelijk
  4. kijk
  5. context

Dus een canoniek model is ondubbelzinnig en maar op één manier uit te leggen. De betekenissen van de concepten in het model zijn gebaseerd op een gemeenschappelijk afgesproken standaard. Daardoor geeft het model een uniforme kijk op het stukje werkelijkheid dat het model moet vereenvoudigen. Canonieke modellen voorzien in een typische, standaard voorstelling van iets. Denk bijvoorbeeld aan een typische beschrijving van een auto. Een auto is een heel complex ding, maar het onderstaande model van “auto”  is heel universeel.

Het model brengt de complexe auto terug tot enkele essentiële concepten die met elkaar in verband staan. Een typische auto heeft een carrosserie, een motor, een stuur, een vooras met twee wielen en een achteras met twee wielen. Het stuur staat in verband met de vooras, en de motor drijft één van de assen of beide tegelijk aan. Dit model typeert een auto. Iedere auto voldoet aan dit model. Inderdaad, driewielers niet, dus het model is niet universeel, maar wel binnen de context van een autofabrikant die alleen vierwielers produceert. 

Een canoniek model vereenvoudigt de communicatie over dingen in een bepaalde context (bijvoorbeeld een bedrijf). Iedereen binnen die context die het model kent weet wat er wordt bedoeld wanneer de concepten uit dit model worden besproken. Het voorkomt, heel simpel gezegd, misverstanden. Het model is immers ondubbelzinnig.

Dat is natuurlijk prachtig, maar hoe ontwikkel je een model waar iedereen binnen een bedrijf het mee eens is? Dat is niet eenvoudig. In grote organisaties hebben verschillende mensen een verschillende kijk op de dingen waar de organisatie zich mee bezig houdt. Vaak conflicteren de “kijken”, en vereist de ene kijk veel detail, en de andere juist weinig. Toepassen van het poldermodel maakt het proces om tot zo’n gemeenschappelijk en breed geaccepteerd model te komen, te tijdrovend.  

Dan is het misschien beter om met een kleine groep deskundigen, die de voor het model relevante onderdelen van de organisatie goed vertegenwoordigen, zo goed als mogelijk een eerste versie van het beoogde canonieke model op te stellen en deze tot dé standaard te bombarderen. Er volgen dan verfijningen over de tijd. Het opstellen van een canoniek model is dan een iteratief (jawel!) proces. Kortom: in een ivoren torentje de wet opstellen en bijwerken en dan aan de wereld daarbuiten opleggen. Autoritair als ik ben, kan ik daar wel wat mee 😉