<?xml version="1.0" encoding="UTF-8" ?><!-- generator=Zoho Sites --><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><atom:link href="https://www.reflektis.nl/blogs/author/rob-vens/feed" rel="self" type="application/rss+xml"/><title>reflektis - Blog by Rob Vens</title><description>reflektis - Blog by Rob Vens</description><link>https://www.reflektis.nl/blogs/author/rob-vens</link><lastBuildDate>Mon, 07 Sep 2026 14:33:42 +0200</lastBuildDate><generator>http://zoho.com/sites/</generator><item><title><![CDATA[Enter your post title]]></title><link>https://www.reflektis.nl/blogs/post/enter-your-post-title</link><description><![CDATA[
 You can edit text on your website by double clicking on a text box on your website. Alternatively, when you select a text box a settings menu will ap ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_vzv1Mwc1QeOPsdvCX2tAcw" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_-nKklpsCSvemiMER9R_sRw" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_kLMuUTC-SJ-gsfTfvHcWwg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_rYB-w06ZRjGMBfVSqmx6Sg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h2
 class="zpheading zpheading-align-center " data-editor="true">The face of the moon was in shadow</h2></div>
<div data-element-id="elm_OfTVSgueQS6wmW71dQFzyw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><p>You can edit text on your website by double clicking on a text box on your website. Alternatively, when you select a text box a settings menu will appear. your website by double clicking on a text box on your website. Alternatively, when you select a text box.</p></div>
</div><div data-element-id="elm_Bkd9GfNWSAq_ahle7L4fxQ" data-element-type="button" class="zpelement zpelem-button "><style></style><div class="zpbutton-container zpbutton-align-center "><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md " href="javascript:;" target="_blank"><span class="zpbutton-content">Get Started Now</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Sun, 06 Sep 2026 12:02:23 +0200</pubDate></item><item><title><![CDATA[Using Dynamic relationships in ArchiMate®]]></title><link>https://www.reflektis.nl/blogs/post/dynamic-relationships-in-archimate</link><description><![CDATA[Dynamic relationships in ArchiMate ArchiMate is especially powerful because of its rich set of relationship types. These relationships are grouped/clas ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_23Kr76rYR3yH-COGyfNn8g" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_FAYMBMtYTcaJt0nx6MdByA" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_ZTKs7SZHTdC58D6DJ5yxuA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_5QeE1n9oTzWcM7OfSHkztg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><div><h4 id="h-dynamic-relationships-in-archimate-flows" class="wp-block-heading">Dynamic relationships in ArchiMate</h4><p>ArchiMate is especially powerful because of its rich set of relationship types. These relationships are grouped/classified in 4 sets:</p><ol class="wp-block-list"><li>Structural</li><li>Dependency</li><li>Dynamic</li><li>Other (called &quot;Special&quot; by me)</li></ol><p>The basic pattern in ArchiMate modelling is:</p><ol class="wp-block-list"><li>You identify the main components in your architecture landscape. Those (as a rule) will be Active Structures. They will mostly be Internal Active structures (such as Business Actors or Devices), and networks (neither external or internal).</li><li>You detail these main components or nodes using <em>structural relationships</em>.</li><li>You identify the cohesion between these components by determining how they are connected using <em>dependency relationships</em> (mainly Serving).</li></ol><p>If you have done this properly, the result should be a graph of Active Structures connected with each other through Services/Interfaces. This ensures the primary architecture principle of high cohesion-loose coupling. Great work!</p><p>However!</p><p>We also have <em>dynamic</em> relationships. They also create relationships between elements. An example:</p><figure class="wp-block-image size-large"><img src="https://i0.wp.com/blog.reflektis.nl/wp-content/uploads/image-1.png?fit=1024%2C400&amp;ssl=1" alt="Process model in ArchiMate" class="wp-image-13204"/></figure><p>The <strong>&quot;Accept Claim&quot;</strong> process is performed by a Role: <strong>Customer Service Representative</strong>. That process triggers (a dynamic relationship) the <strong>Assign Claim</strong> process.</p><p>However, that process is performed by a different internal active structure: <strong>High-Risk Claims Adjudication</strong>.</p><p>I have an issue with this model. What is it?</p><p>Well, the issue is the direct triggering of the behaviour of another entity, bypassing the entire premise of ArchiMate, namely the encapsulation of behaviour with an external layer.</p><p>As you may remember, the behaviour of an Active Structure in ArchiMate is <em>Internal</em>, that is: not available directly from outside (= other entities besides the one that performs this behaviour). If you want that <em>internal</em> behaviour of another entity to be of service to you, the honourable way to do that would be to utilise the published external behaviours, also called <em>Services</em>:</p><figure class="wp-block-image size-large"><img src="https://i0.wp.com/blog.reflektis.nl/wp-content/uploads/Blog-scaled.png?fit=1024%2C465&amp;ssl=1" alt="honourable way to trigger a behaviour of someone else" class="wp-image-13221"/></figure><p>This is the honourable way to trigger a behaviour:</p><ol class="wp-block-list"><li>I need to do something: <strong>Accept Claim</strong></li><li>When that is done, I would like someone else to &quot;take over&quot;: I request that by invoking a service called <strong>Assign Claim</strong>. Handover!</li><li>The assign claim service is realised by the <strong>Assign Claim </strong>business process of that other (internal active structure, so effectively invisible to me: loose coupling)</li></ol><p>This is why I always explain that: no I do not have a fundamental issue with using dynamic relations, but please keep in mind that in a proper architecture those relations are best seen as a kind of shorthand:</p><figure class="wp-block-image size-large"><img src="https://i0.wp.com/blog.reflektis.nl/wp-content/uploads/Trigger-shorthand.png?fit=1024%2C303&amp;ssl=1" alt="trigger shorthand" class="wp-image-13224"/></figure><p>The same applies to the Flow relationship: it is very impolite to directly flow into someone else's (internal) behaviour, but it can be useful to show the shorthand notation.</p><p>Especially for implementers (solution architects or developers) working with these ArchiMate models as input, this is an important aspect to be aware of.</p></div></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Thu, 09 Jul 2026 16:30:51 +0200</pubDate></item><item><title><![CDATA[The robotic revolution is a hoax]]></title><link>https://www.reflektis.nl/blogs/post/the-robotic-revolution-is-a-hoax</link><description><![CDATA[An important aspect of the Enlightenment (from 1600 onward) was the concept that science and technology would usher in a new age of prosperity, peace ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_-SbPNyc7SaaqFLMr5S3Z8Q" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_IzHgu2b4TA229jYW7YkLQQ" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_ljwoGy5WSuWvb0RAwBCQMQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_p5I6_mYfQFWEXIMMv4cE6A" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><div><p>An important aspect of the Enlightenment (from 1600 onward) was the concept that science and technology would usher in a new age of prosperity, peace and happiness. This philosophical revolution in the West was also strongly associated with the concept of the individual, as expressed in the United States Declaration of Independence:</p><blockquote class="wp-block-quote"><p>&quot;We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of <mark style="background-color:rgb(255, 255, 21);" class="has-inline-color">Happiness</mark>. — That to secure these rights, Governments are instituted among Men, deriving their just powers from the consent of the governed, — That whenever any Form of Government becomes destructive of these ends, it is the Right of the People to alter or to abolish it, and to institute new Government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their Safety and <mark style="background-color:rgb(255, 255, 0);" class="has-inline-color">Happiness</mark>.&quot;</p></blockquote><p>In classical times in Egypt and Greece, the prosperity of society was greatly dependent on slavery: cheap labour. It enabled the city states to devote more resources to philosophical, artistic, and military advancements. It is estimated that 30-40% of the labour force in Ancient Greece consisted of slaves!</p><p>In a way the robotisation of modern society is creating a new class of &quot;slaves&quot;: worker entities without intrinsic rights (although in ancient times the level of rights of slaves varied considerably), never complaining, able to work around the clock as long as they are properly maintained.</p><p>But an important element in the equation is not often discussed: who actually owns the value of these assets? In ancient times you were able to buy a slave or obtain one through some other means (indenture, as a punishment, conquest etc.). The slave would then be <em>your</em> asset. In our times we see a different ownership model. Robots (as a generic term for machines that perform labour in the broadest sense) are owned by a very small set of corporations, to be &quot;leased out&quot; to organisations or individuals. In other words: the actual value of the asset is reaped by those few real owners. The rest of us can only pay-for-use, and are completely dependent on the actual owners as to the price they charge for use.</p><p>It is very easy to understand that this construct is not sustainable. It is already clearly demonstrating that it results in a growing inequality in wealth. This has been demonstrated historically to lead to instability and eventually revolutions.</p><blockquote class="wp-block-quote"><p>Elon Musk told the US–Saudi Investment Forum that advanced AI and humanoid robots will make human work “optional” within 10–20 years, end poverty, and make money “irrelevant,” predicting a major societal shift driven by automation.</p></blockquote><p>Quotes like the one above are commonly heard from the parties expected to profit most from these technological developments. History teaches us that things usually do not develop in this manner. A brief period of wealth concentration is followed by a destructive upheaval resulting in a slight (and temporary!) redistribution of wealth. An example is the French revolution.</p><blockquote class="wp-block-quote"><p>In France just before the Revolution of 1789, the proportion of national wealth held by the top 10 percent was about 90 percent, and the fraction possessed by the top 1 percent was as much as 60 percent.&nbsp; After the Revolution, the proportion held by the top 10 percent fell slightly due to the redistribution of land belonging to the aristocracy and clergy in favour of the bourgeoisie (a little over 9 percent). - Thomas Piketty</p></blockquote><p>Might we say that the seeming luxury of these robotic &quot;slaves&quot; has a rippling effect in making ourselves into slaves?</p><p>A sustainable model will need to be created, with the actual ownership of automated support in the hands of the people that use that support, with actual value (as in marketability).</p></div></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Fri, 01 May 2026 18:10:53 +0200</pubDate></item><item><title><![CDATA[Modelling Building Blocks in ArchiMate®]]></title><link>https://www.reflektis.nl/blogs/post/modelling-building-blocks-in-archimate</link><description><![CDATA[Estimated reading time: 5 minutes Why Building Blocks? When embarking on any change effort, in the context of enterprise architecture usually referred t ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_-9w8Gd73R8u6psDLqVOAjQ" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_P6rrKhE3SqqpWpnf-tDMSw" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_eM6Ji-2gS02GNg36GC900g" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_-sbFmv8bTU2_qmmK77wiGQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><div><p class="wp-block-yoast-seo-estimated-reading-time yoast-reading-time__wrapper"><span class="yoast-reading-time__icon"><svg style="vertical-align:-0.1em;"></svg></span><span class="yoast-reading-time__spacer" style="width:1em;"></span><span class="yoast-reading-time__descriptive-text">Estimated reading time: </span><span class="yoast-reading-time__reading-time">5</span><span class="yoast-reading-time__time-unit"> minutes</span></p><h2 class="wp-block-heading" id="h-why-building-blocks">Why Building Blocks?</h2><p>When embarking on any change effort, in the context of enterprise architecture usually referred to as a business transformation, partitioning the effort is essential for a successful, controlled result. This article tries to explain how to identify those parts: the <em>building blocks</em> that comprise the change.</p><p>The partitioning is not only necessary in the solution space (say, a new business process, or the implementation of a new IT system), but also on the strategic level. And both need to be aligned for a successful result.</p><h2 class="wp-block-heading" id="h-what-are-building-blocks">What are Building Blocks?</h2><p>The concept of a building block is neatly defined in TOGAF® as:</p><blockquote class="wp-block-quote"><ul class="wp-block-list"><li>Building blocks have generic characteristics as follows: <ul class="wp-block-list"><li>A building block is a package of functionality defined to meet the business needs across an organization</li><li>A building block normally has a type that corresponds to the metamodel (such as actor, business service, application, or data entity)</li><li>A building block has a defined boundary and is generally recognizable as &quot;a thing&quot; by domain experts</li><li>A building block may interoperate with other, inter-dependent building blocks.</li></ul></li><li>A good building block has the following characteristics: <ul class="wp-block-list"><li>— It considers implementation and usage, and evolves to exploit technology and standards</li><li>— It may be assembled from other building blocks</li><li>— It may be a subassembly of other building blocks</li><li>— Ideally a building block is re-usable and replaceable, and well specified</li></ul></li></ul><cite>TOGAF 10<sup>th</sup> Edition: TOGAF Standard — Architecture Content</cite></blockquote><p>A Building Block is an element that is used to &quot;bridge the gap&quot;: we are here, we want to get there, and this component is (part of) what we need to find ourselves &quot;there&quot;.</p><p>To partition the building block specification, usually two levels of abstraction are used:</p><ol class="wp-block-list"><li>The <strong>Architecture Building Block</strong> (ABB) <br/> The focus is on the architectural requirements here. The level of specification avoids specific tools or technology. Again, from the TOGAF Standard: <ul class="wp-block-list"><li>Fundamental functionality and attributes: semantic, unambiguous, including security</li><li>capability and manageability</li><li>Interfaces: chosen set, supplied</li><li>Interoperability and relationship with other building blocks</li><li>Dependent building blocks with required functionality and named user interfaces</li><li>Map to business/organisational entities and policies</li></ul></li><li>The <strong>Solution Building Block</strong> (SBB) <br/> The focus here is more on the specific guidelines for the actual solution. <ul class="wp-block-list"><li>Define what products and components will implement the functionality</li><li>Define the implementation</li><li>Fulfil business requirements</li><li>Are product or vendor-aware</li></ul></li></ol><h2 class="wp-block-heading" id="h-how-to-model-building-blocks-in-archimate">How to model building blocks in ArchiMate®?</h2><p>ArchiMate provides a lot of concepts to model the enterprise architecture continuum, but has not specifically defined a concept for a building block.</p><p>The following article contains some examples on how to model building blocks in ArchiMate:</p><ul class="wp-block-list"><li><a href="https://bizzdesign.com/blog/using-archimate-visualize-togaf-enterprise-continuum">Using ArchiMate to Visualize the TOGAF Enterprise Continuum</a></li></ul><p>However no comprehensive solution or template was presented. Which is not a problem in itself, it just illustrates that modelling building blocks is possible with ArchiMate, but that different approaches can be used, depending on the context of your specific architecture.</p><p>Within the Dutch Ministry of Defence our team has defined the following template or metamodel for building blocks, both the <strong>ABB</strong> (Architecture Building Block) and the <strong>SBB</strong> (Solution Building Block). Additionally there is also an element called a Realisation Building Block (<strong>RBB</strong>) which contains the detailed solution as it is implemented within specific tooling. We will not explain that element further.</p><p>You can click on the image for an enlarged view.</p><figure class="wp-block-image size-large"><img src="https://i0.wp.com/blog.reflektis.nl/wp-content/uploads/Building-Blocks-1-scaled.png?fit=1024%2C596&amp;ssl=1" alt="" class="wp-image-13112"/><figcaption class="wp-element-caption">Building Blocks ArchiMate metamodel</figcaption></figure><p><strong>Some remarks on the view:</strong></p><ul class="wp-block-list"><li>Elements with bold border are considered mandatory in a view based on this viewpoint</li><li>Elements in a bold red border box: at least one element of the types included in the box are mandatory in a view based on this viewpoint</li></ul><p>We decided to slightly deviate from the TOGAF specification in that we defined <em>services</em> to be part of the ABBs, and <em>interfaces</em> to be part of the SBBs. This is not a real deviation, because the term &quot;interface&quot; in the TOGAF definition does not correspond 1-1 to the term in ArchiMate.</p><ul class="wp-block-list"><li>The <em>service</em> specifies the kind of questions I can ask the building block, and the format of the answer I receive (if applicable — a request to do something might not require an answer).</li><li>The <em>interface</em> specifies the actual place where I can ask the question, for example a web service URL.</li></ul><p>All elements in the building block definition can be neatly found in this metamodel:</p><ul class="wp-block-list"><li><strong>ABB</strong><ul class="wp-block-list"><li>Fundamental functionality and attributes: semantic, unambiguous, including security: The <strong>Architecture Requirement</strong></li><li>Interfaces: chosen set, supplied: <strong>Services (provided)</strong> on all layers</li><li>Interoperability and relationship with other building blocks: <strong>Services (consumed)</strong> on all layers, which will be the services provided by the other building blocks</li><li>Map to business/organisational entities and policies: the <strong>Role (ABB)</strong> and the <strong>Standard</strong></li></ul></li><li><strong>SBB</strong><ul class="wp-block-list"><li>Interfaces: the channels through which the ABB services can be accessed (both the provided and consumed interfaces)</li></ul></li></ul><h2 class="wp-block-heading" id="h-further-work">Further work</h2><p>Obviously the proposed viewpoint is not meant to be final and complete. But we found that for most of our needs the elements sufficiently describe the building block components in our landscape.</p><p>Some elements were omitted. We could for example have added processes on the different layers. One of the reasons they are not here is the guideline to model top-level processes in ArchiMate with <strong>Functions</strong> (see <a href="https://blog.reflektis.nl/procesconcepten-in-nora/">Procesconcepten in NORA</a> - article in Dutch).</p><p>An important subject is the strategic alignment. For this please read a separate article, which explains the viewpoint <strong><a href="https://blog.reflektis.nl/strategic-planning/">Strategic Planning</a></strong>. That viewpoint deals with the alignment of Building Blocks with Capabilities and Value Streams. Partitioning should not just be with Building Blocks. Actually the start of partitioning should be capability-based, with the building blocks a <em>realisation</em> of the capabilities. In other words: the actual building block boundaries are derived from or based on capabilities. More about that in the article I mentioned.</p><h4 class="wp-block-heading" id="h-attributions">Attributions</h4><p>Thanks to my colleagues in the architecture team with the Dutch Ministry of Defence (MoD): Wouter Paul Trienekens, Niels Doeleman, Emiel van Meurs, Herman Meijer and others.</p><h4 class="wp-block-heading" id="h-related-articles">Related articles</h4><ul class="wp-block-yoast-seo-related-links yoast-seo-related-links"><li><a href="https://blog.reflektis.nl/archimate-metamodel-uml/">The ArchiMate metamodel</a></li><li><a href="https://blog.reflektis.nl/business-centred-archimate/">Business-centred ArchiMate</a></li><li><a href="https://blog.reflektis.nl/the-business-it-fallacy/">The Business-IT Fallacy</a></li><li><a href="https://blog.reflektis.nl/round-instead-square/">Round instead of square</a></li><li><a href="https://blog.reflektis.nl/kantelen-enterprise-architectuur/">Kantelen met enterprise architectuur</a></li></ul></div></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 12 Jan 2026 13:23:37 +0100</pubDate></item><item><title><![CDATA[Strategic Planning]]></title><link>https://www.reflektis.nl/blogs/post/strategic-planning</link><description><![CDATA[Introduction This article explains an ArchiMate® viewpoint, the Strategic Planning viewpoint which has been made by our team within the Dutch Ministry ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_Ja_T-e5pQpmhla-ddml7pA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_-y9RXRU0SoSDwFgzY0PD2A" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_mKdltGyuS5O3dUbsQmvStQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_chBAb4qwQkCGUkkjHlUapA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><div><h3 class="wp-block-heading" id="h-introduction">Introduction</h3><p>This article explains an ArchiMate® viewpoint, the <strong>Strategic Planning</strong> viewpoint which has been made by our team within the Dutch Ministry of Defence. We have found this viewpoint to be particularly effective in partitioning the transformation effort (which as you might understand is substantial within the context of Defence!).</p><p>Strategic alignment is often overlooked. It usually focusses on strategic views such as a Capability Map, but often leaves it at that. We then miss how these strategic landscapes are actually trickling down into the actual solutions.</p><p>Or we dive into possible solutions, usually taking too little or no effort to really understand what the problem is and what approach to take.</p><h3 class="wp-block-heading" id="h-capability-based-planning">Capability-based planning</h3><p>A central tenet of our approach is not specific for Defence, but becoming quite the standard in business architecture. As you may recall, TOGAF specifies a stratified approach to modelling regarding the content of the architecture repository, specifically the part called the <em>Architecture Landscape</em>. The architecture repository of the Dutch Ministry of Defence and most of the enterprise repositories I have worked with in my career have a similar structure:</p><ol class="wp-block-list"><li><strong>Strategic architectures</strong><br/> Architectural descriptions for organisation-wide things, expecting to be generic to any part of the enterprise. One of the descriptions is the Capability Map.</li><li><strong>Segment architectures</strong><br/> Descriptions specific for the different main components of the enterprise. An example segment within the MoD would be the Navy. The term &quot;domain&quot; can be viewed as a synonym.</li><li><strong>Capability architectures</strong><br/> This is where we describe the various capabilities (within the MoD termed &quot;enterprise capabilities&quot; to distinguish them from the military and NATO capabilities, which we decided to label &quot;operational capabilities&quot;) and how they are realised by services and underlying business, software and technology. This approach partitions the solutions landscape according to the capabilities defined in the Capability Map mentioned above. <br/></li></ol><figure class="wp-block-image size-large"><img src="https://blog.reflektis.nl/wp-content/uploads/Architecture-Repository-Overview-1024x875.png" alt="TOGAF Architecture repository" class="wp-image-13106"/><figcaption class="wp-element-caption">Structure of the architecture repository</figcaption></figure><p></p></div></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Sat, 10 Jan 2026 18:10:00 +0100</pubDate></item><item><title><![CDATA[reflektis is now an OMG accredited training provider!]]></title><link>https://www.reflektis.nl/blogs/post/reflektis-is-now-an-omg-accredited-training-provider</link><description><![CDATA[Today the accreditation process for our BPM training came back positively: as of December 2025 reflektis is an officially accredited training provider ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_jRGXZkw9Sv2_9InqJ88zHQ" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_p6wqFLvZSN-N691gMTy6bA" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_fd6Q0jWiTKaOo-9CikwA9g" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_IUxRkZ9IRT61swjsKMTiug" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><div><p>Today the accreditation process for our BPM training came back positively: as of December 2025 reflektis is an officially accredited training provider!</p><div></div>
<p>Our BPM training started off in 2012 with DHL Express as one of our first customers in The Netherlands. By now we have helped hundreds of people in applying BPMN. The training has been delivered through <a href="https://www.globalknowledge.com/nl-nl/trainingen/business_analysis/business_process/bpmn">Skillsoft/Global Knowledge</a> and for the completely online version through reflektis (in Dutch and English).</p><p>Interested in learning BPMN from the expert?</p><p>Visit <a href="https://academy.reflektis.nl/bpmn" target="_blank" rel="noreferrer noopener">https://academy.reflektis.nl/bpmn</a> for our online training offering!</p><p></p></div></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 01 Dec 2025 19:32:56 +0100</pubDate></item><item><title><![CDATA[The name &quot;Sepher Software&quot;]]></title><link>https://www.reflektis.nl/blogs/post/the-name-sepher-software</link><description><![CDATA[Why &quot;Sepher Software&quot;? When founding my company in 1991, I was immediately drawn to the association with the word &quot;Sepher&quot;. My main ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_8_XW5TTQRjqn-oCcpmDkXA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_EEKPtoBVRyyByx0IPib_nw" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_CCg6YjeFTH6mkEEZflGbvg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm__9K3xsLtS162FZRXbXDpKQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><div><div class="nfd-container nfd-text-md nfd-wb-text__text-1 wp-block-group"><div class="nfd-max-w-prose wp-block-group"><h2 class="nfd-text-xl nfd-text-balance wp-block-heading" id="h-why-sepher-software" style="font-style:normal;font-weight:600;">Why &quot;Sepher Software&quot;?</h2><p class="has-drop-cap">When founding my company in 1991, I was immediately drawn to the association with the word &quot;Sepher&quot;.</p><p>My main association was with a Talmudic wisdom tradition, which formulated a concept called the Tree of Life, in Hebrew Sepher Sephiroth.</p><figure class="wp-block-image size-full"><img src="https://i0.wp.com/blog.reflektis.nl/wp-content/uploads/Tree_of_life_hebrew.svg_.png?fit=576%2C1010&amp;ssl=1" alt="" class="wp-image-13045"/><figcaption class="wp-element-caption">Tree of Life</figcaption></figure><p>The graphical representation clearly shows the association of the circles, moving in a numerical sequence from the top (beginning with Kether, associated with the number 1, and ending with Malkuth, associated with the number 10). Our decimal numerical system is founded on the semitic names of the numbers, and the word &quot;cipher&quot; has correspondence with the Hebrew Sepher. So</p></div>
</div></div></div></div></div></div></div></div></div> ]]></content:encoded><pubDate>Sun, 16 Nov 2025 08:15:08 +0100</pubDate></item><item><title><![CDATA[How to effectively prepare for an ArchiMate® training]]></title><link>https://www.reflektis.nl/blogs/post/how-to-effectively-prepare-for-an-archimate-training</link><description><![CDATA[The most common hurdle for participants is the information overload. Both the ArchiMate metamodel and all the ArchiMate concepts with their definition ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_Q6NCZZt3Q9WS5R_QZKPbmg" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_37WNG0bcRZCB2aDDRQ2t-Q" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_8oUcVp98T92kfnALbNJd7A" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_MjcYdJDiTo6YRmskUtBiJQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><div><figure class="wp-block-image size-full"><img src="https://blog.reflektis.nl/wp-content/uploads/archimate-logo.png" alt="" class="wp-image-12275"/></figure><p>The most common hurdle for participants is the information overload. Both the ArchiMate metamodel and all the ArchiMate concepts with their definitions may be overwhelming to absorb. There are only three days in which all this information is presented and explained, with limited time available for exercises. This is where some preparation is going to help you immensely.</p><figure class="wp-block-pullquote"><blockquote><p>You are about to participate in an ArchiMate® training? To make the training as effective as possible: please prepare in advance.</p></blockquote></figure><p>Coming from the UML world, I have been <a href="https://www.opengroup.org/certifications/accreditation/authorized-trainers#archimate">an accredited ArchiMate® trainer</a> for many years, as well as working with ArchiMate almost from the birth of the language in The Netherlands in my consultancy work. The language was intended to be as simple as possible, even to the extent that the ArchiMate community originally had the ambition that it would be simple enough to be used by &quot;the business&quot;, i.e. non-architects or people that did not need specific training or experience to read or use the diagrams. However this was soon abandoned because in spite of the goal of simplicity (which in my opinion has been successfully achieved) there is of course a conflict of interest for the language to be complete enough for enterprise architecture as well as to serve as a complete-enough spec for the TOGAF Content Framework, which is from <a href="https://www.opengroup.org/togaf">another standard from The Open Group</a>.</p><ul class="wp-block-list"><li>To start with: get the website with the official spec in your favourites: <a href="https://pubs.opengroup.org/architecture/archimate32-doc/_archimate_3_2_specification.html"></a><a href="https://pubs.opengroup.org/architecture/archimate3-doc">the online edition of the ArchiMate 3.2 Specification&nbsp;</a>(please note that a web account for The Open Group is required to access this resource).</li><li>Play with an ArchiMate tool. I suggest Archi: <a href="https://www.archimatetool.com">https://www.archimatetool.com</a>. If you do, I urge you to make a donation - the devs are doing incredible work! Of course if your company already uses a tool, see if you are able to access that.</li><li>Import or navigate example ArchiMate models: <ul class="wp-block-list"><li><a href="https://pubs.opengroup.org/architecture/case-study-models/archisurance-html/">https://pubs.opengroup.org/architecture/case-study-models/archisurance-html/</a></li><li><a href="https://pubs.opengroup.org/architecture/case-study-models/archimetal-html/">https://pubs.opengroup.org/architecture/case-study-models/archimetal-html/</a></li></ul></li><li>There is a nice concise introduction to ArchiMate: <a href="https://archimate-community.pages.opengroup.org/workgroups/archimate-101/">https://archimate-community.pages.opengroup.org/workgroups/archimate-101/ </a></li></ul><p>If you take a few hours to invest in researching these references, you will have created a set of &quot;hooks&quot; in your mind to better connect the information that you receive in the training.</p><p>Good luck!</p><p>Rob Vens</p></div></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Thu, 17 Oct 2024 11:23:43 +0200</pubDate></item><item><title><![CDATA[NORA processen en ArchiMate]]></title><link>https://www.reflektis.nl/blogs/post/nora-processen-en-archimate</link><description><![CDATA[In mijn vorige post Procesconcepten in NORA heb ik geprobeerd wat licht te werpen op het modelleren van processen in BPMN, gebaseerd op de NORA defini ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_fGriU4rVQ2KS8QcfsAj4yQ" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_1TXefpDnTrOOmBtZjDS2Tg" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_GqpR9alMRGiljv5NJ7hmQw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_w-VIM-JjQDOXkizQybiESQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><div><p>In mijn vorige post <a href="https://blog.reflektis.nl/procesconcepten-in-nora/">Procesconcepten in NORA</a> heb ik geprobeerd wat licht te werpen op het modelleren van processen in BPMN, gebaseerd op de NORA definities van processen. Dat artikel is vooral bedoeld voor procesontwerpers en bedrijfsanalisten die voor (overheids-) organisaties in Nederland bezig zijn processen te beschrijven.</p><p>Dit artikel richt zich meer op enterprise/bedrijfsarchitecten. Ook daar zie ik veelal een worsteling om dit te doen in lijn met de NORA referentie architectuur, en om te begrijpen wat NORA precies bedoelde met het onderscheid tussen bedrijfsprocessen en werkprocessen. Dit komen we namelijk steeds weer tegen bij de verschillende afgeleide referentie architecturen zoals de GEMMA, de HORA enz.</p><blockquote class="wp-block-quote"><p>Merk op dat in de nieuwste versie van de NORA, mede vanwege de vele misverstanden die rond deze concepten ontstonden, dit onderscheid is losgelaten.</p></blockquote><p>Naarmate een volwassener architectuurdiscipline in die organisaties ontstaat moet het daar natuurlijk niet bij blijven. Vanuit enterprise- en bedrijfsarchitectuur beschrijven we immers ook processen. Hiervoor wordt merendeels <a href="https://www.opengroup.org/archimate-forum/archimate-overview">ArchiMate</a>, een modelleertaal voor enterprise architectuur, gebruikt.</p><h2 class="wp-block-heading" id="h-bedrijfsarchitectuur">Bedrijfsarchitectuur</h2><p>Het vakgebied van bedrijfsarchitectuur is volwassen aan het worden. Het fundament daarvoor is voor een groot deel afkomstig van de <a href="http://businessarchitectureguild.org">Business Architecture Guild</a>. Dit is een onafhankelijke organisatie waarvan het werk door de Open Group wordt geadopteerd in TOGAF (Phase B: Business Architecture). Dat weerspiegelt zich dan weer in ArchiMate omdat beide standaarden beheerd worden door de Open Group en in lijn zijn met elkaar. ArchiMate is een manier om het metamodel voor TOGAF te beschrijven. Er zijn andere manieren, maar wereldwijd en zeker in Nederland is ArchiMate de enige die ik tegenkom.</p><h2 class="wp-block-heading">De vier pijlers van bedrijfsarchitectuur</h2><p>Volgens het framework van de Guild zijn er vier pijlers waarop bedrijfsarchitectuur rust:</p><ol class="wp-block-list"><li>Capabilities</li><li>Value Streams</li><li>Information</li><li>Organisation</li></ol><figure class="wp-block-image size-full is-resized"><img src="https://blog.reflektis.nl/wp-content/uploads/IMG_1394-text.png" alt="Vier pijlers van bedrijfsarchitectuur" class="wp-image-12836" style="width:579px;height:auto;"/></figure><p>We zien hierin bedrijfsprocessen niet (direct) voorkomen. In dit artikel wil ik die relatie tussen bedrijfsprocessen en enterprise architectuur uitwerken. Ik focus hierbij op Capabilities en Value Streams, zodat je kunt zien op welke wijze bedrijfsprocessen deel uitmaken van de bedrijfsarchitectuur.</p><p>Ook wil ik laten zien hoe processen samenwerken met software, in het geval dat processen geheel of gedeeltelijk geautomatiseerd worden uitgevoerd.</p><h2 class="wp-block-heading" id="h-bedrijfsprocessen-en-value-streams">Bedrijfsprocessen en Value Streams</h2><blockquote class="wp-block-quote"><p>Onderstaande metamodellen zijn voor versie 3.2 van ArchiMate</p></blockquote><p>Bedrijfsprocessen hebben een directe relatie met de Value Streams die zij realiseren. In het classificatiemodel (door de Open Group metamodel genoemd) van ArchiMate is dit te zien. Eerst kijken we hoe ArchiMate Value Streams en Capabilities ziet. Zoals je ziet, zijn dit gedragselementen (behaviours) in de Strategische laag:</p><figure class="wp-block-image size-large is-resized"><img src="https://blog.reflektis.nl/wp-content/uploads/Strategy-1024x947.png" alt="" class="wp-image-12842" style="width:484px;height:auto;"/></figure><p>Bedrijfsprocessen zijn ook gedragselementen, maar dan in de bedrijfslaag (<strong>Business Process</strong> hieronder):</p><figure class="wp-block-image size-large is-resized"><img src="https://blog.reflektis.nl/wp-content/uploads/Business-Internal-Behaviour-Elements-1-1024x880.png" alt="" class="wp-image-12844" style="width:588px;height:auto;"/></figure><p>In het diagram hieronder zie je de relatie tussen die twee. Een <strong>Strategy Behavior Element</strong> kan een <strong>Capability</strong> of een <strong>Value Stream</strong> zijn (zie hierboven), en een <strong>Business Process </strong>is een <strong>Internal Behavior Element</strong>.</p><figure class="wp-block-image size-large"><img src="https://blog.reflektis.nl/wp-content/uploads/Relationships-with-Motivation-and-Core-1-1024x706.png" alt="" class="wp-image-12847"/></figure><p>De relatie tussen een bedrijfsproces (<strong>Business Process</strong>) en een V<strong>alue Stream</strong> is dus een realisatie relatie. Hieronder zie je een voorbeeld van hoe die aan elkaar verbonden kunnen worden. Eerst kijken we naar de relatie tussen Capabilities en Bedrijfsprocessen. Hier toon ik meteen ook de gerelateerde BPMN versie van het ArchiMate proces.</p><figure class="wp-block-image size-large"><img src="https://blog.reflektis.nl/wp-content/uploads/Capability-Business-Process-1024x757.png" alt="" class="wp-image-12850"/></figure><p>Een voorbeeld van een relatie tussen Value Streams en Bedrijfsprocessen. Ook dit is een Realisatie relatie. In BPMN is het vervolgens mogelijk het top-level proces verder hiërarchisch te decomponeren zover als nodig/zinvol is. Hiervoor adviseer ik de methode van Bruce Silver zoals hij die uitlegt in zijn boek <a href="https://methodandstyle.com/">Method &amp; Style</a>.</p><figure class="wp-block-image size-large is-resized"><img src="https://blog.reflektis.nl/wp-content/uploads/Value-Stream-Business-Process-1024x488.png" alt="" class="wp-image-12851" style="width:840px;height:auto;"/></figure><h2 class="wp-block-heading" id="h-repository">Repository</h2><p>Idealiter zijn beide procesbeschrijvingen uitgewerkt in dezelfde architectuur repository. Deze wordt beschikbaar gesteld door een tool die zowel BPMN als ArchiMate moet ondersteunen (en bij voorkeur nog meerdere talen, met name UML). Ook helpt de tool bij het (hyper-) linken van beide modellen, zodat te zien is dat een proceselement in een ArchiMate view dezelfde is als een activiteit in een BPMN view.</p><p>Nu gaan we even weer terug naar het abstracte voorbeeld in ons voorgaande artikel <a href="https://blog.reflektis.nl/procesconcepten-in-nora/">Procesconcepten in NORA</a>:</p><figure class="wp-block-image size-large"><img src="https://blog.reflektis.nl/wp-content/uploads/Ketenproces-1-1024x656.jpg" alt="" class="wp-image-12816"/></figure><p>Hieronder zie je nu datzelfde procesmodel, maar nu in ArchiMate.</p><figure class="wp-block-image size-large is-resized"><img src="https://blog.reflektis.nl/wp-content/uploads/Bedrijfsprocessen-service-koppeling-1024x497.png" alt="ArchiMate proces view" class="wp-image-12822" style="width:920px;height:auto;"/></figure><h2 class="wp-block-heading">Enkele observaties</h2><ul class="wp-block-list"><li>Vanuit de enterprise architectuur willen wij voor elk bedrijfsproces zien welke dienst dat proces levert: de <strong>Dienst 1.</strong> Hierdoor kunnen wij in andere views laten zien wie de afnemers zijn van dat proces</li><li>We willen ook vastleggen wie verantwoordelijk is voor het proces, en wie het proces uitvoert. Het onderscheid tussen Bedrijfsproces en Werkproces is juist daarvoor bedoeld: het bedrijfsproces heeft een uitvoeringsverantwoordelijke, het werkproces heeft een uitvoerder (een afdeling of een team). Dit kun je zien in de elementen <strong>Bedrijf</strong> en <strong>Afdeling 1</strong>, en de relaties (assignment) die het heeft met de proceselementen. Dit is gerelateerd aan de peiler <strong>Organisatie</strong>.</li><li>Wij willen ook zicht hebben op de gebruikte applicaties. De eventuele gebruikte software komen we tegen bij de proces stap <strong>Geautomatiseerd proces,</strong> dat gebruik maakt van een Application Service genaamd <strong>Geautomatiseerd proces</strong>. Dit is een voorbeeld van een proces stap die geheel door software wordt uitgevoerd.</li><li>Een proces stap waarbij een mens gebruik maakt van software is <strong>Proces stap 1.2</strong>, die van <strong>Application Service 1</strong> gebruik maakt</li><li>Wij adviseren om in top-level processen alleen activiteiten, exclusieve gateways (~XOR Junction in ArchiMate), parallelle gateways (XAND Junction in ArchiMate), en simpele events te gebruiken, dus geen meer esoterische BPMN concepten zoals event-based gateways en complexe event types.</li><li>Vanuit de enterprise architectuur is het tenslotte essentieel te weten welke bedrijfsobjecten waar gebruikt worden. Dit is gerelateerd aan de pijler <strong>Informatie</strong>.</li></ul><p>Concluderend hoop ik dat deze uitleg helderheid geeft over hoe processen gemodelleerd moeten worden, onder de paraplu van NORA. Zowel bij Belastingdienst als Defensie heb ik deze aanpak met succes mogen realiseren. Ervaringen uit de praktijk zijn cruciaal om de aanpak verder te vervolmaken, en om die reden wil ik de lezers uitnodigen op mijn artikelen te reageren en in dialoog te gaan.</p></div></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Sat, 23 Mar 2024 18:51:16 +0100</pubDate></item><item><title><![CDATA[Procesconcepten in NORA]]></title><link>https://www.reflektis.nl/blogs/post/procesconcepten-in-nora</link><description><![CDATA[De NORA (Nederlandse Overheids Referentie Architectuur) definieert een aantal concepten over processen. In dit artikel wil ik ingaan op de definities ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_S_tlS_SASdO3Aba2z-v6OQ" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_dgO7qhdxQCyndVfKzS5QiA" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_KaDYUv0WTp6g8hTO1mpZ0g" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_PzMNLO6ZQcyP5g9QeVGdqQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><div><p>De NORA (Nederlandse Overheids Referentie Architectuur) definieert een aantal concepten over processen. In dit artikel wil ik ingaan op de definities van:</p><ul class="wp-block-list"><li>Ketenproces</li><li>Bedrijfsproces</li><li>Werkproces (Deelproces)</li></ul><p>NORA definieert de concepten correct, maar summier, en ik kom in de praktijk tegen dat hierdoor veel voorkomende fouten gemaakt worden. In dit artikel kom je te weten hoe je ketenprocessen, bedrijfsprocessen en werkprocessen moet modelleren conform NORA, in ArchiMate en BPMN.</p><h3 class="wp-block-heading" id="h-definities">Definities</h3><p></p><p></p><p>Allereerst is het belangrijk om je te realiseren dat de termen zijn gedefinieerd in NORA 2.0, maar (deels) zijn <a href="https://www.noraonline.nl/images/noraonline/e/ea/NORA_3.0_verantwoording_wijzigingen_principes_NORA_2_en_3.pdf">losgelaten in de latere versie 3 (2014</a>). Daar is een belangrijke reden voor, namelijk dat de definities te rigide waren. Hierover volgt straks uitleg. Binnen allerlei overheidsorganisaties zijn de definities echter omarmd en gebruikt in de procesarchitecturen (zoals in de <a href="https://www.gemmaonline.nl/index.php/Procesarchitectuur_Proceshi%C3%ABrarchie">GEMMA</a>), en is het van belang dat we helder definieren wat we hiermee bedoelen en hoe we hiermee om moeten gaan. In mijn werk bij UWV, Belastingdienst en Defensie kom ik dezelfde worsteling tegen.</p><figure class="wp-block-image size-large"><img src="https://blog.reflektis.nl/wp-content/uploads/Ketenproces-1-1024x656.jpg" alt="" class="wp-image-12816"/></figure><p>We zullen bovenstaand generiek procesmodel gebruiken als kapstok voor de uitleg:</p><div class="wp-block-group"><figure class="wp-block-table"><table><tbody><tr><td><strong>Concept</strong> (NORA 2.0)</td><td><strong>Definitie</strong></td><td></td></tr><tr><td>Ketenproces</td><td>Een bedrijfsproces onder controle/verantwoordelijkheid van de eigen organisatie, waarin tenminste één activiteit wordt uitgevoerd door een ketenpartner, onder regie van de eigen organisatie</td><td></td></tr><tr><td>Bedrijfsproces</td><td>Een end-to-end (klant tot klant) proces dat een specifieke dienst levert aan een stakeholder.</td><td></td></tr><tr><td>Werkproces of Deelproces</td><td>Een activiteit als onderdeel van een bedrijfsproces dat uitgevoerd wordt door één onderdeel of afdeling van de organisatie</td><td></td></tr><tr><td>Processtap</td><td>Een activiteit als onderdeel van een bedrijfsproces dat uitgevoerd wordt door één rol</td><td></td></tr><tr><td>Handeling</td><td>Een activiteit als onderdeel van een bedrijfsproces dat uitgevoerd wordt door één persoon of systeem</td><td></td></tr></tbody></table></figure></div>
<h3 class="wp-block-heading">Ketenproces analyse</h3><p>Diagram 1 laat een generiek voorbeeld zien van een top-level bedrijfsproces. Het feit dat het een ketenproces betreft is in dit diagram direct te zien, omdat één stap in het proces (Werkproces 3b) geheel uitbesteed is aan een ketenpartner (Ketenpartner, de black-box pool waarmee een response/request message flow interactie is te zien).</p><p>Dit hoeft niet altijd een activiteit in een top-level diagram te zijn: wanneer een processtap of handeling is uitbesteed is er nog steeds sprake van een ketenproces: een deel van het proces, op welk procesniveau dan ook, wordt <em><strong>onder regie van de eigen organisatie</strong></em> uitbesteed aan een ketenpartner.</p><p>Wat is nu het verschil met een &quot;gewone&quot; partner, bijvoorbeeld een betalingsprocesstap die uitbesteed wordt aan een payment provider?</p><p>De payment provider zal ook gemodelleerd worden met een black-box pool, maar is <em>geen</em> ketenpartner. In BPMN termen is de payment provider een &quot;gewone&quot; collaboration. Er zullen ook message flow interacties zijn tussen de black-box pool van collaborator en de eigen white-box pool. Alleen heeft de eigen organisatie op geen enkele wijze een afhankelijkheid met de interne opbouw en ontwerp van het proces van de black box pool. De payment provider stelt een service interface ter beschikking van alle gebruikers (waar wij er één van zijn) en wij moeten ons conformeren aan die interface om van de diensten van de payment provider gebruik te kunnen en mogen maken. De message flow interacties vinden plaats vanuit onze &quot;eigen&quot; activiteiten met message send/receive elementen (tasks of events).</p><p>Bij een ketenpartner ziet het er iets anders uit. We modelleren wel een &quot;lokale&quot; placeholder voor de uitbestede activiteit. Omdat wij de regie hebben (wij zijn de proceseigenaar), zijn wij in staat aan die lokale placeholder allerlei eisen te stellen. We kunnen bijvoorbeeld uitspraken doen over hoe de activiteit wordt getriggerd (inkomende sequence flow) en hetzelfde voor de uitgaande sequence flow(s). We kunnen als wij dat willen de interne structuur van het (extern uitgevoerde) proces beschrijven. Wij gedragen ons als eigenaar van de uitbestede activiteit, en de afhankelijkheid is dus veel groter dan bij een &quot;gewone&quot; collaboration. De activiteit Werkproces 3b is dus eigenlijk &quot;onze&quot; activiteit. Omdat er iets bijzonders mee is maak ik gebruik van een grijstint van het blokje maar dit heeft geen betekenis en is een persoonlijke voorkeur (je ziet ook een blauwe black-box pool, hierover meer hieronder).</p><p>Samenvattend: om recht te doen aan de strakkere afhankelijkheid van een stap die onder onze eigen regie wordt uitgevoerd door een externe organisatie, stel ik voor gebruik te maken van een lokale placeholder met message flow connecties naar de externe organisatie.</p><p>Ik wil het diagram nog wat meer exploreren.</p><h4 class="wp-block-heading" id="h-alleen-werkprocessen-op-top-niveau">Alleen werkprocessen op top-niveau?</h4><p>We zien dat alle activiteiten op één na subprocessen zijn (het plusje in de activiteit). Hieronder zal ik de inhoud van die subprocessen laten zien. Er is echter (als voorbeeld) één activiteit opgenomen die geen subproces is maar een gewone (Abstract) Task: Processtap 4. Dit kan een simpele handeling zijn van bijvoorbeeld maar 1 stap. Het komt voor in dit procesniveau, en omdat een handeling in de bovenstaand definities is gekoppeld aan een rol binnen een afdeling/team is die informatie hier ook getoond: de rol Rol 02 binnen Afdeling 2.</p><p>Je kunt er ook voor kiezen op het top-niveau alleen werkprocessen te willen laten zien. Dan staat je niet veel anders te doen dan Processtap 4 een subactiviteit te maken van een Werkproces 4 dat je op het top-niveau toont. Beide zijn mogelijk.</p><p>Laten we door het proces lopen.</p><h4 class="wp-block-heading" id="h-walk-through">Walk-through</h4><p>Het proces wordt getriggerd door een Externe trigger (black-box pool, bijvoorbeeld een Klant). Dit is in het merendeel van de bedrijfsprocessen zo. Het inkomende verzoek wordt aangeduid met Bedrijfsobject 1, de message payload van de triggerende message flow. Een voorbeeld van een dergelijk object zou een Order kunnen zijn. We zeggen dan dat het bedrijfsproces in zijn geheel de &quot;Order&quot; representeerd. Bedrijfsprocessen hebben meestal een bedrijfsobject dat het proces representeert.</p><p>Vervolgens wordt door Afdeling 1 een proces uitgevoerd die wordt aangeduid met Werkproces 1. We zien dat dit een subproces is, en we zien dat er een uitgaande en inkomende message flow is (resp. request/response) met een externe black-box pool. Deze pool is hier blauw getint, wat een persoonlijke conventie is (geinspireerd door ArchiMate, waarin applicatie objecten blauw zijn). Ik adviseer applicatie koppelingen te modelleren met black-box koppelingen. Waarom?</p><ul class="wp-block-list"><li>Applicaties zijn encapsulated (als het goed is - service componenten die tegenwoordig in plaats van applicaties ontwikkeld worden zijn dat per definitie), dus onafhankelijk van de buitenwereld.</li><li>Applicaties worden gebruikt in een proces via een of andere API. Dit is perfect te mappen op het concept message flow, zeker wanneer er een asynchrone communicatie plaatsvindt (over (a-) synchroon later meer).</li><li>De gebruiker van een applicatie heeft geen enkele dependency met de interne structuur van de applicatie.</li></ul><p>We duiken straks dieper in wat er gebeurd binnen Werkproces 1. Ik ben er dus geen voorstander van om de applicatie als een Lane in het proces op te nemen, maar adviseer dit te modelleren als een externe black-box pool.</p><p>We zien dat op Werkproces 1 een XOR Gateway volgt. Daaruit kunnen wij afleiden dat het subproces Werkproces 1 twee end states heeft waarvan er één het label Fout heeft (labeling conventie van Gateways). Hieronder gaan we dit procesniveau expliciet beschrijven, voor nu lopen we nog even door het proces op dit top-niveau.</p><p>Als er een Fout end state is in Werkproces 1, moet nog een kleine handeling verricht wordt door Rol 02 in Processtap 4, waarna het proces eindigt in de state End state fout. Daarmee eindigt het proces (er zijn geen tokens meer in het proces).</p><p>Als er geen fout end state is, wordt Werkproces 2 uitgevoerd, waarvan we de binnenkant hieronder nader beschrijven. Na deze stap, komen we bij een splitsing (Parallelle Gateway) die ervoor zorgt dat Werkproces 3a en 3b parallel worden uitgevoerd. Werkproces 3b is de lokale placeholder voor werk dat in werkelijkheid uitgevoerd wordt door Ketenpartner. We gaan hieronder inzoomen op de stappen in dit subproces.</p><p>Nadat Werkproces 3b is afgerond volgt er een gateway: we zien hier al dat Werkproces 3b twee end states heeft waarvan er één het label Afgerond heeft. Wordt dit bevestigd (happy flow, de yes-gate wordt getriggerd) dan word gewacht in de merging parallelle gateway totdat Werkproces 3a klaar is. Zodra dat het geval is worden beide tokens gemerged en gaat het proces verder naar End state correct en het proces eindigt. Wanneer Werkproces 3a eerder klaar is dan Werkproces 3b wacht de merging gateway totdat Werkproces 3b klaar is, merged de tokens en gaat dan eveneens naar End state correct.</p><p>Wanneer Werkproces 3b echter niet in de end state Afgerond eindigt, wordt een foutmelding gestuurd naar de Externe trigger, en komt het proces in een Terminate end state fout. Dit moet een Terminate zijn (en niet bijvoorbeeld een Message Send End State) omdat er parallelliteit in het proces zit: Werkproces 3a zou nog niet klaar kunnen zijn. De Terminate End Event zorgt ervoor dat Werkproces 3a, mocht die nog bezig zijn, wordt afgebroken, en het gehele proces eindigt in End state fout.</p><p>Tot zover het top-level proces. Laten we nu inzoomen op de subprocessen.</p><h3 class="wp-block-heading">Werkproces 1</h3><figure class="wp-block-image size-large"><img src="https://blog.reflektis.nl/wp-content/uploads/Werkproces-1-1024x845.jpg" alt="" class="wp-image-12809"/></figure><p>In dit subproces zien we twee sublanes binnen de lane Afdeling 1, die van Uitvoerder (die Processtap 1.1 uitvoert) en die van Goedkeurder die Processtap 1.2 uitvoert. Ik ga verder niet in op dit subproces, en zoom meteen in op Processtap 1.2.</p><figure class="wp-block-image size-large"><img src="https://blog.reflektis.nl/wp-content/uploads/Processtap-1.2-1024x438.jpg" alt="" class="wp-image-12810"/></figure><p>In dit procesniveau zien we één voorbeeld van de twee manieren waarop applicatiekoppelingen gemodelleerd kunnen worden in procesmodellen, namelijk door een Service Task te gebruiken. Handeling 3 is de stap die uitgevoerd wordt door Applicatie 1. We zien de message flow interacties vanuit die service task. Merk op dat het gebruik van een Service Task impliceert dat de interactie <em>synchroon</em> plaatsvindt, en dat de message flows suggereren dat die <em>asynchroon</em> plaatsvindt. We zien de laatste tijd dat er een conventie ontstaat om asynchrone service interacties toch te modelleren met een service task en message flows, wanneer de request/response cyclus zeer kort (nano/millisecondes) is. Voor een voorbeeld van asynchrone interacties zie hieronder bij Werkproces 3b.</p><p>Ten overvloede: in dit subproces staan (nog) niet sublanes die de subrollen/personen binnen de rol Goedkeurder beschrijven (bijvoorbeeld om aan te geven dat Handeling 1 gedaan wordt door Junior Goedkeurder).</p><p>Merk ook op dat alle message flow interacties vanaf het laagste niveau (in dit geval Handeling 3) omhoog propageren tot op het top-niveau.</p><h3 class="wp-block-heading">Werkproces 3b</h3><figure class="wp-block-image size-large"><img src="https://blog.reflektis.nl/wp-content/uploads/Werkproces-3b-1024x687.jpg" alt="" class="wp-image-12813"/></figure><p>In dit subproces is weliswaar geen sprake van een applicatiekoppeling maar met een externe ketenpartner, maar merk op dat het koppelingspatroon hetzelfde is.</p><p>We zien dat wij in dit proces niets doen, alles wordt via asynchrone message flows gedelegeerd naar Ketenpartner. We zien ook een time-out op het proces staan, een standaard onderdeel van elke externe delegatie.</p><p>We zien ook een ander pattern: de send is een task, en de receive is een event. Hierdoor kunnen wij bijvoorbeeld een loop zetten op de send, of een boundary.</p></div></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 05 Feb 2024 11:26:48 +0100</pubDate></item></channel></rss>