Feedback requested: Information driven process design
An esteemed associate of mine asked me recently if I believe that a conceptual information model, created and delivered independently from a process model, can be considered useful when attempting to improve a business. In other words, if you have an conceptual information model, can you use it directly, or do you need to produce a process model as well?
The answer, as is typical of EA answers, is buried in the question. If the goal is to improve a business measurable (like customer satisfaction, or average dollars per order, or customer acquisition cost), then the information model is not useful by itself. A process model that illustrates how the information is generated and managed must also exist.
So we will often need to develop both a conceptual model of a business and a process model for the business… but which comes first? Must they be done in parallel? Or should an architect create one before the other?
Personally, I know of cases where a process model existed long before a conceptual model did, and vice versa, so clearly the efforts are not contingent upon the other. In fact, in the situation I am in right now, the business has defined a rich process model that has grown out of date. I have separately developed a conceptual information model that includes concepts considered important by the stakeholders.
Now comes an interesting question: how do we take an updated conceptual information model and use it to improve an existing (but dated) process model?
I have my ideas, but I’m wondering if you, gentle reader, have specific ideas to share as well? I’ll outline my thinking, but I invite a discussion: is there a better way?
Situation: a project team finds that they have a conceptual information model, and/or business vocabulary, that is not in sync with the processes that the business says they want to standardize upon. How do we use one to improve the other?
Nick’s method:
- Step 1: insure the conceptual model reflects the complete breadth of the process model. This requires going through the process model and identifying all elements referenced, and insuring that they are correctly represented in the information model. Capturing nouns, verbs, and relationships is key to this step, as are the negotiation skills needed to get everyone to agree on the resulting diagram.
- Step 2: identify entities on the information model that are key entities. Indicators of key entity: (a) many different stakeholders define the entity as important to their work, (b) the entity is necessary to model the primary relationship between two other key entities, or (c) the entity is part of a key business measure. An example of the third indicator: if the business scorecard includes a measure of “number of open incidents” then the term ‘incident’ is a key entity.
- Step 3: establish dependency relationships for key entities. It is common for one data entity to depend upon another. The ‘order’ entity depends upon the ‘product’ entity, for example (in most businesses, it is difficult to order a product that the business does not have in their catalog).
- Step 4: define a loose process model that describes each of the lifecycle events of the key entities on a timeline: when is the entity data created? When is it used? When is it updated? When is it archived? When is it deleted? Drill down on the steps to identify where specific information must enter the process in order to manage the information.
- Step 5: compare the newly generated “loose” process model to the out of date process model in existence. Use the new one as a guide to making incremental changes to the existing process model.
OK… that’s a swag. Does anyone have a reference to a well documented and sound methodology for taking a conceptual information model and using it to improve an existing, and potentially out of date, process model?
Comments
- Anonymous
December 18, 2008
Nick, Yes, this process is also supported by UML.
- Define processes using activity diagrams with activity nodes and flows only (without ObjectNodes).
- Define entity view - class diagrams and corresponding state diagrams for selected classes
- Add ObjectNodes to activity diagrams and CONNECT two separate views in this way - process view (activity diagram) and entity view (classes/states). As business team responsible for business processes uses different tool than design teams, we do not use this approach very often... We do it as mental exercise only :( It is one of the reasons, why BPMN should be more connected to UML.
Anonymous
December 18, 2008
Hello pr, Yes, that method allows me to mechanically connect the two, but does it offer me a methodology for improving one from the other? Not as rich as the one I outlined in the blog post. --- NAnonymous
December 18, 2008
I do not understand you entry probably. What does it mean:
- "COMPARE the newly generated “loose” process model to the out of date process model in existence." These "processes" are TOTALLY different:
- First (existing process model) defines steps to achieve business goal
- Second defines entity lifecycle (entity "state" can be changed by many different business processes and many different business goals can be achieved during lifecycle of one entity) I cannot COMPARE them as they do not reflect the same view, but I can validate, that process model and entity model are CONSISTENT. I can validate that business processes (e.g. specified using activity diagrams):
- are fully specified - business processes covers all entity transitions according to specified entity state diagram
- are correct (relating to entity lifecycle) - business processes performs changes of entity, which correspond to state diagram
Anonymous
December 19, 2008
Hello pr. You seem to have stopped reading half-way through the post. My post talked about two things: A and B. They are independent. But can we use A to improve B? I then go on to describe a method where you can use A to create a new B (let's call it B-prime). You would then use B-prime to improve B. So, to translate back into English, we would use the conceptual model to CREATE A NEW (LOOSE) PROCESS MODEL, and from that, draw observations about the existing process model. So, my question was not "Can one do this?" Clearly I can. The question is: "Has another method been documented?" I'm assuming that I'm not the first person to attempt to use A to improve B. --- NickAnonymous
December 22, 2008
Sorry, can't provide a reference to another method. I can say what you described looks reasonable.Anonymous
February 03, 2009
URDAD is a methodology used to ensure analysis at the lowest level of granularity for UML. It takes use case for use case, identifyng the responsibilities at the lowest level depicting the activities, sequence diagrams and object/classes it touches....Have a look at www.solms.co.za, I may be of the boat on this one, but have a look - it may help.