<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Thoughts on business requirements, models and rules</title><subtitle type="html" /><id>http://blogs.msdn.com/policy_based_business/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/policy_based_business/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2008-04-06T16:08:00Z</updated><entry><title>Moving to a new site</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2009/04/06/moving-to-a-new-site.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2009/04/06/moving-to-a-new-site.aspx</id><published>2009-04-07T00:57:00Z</published><updated>2009-04-07T00:57:00Z</updated><content type="html">&lt;p&gt;I have started a new blog at &lt;a href="http://organizingknowledge.blogspot.com" mce_href="http://organizingknowledge.blogspot.com"&gt;http://organizingknowledge.blogspot.com&lt;/a&gt;.&amp;nbsp; I will be continuing to post my observations there!&lt;/p&gt;&lt;p&gt;Thank you for reading this blog and I hope to hear from you at my new site!&lt;/p&gt;&lt;p&gt;Andrea &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9534552" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author></entry><entry><title>Continuing "What makes for a "good" model?"</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/12/16/continuing-what-makes-for-a-good-model.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/12/16/continuing-what-makes-for-a-good-model.aspx</id><published>2008-12-17T06:18:00Z</published><updated>2008-12-17T06:18:00Z</updated><content type="html">&lt;P&gt;In my last post (I was told that some people's heads exploded when reading it :-) ), I talked about some fundamental modeling concepts and how they help to define&amp;nbsp;classes and their inheritance.&amp;nbsp; The 3 concepts (defined by Guarino and Welty's work on OntoClean) are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Essence - these are concepts (Guarino and Welty call them "properties") that are true for all instances of a class and that&amp;nbsp;"define" the semantics of the class, such as the "property" of "being human"&lt;/LI&gt;
&lt;LI&gt;Identity - concepts/properties that determine the equality of instances&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Unity - concepts/properties that define where the boundary of an instance is, or distinguish the parts of a "whole"&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Essential properties are known as "rigid" properties.&amp;nbsp; But there are lots of non-rigid aspects of a class like its purpose,&amp;nbsp;current state or some quality, such as its color(s).&amp;nbsp;These non-rigid aspects are categorized into 3 types:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Phased sortals - These are properties whose values change over the lifetime of an instance.&amp;nbsp; This is exemplified by&amp;nbsp;the properties "being a caterpillar" or "being a butterfly" for the class, Lepidopteran.&amp;nbsp; The same individual lepidopteran starts out as a caterpillar and later becomes a butterfly.&amp;nbsp; There is only one basic class with identity - that of Lepidopteran.&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Another interesting example is the concept of "county".&amp;nbsp; County actually carries two meanings - that of a geographical area (which does not change identity or value) and that of a geopolitical area (which can change in size, name value,&amp;nbsp;or even cease to exist).&amp;nbsp; Care should be taken to make sure that the invariant aspect is modeled as a class.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Roles - These are properties that define how something participates in an event, activity or state of affairs.&amp;nbsp; For example, a dog might be a pet, a pest or food - depending on the type of dog and area of the world.&amp;nbsp; So, having a "pet" or "food" supertype for a dog would be quite invalid.&amp;nbsp; This is really a description of the dog's purpose, not its&amp;nbsp;subsumption.&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;Another example is the concept of an "agent" - perhaps a human, a social&amp;nbsp;club,&amp;nbsp;software, a legal entity, etc.&amp;nbsp; Yes, any of these entities could act as an agent - at any point in time - but this is not an essential aspect of their being.&amp;nbsp;&amp;nbsp;It would indeed seem odd to make "agent"&amp;nbsp;a supertype of any or all of these entities - yet, I have seen it done in models.&amp;nbsp; &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Attribution - These are qualities of an instance, such as separating red and green apples, or MacIntosh versus Gala apples.&amp;nbsp; Attributes serve to create ad-hoc groupings - and the need for various groupings and therefore various attributes evolves over time.&amp;nbsp; A grouping that&amp;nbsp;might seem important today will very likely lessen in value over time.&amp;nbsp; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;As is probably obvious from this discussion,&amp;nbsp;non-rigid properties/concepts should &lt;STRONG&gt;&lt;U&gt;never&lt;/U&gt;&lt;/STRONG&gt;&amp;nbsp;occur in the backbone of an inheritance hierarchy!&amp;nbsp; The backbone should only&amp;nbsp;contain the invariant aspects of&amp;nbsp;the domain being modeled.&amp;nbsp; Similarly, these properties&amp;nbsp;would never be identity or unity properties!&amp;nbsp; These should only be properties within a class or&amp;nbsp;related to a class/instance.&lt;/P&gt;
&lt;P&gt;I thought that these distinctions were pretty fascinating - and that without consciously thinking about them, we can and do create erroneous models.&lt;/P&gt;
&lt;P&gt;Anyway, I'm now done with my&amp;nbsp;overview of Guarino and Welty's work.&amp;nbsp; And, my apologies if anyone's heads exploded a second time. :-)&lt;/P&gt;
&lt;P&gt;Happy Holidays!&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9230204" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author><category term="Models" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Models/default.aspx" /></entry><entry><title>What makes for a "good" model/ontology?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/11/17/what-makes-a-model-aka-an-ontology-good.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/11/17/what-makes-a-model-aka-an-ontology-good.aspx</id><published>2008-11-17T23:59:00Z</published><updated>2008-11-17T23:59:00Z</updated><content type="html">&lt;P&gt;Recently, I have&amp;nbsp;been reading about&amp;nbsp;models/ontologies&amp;nbsp;- their development, formal analysis, mapping/merging, and similar concepts.&amp;nbsp; Being geeky, I was drawn to the book,&amp;nbsp;"The Handbook of Ontologies" (ISBN 3-540-40834-7, published by Springer-Verlag in 2004).&amp;nbsp; In it, I found a chapter on the philosophy behind OntoClean (Chapter 8, "An Overview of OntoClean"), which was written by the originators of the methodology, Nicola Guarino and Christopher Welty.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What Guarino and Welty did was analyze what it means to create a "good" ontology&amp;nbsp;- in other words, they defined&amp;nbsp;the heuristics behind a "good" model.&amp;nbsp; They did this by starting from&amp;nbsp;philosophical first principles - understanding that the basics of a good model was something that philosophers themselves had "been trying to describe ... in a formal, logical way since the time of Aristotle."&amp;nbsp;&amp;nbsp;They talk about philosophers&amp;nbsp;struggling "with deep problems of existence, such as God, life and death, or whether a statue and the marble from which it is make are the same entity."&amp;nbsp; (Now, I must admit that I have never had a "God" class in my models, but the discussion did&amp;nbsp;remind me of arguments about whether&amp;nbsp;a computer and its backing hardware the same thing?&amp;nbsp; I always said "no" but now I have philosophical and computer science reasoning to back me up.) :-)&lt;/P&gt;
&lt;P&gt;Anyway, back to&amp;nbsp;Guarino and Welty's work...&amp;nbsp; They focus on 3 main ideas - essence/rigidity, identity and unity.&amp;nbsp; I will try to explain each below&amp;nbsp;and give examples.&amp;nbsp; BTW, I have to first give a brief explanation of the word, property, since the semantics vary a lot in the literature.&amp;nbsp; In this work,&amp;nbsp;a property is the meaning or intention of an expression (so a property is&amp;nbsp;T or F, a unary predicate -&amp;nbsp;for&amp;nbsp;example, "being a human" or "having a brain"). Now, back to essence, identity and unity:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Essence/Rigidity - &amp;nbsp;A property that is &lt;EM&gt;essential&lt;/EM&gt; is one that must be true for all instances, at all times.&amp;nbsp;This means that the property is "rigid".&amp;nbsp; Here are a few examples:&amp;nbsp; An Apple (the property of "being an apple") is rigid but a RedApple is not rigid - aka&amp;nbsp;anti-rigid. "Being red" does not affect whether a thing is an apple.&amp;nbsp; This implies that "RedApple" really shouldn't be in your hierarchy as a backbone concept,&amp;nbsp;but color could be an attribute on an Apple - if you needed to distinguish red from green, for example. On the other hand, "being a person" is rigid but "being a student" is semi-rigid (meaning that the property can "acquire or lose (some of) their instances depending on the state of affairs at hand").&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Identity - &amp;nbsp;Is a property by which one can determine the equality of instances and by which one can reason over equality (i.e., entail equality).&amp;nbsp; This requires an ability to recognize instances as they evolve over time and at any point in time.&amp;nbsp; A great example is that the property Lepidopteran (an order of insects that includes moths and butterflies) carries&amp;nbsp;identity, but the properties of caterpillar and butterfly do not.&amp;nbsp; If you went&amp;nbsp;straight&amp;nbsp;from modeling "LivingBeing" to modeling a caterpillar and a butterfly, you would be missing something important - how to&amp;nbsp;identify&amp;nbsp;the individual.&amp;nbsp;A single instance of a lepidopteran may be a caterpillar or a butterfly at different points in time - but it is still the same instance.&amp;nbsp; So, "being a lepidopteran" is the thing that "owns" defining identity - and this is inherited to a caterpillar and a butterfly.&lt;/LI&gt;
&lt;LI&gt;Unity - Is a property by which one can distinguish a whole from its parts, and/or distinguish the boundaries of an entity.&amp;nbsp;It is defined by&amp;nbsp;a&amp;nbsp;"unifying&amp;nbsp;relation" - such as a&amp;nbsp;topological relation (based on&amp;nbsp;continuity of space, such as a lump of coal),&amp;nbsp;a morphological relation (based on form&amp;nbsp;or structure, such as a constellation) or a functional relation (based on&amp;nbsp;function/use, such as a&amp;nbsp;bikini). The bikini is a great example, because it indicates that a whole may be made up of other "wholes".&amp;nbsp;Let's look at a few&amp;nbsp;more examples:&amp;nbsp;A Country (as a geo&lt;EM&gt;political&lt;/EM&gt; area)&amp;nbsp;has identity and unity (but may cease to exist),&amp;nbsp;but&amp;nbsp;something that does&amp;nbsp;not have unity is a&amp;nbsp;Geo&lt;EM&gt;graphical&lt;/EM&gt;Area. The latter&amp;nbsp;does not have a single "unifying relation" which defines it.&amp;nbsp; Its boundaries can be determined differently, based on different perspectives.&amp;nbsp; But a GeographicalArea does have an identity - we can give it a name or&amp;nbsp;location.&amp;nbsp;On the other land,&amp;nbsp;Water or Clay are anti-unities.&amp;nbsp; They are just descriptions of an amount of something, not&amp;nbsp;"whole"s in and of themselves.&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Building on these basic concepts, Guarino and Welty define criteria for analyzing an ontology.&amp;nbsp; Here are several&amp;nbsp;rules and some&amp;nbsp;examples of the rules in action:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;If a property is anti-rigid or anti-unity, then any properties that it subsumes (that inherit from&amp;nbsp;it) must also be anti-rigid or anti-unity.&amp;nbsp; For example, it would not make sense to subclass a Person from AmountOfMatter - since a Person is a whole (a unity) and Matter is an anti-unity (it can be divided into different instances/groupings).&amp;nbsp; Certainly, a Person is composed of Matter, but a&amp;nbsp;compositional&amp;nbsp;relation is not inheritance.&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;If a property carries identity or unity criterion, then any properties that it subsumes (that inherit from&amp;nbsp;it) must also carry that criterion. For example, it is incorrect to subclass a SocialEntity from a GroupOfPeople - since a SocialEntity is more than just a GroupOfPeople.&amp;nbsp; You might have two SocialEntities (a neighborhood watch team and a beautification organization) that have the same members (are therefore the&amp;nbsp;same GroupOfPeople) but they are very different Entities.&amp;nbsp; Also, if the membership of one of the SocialEntities changes, the Entity&amp;nbsp;itself persists, but the GroupOfPeople changes.&amp;nbsp; (Wow, these really aren't the same but I have been&amp;nbsp;guilty of making this mistake.&amp;nbsp; Now I know why it was so hard to maintain the identity property for a Group or Collection&amp;nbsp;- and why I always ended up using a string Name!)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;There is lots more to write about&amp;nbsp;analyzing non-rigid properties.&amp;nbsp; But, I will get into that in my next post.&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9113130" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author><category term="Models" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Models/default.aspx" /><category term="Upper Ontologies" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Upper+Ontologies/default.aspx" /></entry><entry><title>Question on what "policy based business" means ...</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/09/10/question-on-what-policy-based-business-means.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/09/10/question-on-what-policy-based-business-means.aspx</id><published>2008-09-10T22:53:00Z</published><updated>2008-09-10T22:53:00Z</updated><content type="html">&lt;P&gt;Someone sent me a private&amp;nbsp;email&amp;nbsp;asking about the origins of the name of my blog. So, here it is ...&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I originally started working on rules and expert systems&amp;nbsp;a long time ago in a galaxy far, far&amp;nbsp;away - in fact, it was&amp;nbsp;Intel Architecture Labs, under a very smart leader named Hans Witt (Hans is now part of Haley).&amp;nbsp; I went through lots of&amp;nbsp;different directions over the&amp;nbsp;following years, including time at Cisco working on networking SLAs, firewall and configuration&amp;nbsp;rules, etc.&amp;nbsp; And, I spent time in the DMTF and IETF authoring&amp;nbsp;policy models and RFCs (take a look at RFCs 3060, 3198 and 3670).&amp;nbsp; But, in spite of all the low-level, siloed work, I kept believing that policies and rules were motivated by the business and its needs (and not specific technologies).&amp;nbsp;And, I kept believing that we were missing the most important user/customer of policy - the business.&amp;nbsp;I ended up at Microsoft focusing&amp;nbsp;on&amp;nbsp;business - working&amp;nbsp;to capture a business' goals&amp;nbsp;and ways of doing business (corporate policies, management directives, processes, vocabularies) as&amp;nbsp;formal, analyzable&amp;nbsp;definitions that could then be acted upon by existing infrastructures. The goal of the work is to go from&amp;nbsp;a business'&amp;nbsp;"natural language" to artifacts that can be refined in&amp;nbsp;model-driven infrastructures.&lt;/P&gt;
&lt;P&gt;There are certainly lots of tools and standards&amp;nbsp;in the business process, business modeling space - but only&amp;nbsp;for the educated professional.&amp;nbsp;:-)&amp;nbsp; For example, there are business process&amp;nbsp;diagrams that can be&amp;nbsp;expressed in&amp;nbsp;BPMN (Business Process Modeling Notation), collaboration, activity and use case diagrams captured&amp;nbsp;in&amp;nbsp;UML (Unified Modeling Language),&amp;nbsp;tool-specific definitions of&amp;nbsp;"interactions" or "communications" (usually saved in&amp;nbsp;some proprietary XML), data models&amp;nbsp;focused at a conceptual, implementation-independent level (perhaps captured as&amp;nbsp;UML objects)&amp;nbsp;or a specific database's definitions rendered as&amp;nbsp;entity-relationship diagrams, and on and on.&amp;nbsp; Then, you can&amp;nbsp;capture rules as UML's OCL (Object Constraint Language).&amp;nbsp;Or, you&amp;nbsp;have&amp;nbsp;the "business rules"&amp;nbsp;approaches.&amp;nbsp; There are many&amp;nbsp;of these tools around - but they are again geared to the educated professional (dare I say, programmer?) and&amp;nbsp;usually targeted at a single, backing rules engine.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;None of this is really accessible to or usable by a business person. I was told by several of my&amp;nbsp;customers that business people use three&amp;nbsp;tools - documents and emails (written word with some pictures and graphics)&amp;nbsp;and spreadsheets.&amp;nbsp;&amp;nbsp;Period, end of story. So, none of the complex diagrams or acronyms really help in this space.&amp;nbsp; But,&amp;nbsp;there are some&amp;nbsp;options that go in the right direction. Ron&amp;nbsp;Ross&amp;nbsp;advocates writing rules in a clear, precise manner -&amp;nbsp;"RuleSpeak" (&lt;A href="http://www.brsolutions.com/p_rulespeak.php"&gt;http://www.brsolutions.com/p_rulespeak.php&lt;/A&gt;). If we have this,&amp;nbsp;should&amp;nbsp;we be able to formally analyze the vocabularies and rules, and then&amp;nbsp;transform them to UML and many other encodings?&amp;nbsp; Yes!&amp;nbsp; And, could we&amp;nbsp;share this data and interoperate based on&amp;nbsp;standards such as SBVR, the Semantics&amp;nbsp;of Business Vocabulary and Business Rules from OMG (&lt;A href="http://www.omg.org/spec/SBVR/1.0/"&gt;http://www.omg.org/spec/SBVR/1.0/&lt;/A&gt;)?&amp;nbsp; Yes!&amp;nbsp;&amp;nbsp;Cool, "policy-based business".&lt;/P&gt;
&lt;P&gt;From another angle, Forrester wrote an interesting piece in &amp;nbsp;May 2008, under the title, "How the Convergence of Business Rules, BPM and BI&amp;nbsp;Will&amp;nbsp;Drive Business Optimization".&amp;nbsp; That report has a great graphic that business policies drive processes and rules, which in turn consume and generate data.&amp;nbsp;Forrester&amp;nbsp;says "Enterprises are run by policies".&amp;nbsp; I take that as validation of the "policy-based business". :-)&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8941848" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author></entry><entry><title>Human Interactions and Business Processes - OR - "Processes Don't Do Work, People Do"</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/09/09/human-interactions-and-business-process-or-processes-don-t-do-work-people-do.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/09/09/human-interactions-and-business-process-or-processes-don-t-do-work-people-do.aspx</id><published>2008-09-10T00:28:00Z</published><updated>2008-09-10T00:28:00Z</updated><content type="html">&lt;P&gt;The quote above comes from &lt;EM&gt;The People Are the Company&lt;/EM&gt; by John Seely Brown and Estee Solomon Gray.&amp;nbsp; It is a great quote highlighting where business process tooling seems to fail - in handling human interactions and&amp;nbsp;their approaches to processes and problem solving.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;This is the subject of a book (written in 2005) by Keith Harrison-Broninski, &lt;EM&gt;Human Interactions, The Heart and Soul of Business Process Management&lt;/EM&gt;. The information is also overviewed in a paper by Harrison-Broninski at&amp;nbsp;&lt;A href="http://human-interaction-management.info/A%20Role-Based%20Approach%20To%20Business%20Process%20Management.doc" mce_href="http://human-interaction-management.info/A%20Role-Based%20Approach%20To%20Business%20Process%20Management.doc"&gt;http://human-interaction-management.info/A%20Role-Based%20Approach%20To%20Business%20Process%20Management.doc&lt;/A&gt;. The paper and book describes the mismatch between human-driven and machine-driven processes, and that most processes are the former, while most&amp;nbsp;tooling supports the latter.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The mismatch with human processes is that: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;People evolve and adapt a process depending on&amp;nbsp;various factors (such as what they learned in another process or iteration)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Therefore the process canNOT be prescriptive but should be "supportive"&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;People work multiple roles and/or processes&amp;nbsp;simultaneously and may bring knowledge from one role or process into another&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Who a person is, what they do and what they know make a difference to the outcome&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;People turn information into knowledge and incorporate that knowledge into the outcome&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Information and knowledge&amp;nbsp;are not static&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;People jump around in a process trying to be as efficient and effective as possible&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Again,&amp;nbsp;the process canNOT be prescriptive but should define a typical/best practice approach&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;So, where do we go with this?&amp;nbsp; The author suggests using and&amp;nbsp;modifying&amp;nbsp;Role Activity Diagrams (RADs).&amp;nbsp; Before reading this book, I had only a passing acquaintance with these diagrams (since there is almost no tool support for them).&amp;nbsp;RAD&amp;nbsp;was conceived quite some time ago - it was proposed in 1983 by Holt, Ramsey and Grimes in &lt;EM&gt;Electrical Communication&lt;/EM&gt;. Although not widely implemented, the concepts&amp;nbsp;are quite valuable and should be used to inform BPMN and other high-level process modeling work.&lt;/P&gt;
&lt;P mce_keep="true"&gt;OK, then,&amp;nbsp;what are the main&amp;nbsp;concepts in RADs? These are defined as:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Roles (divisions of responsibilities)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Users (specific humans, organizations/groups, machines, etc. assigned to/placed in roles)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Resources (any process object and/or&amp;nbsp;information) &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Activities (one or more tasks that manipulate resources)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Interactions between roles&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;States of a process (logical conditions that control execution and validation of activities) &lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;You can probably see the corrollaries and differences vis-a-vis BPMN (Business Process Modeling Notation, &lt;A href="http://www.bpmn.org/"&gt;http://www.bpmn.org&lt;/A&gt;).&lt;/P&gt;
&lt;P mce_keep="true"&gt;And, what modifications are needed? These are discussed in Chapter 3 (a "New Theory of Roles")&amp;nbsp;of the &lt;EM&gt;Human Interactions&lt;/EM&gt; book as:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Adding attributes to roles and users (more on this below)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Use of a role to start, stop or manage processes - which means that anything can be a resource/trigger and can be shared with another role or user&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Ability to track that&amp;nbsp;multiple copies of information&amp;nbsp;exist as a normal part of the process&amp;nbsp;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Allowing jumps from one activity to another, along with&amp;nbsp;repeating and interleaving activities as necessary&amp;nbsp;&lt;/DIV&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;This directly relates to the fact&amp;nbsp;that a process is informational, and not prescriptive, and that each activity should have pre/post-conditions to define when it can occur&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Activities are not atomic (just as BPMN processes are not atomic) but can be further defined/refined&amp;nbsp;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Interactions are not synchronous - there are multiple channels for sending and receiving resources/information&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;These thoughts really resonated with my experiences, and suggested areas to work to better capture business process information.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I did want&amp;nbsp;to expand on what Role and User attributes were deemed valuable (I mentioned this in the list directly above).&amp;nbsp; For Roles, these are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Goals (terminating conditions)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Responsibilities and requirements&amp;nbsp;("always true"&amp;nbsp;conditions)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Necessary data/information&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;References to other roles (to get more information)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Capabilities&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Process authority&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;And for Users, these are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Identity&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Physical and virtual location&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Private information (beyond what is provided in the Role)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Relationships (at the instance level)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Behavioral tendencies&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Capabilities&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Organizational authority&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;Pretty interesting!&amp;nbsp; More on this in later posts.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Andrea&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8937593" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author><category term="Models" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Models/default.aspx" /><category term="Business" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Business/default.aspx" /><category term="BPM" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/BPM/default.aspx" /></entry><entry><title>Interesting book chapter on defining a model ...</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/08/16/interesting-book-chapter-on-defining-a-model.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/08/16/interesting-book-chapter-on-defining-a-model.aspx</id><published>2008-08-17T09:27:00Z</published><updated>2008-08-17T09:27:00Z</updated><content type="html">&lt;P&gt;But, it is really a chapter of a&amp;nbsp;book on implementing ITIL (IT's Infrastructure Library) Configuration Management!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.informit.com/articles/article.aspx?p=1154763"&gt;http://www.informit.com/articles/article.aspx?p=1154763&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;This particular chapter is about figuring out what types of "configuration items" (i.e., IT objects) need to be managed, what instances of those objects need to be populated, and how the properties/attributes of the objects are determined.&amp;nbsp; These topics are described&amp;nbsp;as "scope", "span" and "granularity".&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Under scope, the article highlights the importance of understanding both things (software programs, computers, etc.) and relationships.&amp;nbsp; For me, relationships are&amp;nbsp;as&amp;nbsp;important as&amp;nbsp;the objects themselves (maybe more important!)&amp;nbsp;- since they describe dependencies and coordinations between objects that become the&amp;nbsp;critical details&amp;nbsp;behind analyses (think about root-cause analyses!).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Although the subject of what is modeled may vary (IT items versus online shopping accounts), the discussion is quite good regarding&amp;nbsp;thinking about modeling alternatives ("do I need to model everything?"), and makes some concrete suggestions on how to proceed. For example, book chapter lists the following&amp;nbsp;"criteria ...&amp;nbsp;to determine scope" (determining the concepts that need to be modeled):&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Start simple - start with the things that&amp;nbsp;"can be quickly learned and easily maintained"&lt;/LI&gt;
&lt;LI&gt;Consider the cost - "what [can you] afford to manage and what [can you] afford to ignore"?&lt;/LI&gt;
&lt;LI&gt;Score easy victories - "build confidence&amp;nbsp;early"&lt;/LI&gt;
&lt;LI&gt;Look ahead to value - "look forward to projects your organization is likely to tackle ..., and structure your ... [data] to provide the information that will be needed"&lt;/LI&gt;
&lt;LI&gt;Reduce your risk&amp;nbsp;(related to the data) -&amp;nbsp;determine how you will gather the data and "how you will manage&amp;nbsp;that data"&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The other&amp;nbsp;interesting thing about the book chapter&amp;nbsp;(at least for me) is that it highlights the value of CIM, the Common Information Model from the DMTF (&lt;A href="http://www.dmtf.org/"&gt;http://www.dmtf.org&lt;/A&gt;).&amp;nbsp; As ex-VP of Technology of the DMTF, that is very cool!&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8873537" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author><category term="Models" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Models/default.aspx" /></entry><entry><title>Musings on policies and rules of different types, dealing with different scopes</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/08/05/musings-on-policies-and-rules-of-different-types-dealing-with-different-scopes.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/08/05/musings-on-policies-and-rules-of-different-types-dealing-with-different-scopes.aspx</id><published>2008-08-06T03:36:00Z</published><updated>2008-08-06T03:36:00Z</updated><content type="html">&lt;P&gt;There are many different kinds&amp;nbsp;of policies and rules - going&amp;nbsp;from&amp;nbsp;high-level corporate&amp;nbsp;policies on how business is conducted&amp;nbsp;and its information is secured, to&amp;nbsp;extremely low-level rules about how a specific component in a piece of hardware or software operates (for example, garbage collection in the OS&amp;nbsp;must be run at least once&amp;nbsp;every 1min).&amp;nbsp;&amp;nbsp;Are all of them defined&amp;nbsp;and managed the same way?&amp;nbsp; I don’t believe so, since&amp;nbsp;the scope of the policies/rules and the definitional environments&amp;nbsp;are very different.&amp;nbsp; (By the latter, I mean that&amp;nbsp;the policy definers&amp;nbsp;speak different “languages” and use different tooling.&amp;nbsp;For example, business people "program" in tools like Word, Excel and Outlook. :-)&lt;/P&gt;
&lt;P&gt;Now, traditional programmers will raise cries of disbelief that business people program&amp;nbsp;in Word.&amp;nbsp; However, consider a&amp;nbsp;well-written business requirement document - this&amp;nbsp;defines a business&amp;nbsp;process, its data and&amp;nbsp;flow,&amp;nbsp;requirements for validity checking, algorithms&amp;nbsp;for calculations, decision points, etc.&amp;nbsp; Sounds like a program to me - but we don't capture it as such.&amp;nbsp; We think of it as unstructured data which has missing information (usually basic assumptions and definitions that the business person thinks too obvious to write down, but that a programmer unfamiliar with the environment misses completely) and errors (unstructured data can't be analyzed). But, what if we&amp;nbsp;could analyze Word docs?&amp;nbsp; (I will come back to this in later posts.)&lt;/P&gt;
&lt;P&gt;Let's go back to talking about&amp;nbsp;types of policies and rules - and interactions between different types and scopes.&amp;nbsp;&amp;nbsp;Even though policies and rules might be defined in specific, isolated "communities", they&amp;nbsp;do impact each other.&amp;nbsp; One&amp;nbsp;example is where government-mandated compliance policies may override business processes and rules.&amp;nbsp; But, this is pretty easy to understand since they are both&amp;nbsp;defined at the&amp;nbsp;"business" level.&amp;nbsp; Another example where&amp;nbsp;intersection of rules might occur&amp;nbsp;is where an IT policy causes a business application to fail or perform badly.&amp;nbsp; However, since these are defined by different people in different scopes - you usually don't know about a problem until it happens (too late).&amp;nbsp; It would be good to know where these overlaps and problems are,&amp;nbsp;before they happen.&amp;nbsp; Doh!&amp;nbsp; &lt;/P&gt;
&lt;P&gt;So, simulation is vey important - but I think that more is needed.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Analysis of business definitions and requirements&amp;nbsp;- maybe using existing ontological map/merge techniques (!) - would help to find errors and inconsistencies at the same policy level. (That takes us back to the importance of analyzing Word docs.)&amp;nbsp; And, the ability to tie rules across levels using KPIs (key performance indicators) and SLOs (service level objectives) is one way to go.&amp;nbsp; Implementation-specific or monolithic rule structures seem like very bad ideas to me.&amp;nbsp; Also, a universal policy language (usually based on if-then-else programming constructs) seems wrong to me.&amp;nbsp; The latter&amp;nbsp;is too deterministic ("a gold customer&amp;nbsp;must&amp;nbsp;get at least a 10% discount&amp;nbsp;on all purchases" is not as deterministic as it appears :-), and it would be crazy to tie policies&amp;nbsp;from high-level to low-level in a single definition.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Andrea&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8835569" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author><category term="Policy and Rules" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Policy+and+Rules/default.aspx" /><category term="Semantic Web" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Semantic+Web/default.aspx" /><category term="Business" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Business/default.aspx" /></entry><entry><title>What are business policies and business rules?  </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/07/29/what-are-business-policies-and-business-rules.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/07/29/what-are-business-policies-and-business-rules.aspx</id><published>2008-07-30T06:10:00Z</published><updated>2008-07-30T06:10:00Z</updated><content type="html">&lt;P&gt;Forrester says that "enterprises run by policies" (in their report from May of this year, "How the Convergence of Business Rules, BPM and BI Will Drive Business Optimization").&amp;nbsp; In turn, "policies create processes and rules", which&amp;nbsp;"consume" and "generate" (and validate) data.&amp;nbsp; (I like it!)&lt;/P&gt;
&lt;P&gt;But, what is policy?&amp;nbsp;And, if we know what policies are ... what are rules?&lt;/P&gt;
&lt;P&gt;Stanford’s Policy Repository (&lt;A href="http://www2.slac.stanford.edu/policy/definitions.asp)" mce_href="http://www2.slac.stanford.edu/policy/definitions.asp)"&gt;http://www2.slac.stanford.edu/policy/definitions.asp)&lt;/A&gt; defines policy as “A statement of principles and/or values that mandate or constrain the performance of activities used in achieving institutional goals. A policy is general in nature, has broad application and helps to ensure compliance with: applicable laws and regulations; contract requirements; and delegation of authority by the University Board of Trustees. Policies promote operational efficiencies and reduce institutional risk. Policies do not contain requirements. Directives, processes, procedures, work instructions, and the like flow from policies and the requirements are specified in them.“ &lt;/P&gt;
&lt;P&gt;Well, I don’t think that we can formally define and implement these kinds of policies,&amp;nbsp;but we can capture them (and the instruments where they are defined, such as documents), and then capture the details and artifacts (procedures, rules, work flows, etc.) which “flow from" them.&amp;nbsp; (Traceability and refinement are very important here, and I will be blogging more about this in coming months.)&lt;/P&gt;
&lt;P&gt;As a counterpoint to the Stanford definition, we have the famous/infamous Wikipedia.&amp;nbsp; &lt;A href="http://en.wikipedia.org/wiki/Policy" mce_href="http://en.wikipedia.org/wiki/Policy"&gt;http://en.wikipedia.org/wiki/Policy&lt;/A&gt;&amp;nbsp;defines policy&amp;nbsp;as “a deliberate plan of action to guide decisions and achieve rational outcome(s)”. Wow! This is very different,&amp;nbsp;and sounds more like a process (whenever people start to talk about "plans of action", I think process and workflow). &lt;/P&gt;
&lt;P&gt;I&amp;nbsp;would like to take the position that policy is indeed&amp;nbsp;guiding principles and values - but that we can only analyze and encode&amp;nbsp;more concrete forms of these, i.e.&amp;nbsp;the processes and rules that flow from them.&amp;nbsp;This then highlights the importance of capturing both the processes and rules - in conjunction, not in isolation/separate silos.&amp;nbsp; Too many tools/diagrams/models and businesses focus on only one of these aspects at a time!&lt;/P&gt;
&lt;P&gt;So, what are processes?&amp;nbsp;&amp;nbsp;Collections of connected activities, events, decision points and data&amp;nbsp;input/output.&amp;nbsp; Yes, we can make this more complex - but I think that these are the basic concepts.&lt;/P&gt;
&lt;P&gt;And, what are&amp;nbsp;rules?&amp;nbsp; Specific invariants,&amp;nbsp;constraints, directives,&amp;nbsp;validation checks, etc.&amp;nbsp;for the processes and the data.&amp;nbsp;I could even go further to say that rules are only those things that are encoded in software - but&amp;nbsp;I am not willing to take that step.&amp;nbsp;&amp;nbsp;(Software isn't everything :-) - there are a lot of human processes and human rules.) &amp;nbsp;&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8790746" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author><category term="Policy and Rules" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Policy+and+Rules/default.aspx" /></entry><entry><title>Names of the entities in a model - What a rathole!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/06/05/names-of-the-entities-in-a-model-what-a-rathole.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/06/05/names-of-the-entities-in-a-model-what-a-rathole.aspx</id><published>2008-06-06T00:28:00Z</published><updated>2008-06-06T00:28:00Z</updated><content type="html">&lt;P&gt;While writing my last post on iterative design, I touched on naming entities in the model. I&amp;nbsp;want to take just a few minutes to highlight some guidelines that I use for naming ...&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Do make the discussion about name choices a significant part of the model review process.&lt;/LI&gt;
&lt;LI&gt;Do not be afraid to use verbose names.&lt;/LI&gt;
&lt;LI&gt;Do involve user education and documentation experts early in the design process.&lt;/LI&gt;
&lt;LI&gt;Do search the web for other names and other meanings for the name that you select - just to educate yourself on alternatives and alternative interpretations.&lt;/LI&gt;
&lt;LI&gt;Do reserve the best names for the common scenarios. (For example, as noted in the last post, don’t use the name "computer" to refer to a hardware chassis for a computer.)&lt;/LI&gt;
&lt;LI&gt;Do ensure consistency in naming.&lt;/LI&gt;
&lt;LI&gt;Do assume that at least one person will be vehemently opposed to an entity or attribute name. Make the best naming choice possible, clearly explain the entity’s or attribute’s semantics and explain the name choice, and then move on.&lt;/LI&gt;
&lt;LI&gt;After following the above guideline, consider changing an entity or attribute name only when it is erroneous.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Hope that these help!&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8576298" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author><category term="Models" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Models/default.aspx" /></entry><entry><title>Iterative design and combining the knowledge of multiple experts to create a "good" model</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/06/05/iterative-design-of-a-model.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/06/05/iterative-design-of-a-model.aspx</id><published>2008-06-06T00:25:00Z</published><updated>2008-06-06T00:25:00Z</updated><content type="html">&lt;P&gt;Sorry to be missing-in-action again.&amp;nbsp; But, my daughter's end of the school&amp;nbsp;year, vacations and work seem to have gotten in the way of blogging.&amp;nbsp;Well, I'm back ...&amp;nbsp;:-)&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;topic of this post&amp;nbsp;deals with&amp;nbsp;creating a "good" model - and the need to&amp;nbsp;combine domain AND modeling expertise&amp;nbsp;to accomplish this.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Individuals with either kind of&amp;nbsp;expertise, working on their own, will not define a "good" model - since each lacks the experience and knowledge of the other.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In addition, a "good" model typically requires multiple iterations. The first pass design should be considered &lt;STRONG&gt;solely&lt;/STRONG&gt; as a prototype for evaluation and refinement. At least one more design pass is usually required to obtain even a reasonable model. &lt;/P&gt;
&lt;P&gt;In the book, &lt;EM&gt;Framework Process Patterns, Lessons Learned Developing Application Frameworks&lt;/EM&gt; (Addison-Wesley, 2002, ISBN 0-201-73132-0), Carey and Carlson discuss this development approach&amp;nbsp;as the pattern, “Where’s Mr. Spock When You Need Him?” or “Domain-Technical Cross-Team Communication.” They say: “[D]evelopers need in-depth information about the domain functions for which they have responsibility. The earlier this information can be transferred, the less likely that … errors will be introduced, and those errors that are introduced will be less costly to correct."&lt;/P&gt;
&lt;P&gt;Another valuable guideline from the book is to consider areas where the domain experts disagree or where their answers are “it depends” to be areas for possible extension and customization.&amp;nbsp;Carey and Carlson discuss this under the heading ...&amp;nbsp;"It Depends" (aka "Identifying Customization").&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The intent of the pattern is: “To find potential extension points (points of flexibility …) that have been missed, … [ask] leading questions and …[listen] to domain experts discussions and arguments. “ In the pattern solution, Carey and Carlson recommend that you “listen for key phrases (for example, ’It depends’) that indicate the need for customization.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Listen for domain experts arguing. Often the points of contention are extension points.”&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I have used&amp;nbsp;both of these approaches and can testify to their value!&amp;nbsp; It is great that Carey and Carlson documented them so succinctly!&lt;/P&gt;
&lt;P&gt;Now, after having extoled&amp;nbsp;the wonders of cross-group (cross-model and domain) collaboration, I have to point out&amp;nbsp;some downsides&amp;nbsp;...&amp;nbsp;&amp;nbsp;the terminology that both groups use is usually quite specific.&amp;nbsp; It is always a&amp;nbsp;good idea to consider the terminology of the individual domains but also to&amp;nbsp;generalize and abstract it for reuse and extension.&amp;nbsp;In order to correctly capture abstractions and concepts, it is usually necessary to get past the specific terminology and constraints of a single domain. &lt;/P&gt;
&lt;P&gt;A case in point is the use of the term, “computer”.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In some contexts, it is a specific entity that that has a processor, disk, memory, etc., whose piece parts are contained within a physical chassis.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In other contexts, it is solely virtual (just a logical entity providing “compute” capabilities), such as a virtual machine or a “grid computer”.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;If your model reflects a “computer” as strictly a physical entity, then another term must be found for the virtual system.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In addition, one must deterministically know when an entity is the computer or the virtual system.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Unfortunately, this answer usually depends on your perspective. The answer could be different when examining the system from the perspective of the operating system (with internal knowledge) versus as a user.&lt;/P&gt;
&lt;P&gt;Then, there is the secondary problem of terms with multiple or ambiguous meanings ...&amp;nbsp; Unless you have a very&amp;nbsp;flexible tool, users of the models&amp;nbsp;will quickly tire of trying different queries, against different type hierarchies, searching for their concept of interest.&amp;nbsp; Always consider this in defining entity names!&lt;/P&gt;
&lt;P&gt;I need to come back to the iterative aspects of defining a model, for a bit&amp;nbsp;...&amp;nbsp;and caution against&amp;nbsp;the “big bang” approach to modeling – where everything goes into a model at once.&amp;nbsp;&amp;nbsp;Iterative design suggests that you start with “what you know” – such as using operational observations to drive the general abstractions and specific subtypes of a model design.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This design can then be refined and tested.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The results of each iteration influence the follow-on work.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For example, one could indicate the desire to include organizational data in a design by creating a basic namespace and generic abstractions. In some work that I did,&amp;nbsp;this was accomplished by defining an "Organization" namespace,&amp;nbsp;and an abstract OrganizationalEntity (clearly indicating that the type is still in development by the use of meta-data,&amp;nbsp;isExperimental=”true”). Then, in a later iteration of the model, sub-elements and sub-types were&amp;nbsp;added to&amp;nbsp;give substance to the type.&lt;/P&gt;
&lt;P&gt;As part of the iterative process,&amp;nbsp;it is very valuable to review a model&amp;nbsp;outside the team that defined it (it is especially valuable to talk with customers), learn from mistakes and then update the model design.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This should be done at least once, but ideally until the only feedback is that "this is an excellent model". :-)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; When doing reviews, put focus on the&amp;nbsp;top of the model hierarchy - since that is where&amp;nbsp;extensions will occur and&amp;nbsp;where&amp;nbsp;key conceps are captured.&amp;nbsp; However,&amp;nbsp;t&lt;/SPAN&gt;he leaf entities are certainly not exempt from review and refinement.&amp;nbsp;In addition, always try to&amp;nbsp;use/query the model as part of the reviews,&amp;nbsp;and try to extend it.&amp;nbsp; This really&amp;nbsp;helps to highlight errors, ambiguities and missing semantics.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="mso-spacerun: yes"&gt;Andrea&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8576292" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author><category term="Models" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Models/default.aspx" /></entry><entry><title>Observations on how business and IT people differ in how they think</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/06/05/observations-on-how-business-and-it-differ-in-how-they-think.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/06/05/observations-on-how-business-and-it-differ-in-how-they-think.aspx</id><published>2008-06-05T23:37:00Z</published><updated>2008-06-05T23:37:00Z</updated><content type="html">&lt;P&gt;I attended a talk yesterday, given by Roger Martin (Dean and professor of strategic management at the Rotman School of Management). He argued that businesses are driven by&amp;nbsp;"analytical thinking" - the need to refine, examine and measure the past, limit bias and minimize judgment in any conclusions.&amp;nbsp; The goal of all this is to have &lt;EM&gt;reliability&lt;/EM&gt; (consistent, repeatable outcomes).&amp;nbsp; Yet, to stay&amp;nbsp;competitive, a company also needs innovation.&amp;nbsp; And, this is really what software/IT development is about - new code and new ideas, and not just improvements and refinements in algorithms and process.&amp;nbsp; This second kind of thinking is "design thinking".&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Design thinking is about&amp;nbsp;finding new heuristics and algorithms, not about refining&amp;nbsp;existing ones.&amp;nbsp; In this world, one considers the future - along with&amp;nbsp;some bias and judgment calls.&amp;nbsp; The goal of this&amp;nbsp;is to have &lt;EM&gt;validity&lt;/EM&gt; - the production of future outcomes that meet&amp;nbsp;objectives.&amp;nbsp; Wow, these&amp;nbsp;two worlds are&amp;nbsp;really different - and I have seen the differences come out in many discussions, in many ways.&lt;/P&gt;
&lt;P&gt;For example, I am working with some IT customers&amp;nbsp;on&amp;nbsp;new ways&amp;nbsp;to capture and formalize business information.&amp;nbsp; But, the business&amp;nbsp;people are very reluctant to work on this - not wanting&amp;nbsp;to give up any information or&amp;nbsp;to change anything.&amp;nbsp; In fact, in the business world, most new strategies are looked on with skepticism. (This may be why companies like Cisco get the majority of their new ideas from acquisition instead of internal innovation. I used to work there, so I am speaking from some experience.)&amp;nbsp; &lt;/P&gt;
&lt;P&gt;According to Dr. Martin, all these problems stem from&amp;nbsp;the differences in analytical and design thinking.&amp;nbsp; He told a story of consulting to a bank and recommending a new operational&amp;nbsp;strategy. The head of the bank asked if the idea had ever been tried before.&amp;nbsp; Energetically, Dr. Martin said "NO!" - and that was the end of the idea.&amp;nbsp; For a design-thinker, "NO!" was a great answer - a chance to leapfrog competition and define whole new &lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;heuristics &lt;/SPAN&gt;and algorithms.&amp;nbsp; For an analytical-thinker, it was a departure from the past with no sense of reliability.&lt;/P&gt;
&lt;P&gt;So, what did Dr. Martin suggest?&amp;nbsp; He suggested that design-thinkers consider the following when pitching new ideas to business people: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Make "design unfriendliness" part of the challenge in doing the new work&lt;/LI&gt;
&lt;LI&gt;Empathize with the analytical thinkers (who talk about best practices, consistency and proofs)&lt;/LI&gt;
&lt;LI&gt;Use analogies and stories to tie the ideas to past events (In his banking example, he said that a much better answer was that the new strategy was actually based on Swiss banking practices, but adapted to the environment in which he was working.&amp;nbsp; He should have explained why the strategy was based on the past - past Swiss experience and past banking environmental knowledge.)&lt;/LI&gt;
&lt;LI&gt;"Bite off as little a piece of the problem as possible" to generate proof - for example,&amp;nbsp;running&amp;nbsp;a small set of customers&amp;nbsp;using the new strategy&amp;nbsp;for 3 months and examining results.&amp;nbsp;In this way, you get "proof" and have the "past" to analyze.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Similarly, Dr. Martin suggested that analytical thinkers consider "reliability unfriendliness" as part of their management challenge, empathize with the design thinkers and speak their language, share data and reasonings and not conclusions about what won't work, and "bite off as big a piece of the problem as possible" to give innovation a chance.&lt;/P&gt;
&lt;P&gt;I thought that the talk was fascinating and plan to implement these ideas in how I pitch my innovations.&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8576272" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author><category term="Business" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Business/default.aspx" /></entry><entry><title>Warning, Will Robinson - Common, general model designs rarely (never) make for a good physical storage scheme</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/05/27/warning-will-robinson-common-general-model-designs-rarely-never-make-for-a-good-physical-storage-scheme.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/05/27/warning-will-robinson-common-general-model-designs-rarely-never-make-for-a-good-physical-storage-scheme.aspx</id><published>2008-05-27T19:10:00Z</published><updated>2008-05-27T19:10:00Z</updated><content type="html">&lt;P&gt;Here is a guideline that I once wrote and that is often ignored (at least I have no fallacies about my ability to influence people :-)) ... &lt;/P&gt;
&lt;P&gt;&lt;U&gt;Do not&lt;/U&gt; combine data definitions together into a single instantiable entity when an analysis of the managed environment indicates that they can or should be defined as separate entities. &lt;U&gt;Do not&lt;/U&gt; do this even if current scenarios indicate that it is permissible, since a future release will invalidate this decision, your model design and its instances.&lt;/P&gt;
&lt;P&gt;The preceding guidelines are clearly about defining a general and extensible model, and not about how it is stored or used. In those spaces, the programmer needs to do whatever is necessary. But, don't confuse implementation and performance issues with&amp;nbsp;general model design. Combining model entities together in an implementation given usage patterns against a store, or separating an entity apart into 2 database tables to prevent sparse tables, are reasonable design choices. But, taking an optimized, physical&amp;nbsp;storage design as a general and reusable model definition is rarely workable (actually, I want to say "never" but I was told to "never say never").&lt;/P&gt;
&lt;P&gt;Each usage of a model likely has its own queries, implementation and storage requirements, and necessary data - and hence will dictate&amp;nbsp;different storage patterns. A “common” model is designed to carry and interchange data for&amp;nbsp;many scenarios, and across&amp;nbsp;several&amp;nbsp;products and&amp;nbsp;stores. It is unlikely to be useful (e.g., optimized) as a physical storage definition, for any of the&amp;nbsp;scenarios or stores.&lt;/P&gt;
&lt;P&gt;This thinking is what motivated the&amp;nbsp;distinction between&amp;nbsp;logical and physical model definitions. However, usually and unfortunately, people get consumed with the physical store and forget about conceptualization and abstractions. Don't do this!&lt;/P&gt;Andrea&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8555110" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author><category term="Models" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Models/default.aspx" /></entry><entry><title>Modeling prejudices - Being unduly influenced by perceptions of compositions/decompositions and physical boundaries</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/05/27/modeling-prejudices-being-unduly-influenced-by-perceptions-compositions-decompositions-and-physical-boundaries.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/05/27/modeling-prejudices-being-unduly-influenced-by-perceptions-compositions-decompositions-and-physical-boundaries.aspx</id><published>2008-05-27T18:14:00Z</published><updated>2008-05-27T18:14:00Z</updated><content type="html">&lt;P&gt;In my previous&amp;nbsp;post on designing a model, I discussed the need&amp;nbsp;to&amp;nbsp;view a&amp;nbsp;problem space&amp;nbsp;broadly and via&amp;nbsp;specific scenarios.&amp;nbsp; Since a model is supposed to serve as a&amp;nbsp;conceptualization&amp;nbsp;and abstraction of&amp;nbsp;a&amp;nbsp;problem space, we have to be careful not to&amp;nbsp;be too broad, too narrow, or to&amp;nbsp;prejudice our design&amp;nbsp;by&amp;nbsp;bringing preconceived notions to the solution.&amp;nbsp;Our perceptions affect all our thoughts and conclusions, especially&amp;nbsp;when we think about the physical. &lt;/P&gt;
&lt;P&gt;What do I mean? One example is our mental image&amp;nbsp;of a computer.&amp;nbsp; What usually comes to mind is a laptop, desktop or server system with monitor, keyboard, storage, etc.&amp;nbsp; This is a very physical embodiment of a computer - and certainly somewhere there has to be some physical compute capabilities.&amp;nbsp; But, our model&amp;nbsp;perhaps should&amp;nbsp;support&amp;nbsp;a swarm of microbots (as in the Michael Creighton story, "Prey") as a computer, or&amp;nbsp;allow a virtualized system hosted on a compute-grid to be instantiated as a computer.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Going back to the&amp;nbsp;book, "General Systems Thinking", Gerald Weinberg addresses this issue. “One of the most deeply buried metaphors of science is the concept of a ’thing’ or ’part’ that can be separated cleanly from other things or parts. The metaphor is so deep that we seldom know when we are using it. … These ’things’ or ’parts’ are the possessors of ’properties’ or ’qualities’ that they carry around with them as a box carries matches or a hog carries fat.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;These properties can be isolated from other properties by isolating the ’thing’ from other ’things’. … Our use of the ’part’ or ’thing’ metaphor is closely allied to our experience of physical space, and particularly to our experience of ’boundaries’.”&lt;/P&gt;
&lt;P&gt;Weinberg’s text is quite interesting and I want to&amp;nbsp;analyze it a bit deeper (especially&amp;nbsp;since a box holding matches is a very different thing than a hog’s fat :-)).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; M&lt;/SPAN&gt;atches can be removed from a match&amp;nbsp;box, without affecting the box.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; A m&lt;/SPAN&gt;atch can be put into another box, without affecting the match.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Clearly the box does not consist of what it holds – it is simply a container.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;On the other hand,&amp;nbsp;fat can’t be removed from a hog without affecting the animal, nor can it be moved to another animal.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In this case, the containment relationship is quite a big stronger (actually, it is a composition relationship). So what do we do with the fat?&amp;nbsp; Depending on the problem space, all that we may need to know is the amount of fat on the hog (a property), versus the fat as an individual entity (a relationship). Or, maybe at different times, we need the ability to have both - where the amount of fat is derived from the individual "fat" entities composed into the hog.&amp;nbsp; Wow, you probably never thought that hogs could be so complex. :-)&lt;/P&gt;
&lt;P&gt;And, if something is related, can the data simply be embedded within the containing entity?&amp;nbsp; Possibly, but be careful.&amp;nbsp; Entities are typically embedded within other entities for expediency reasons&amp;nbsp;(ease of access or storage)&amp;nbsp;or because something is perceived as only a “part” of something else and never analyzed on its own. Take care that these reasons are not used to “overly simplify” a more flexible model design. Unfortunately, expediency reasons are usually not valid for more than one or two releases, and composition/decomposition analysis may lead to false conclusions. &lt;/P&gt;
&lt;P&gt;Again, Gerald Weinberg pulls these ideas apart in his book. He says: “An example of a composition error is this: &lt;I style="mso-bidi-font-style: normal"&gt;I stand on a bridge and spit in the river. Seeing that it makes no noticeable difference in the purity of the water, I go to the polls and vote against the municipal bonds for a new water-treatment plant&lt;/I&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;An example of a decompositional error, on the other hand, would be this: &lt;I style="mso-bidi-font-style: normal"&gt;I stand on the bridge and notice that the river is clean, so I conclude that nobody spits in it&lt;/I&gt;. To warn us from these two errors, we have two laws. The Composition Law, which goes back at least to Aristotle, says: &lt;I style="mso-bidi-font-style: normal"&gt;The whole is more than the sum of its parts&lt;/I&gt;. The Decomposition Law, on the other hand, says: &lt;I style="mso-bidi-font-style: normal"&gt;The part is more than a fraction of the whole&lt;/I&gt;. … Why should we want to remember these? … we shall not find them very helpful at making exact predictions. … But, … general systems laws can help us avoid the grand fallacy on the way to an exact prediction.”&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Well, enough deep thinking and philosophy for today!&amp;nbsp;Back to work.&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8555081" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author><category term="Models" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Models/default.aspx" /></entry><entry><title>Modeling based on scenarios and our prejudices</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/05/11/modeling-based-on-scenarios-and-our-prejudices.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/05/11/modeling-based-on-scenarios-and-our-prejudices.aspx</id><published>2008-05-11T23:39:00Z</published><updated>2008-05-11T23:39:00Z</updated><content type="html">&lt;P&gt;Back to writing about modeling guidelines .... sorry about the long delay in my posts, but I got caught up in some&amp;nbsp;standardization work that you will be hearing about in the next few weeks :-).&amp;nbsp; I want to talk in this post about scenario-based modeling and how we bring our preconceived notions of the world into our models.&lt;/P&gt;
&lt;P&gt;The decision on how to model something (an&amp;nbsp;individual object or a&amp;nbsp;full domain)&amp;nbsp;is heavily influenced by the scenarios that drive the design, and how we approach and understand the problem space.&amp;nbsp; My strong advice is to&amp;nbsp;fully consider both the scenarios and&amp;nbsp;our own prejudices. If you focus too much on product scenarios, you typically miss the “big picture” since product teams only have a limited set of scenarios in scope. But, if you focus too little on the scenarios, you may create a great model that is not useful to the product teams. And, if you read all the scenarios, with a filter based on what you think that the model should be, then you only see this one answer.&lt;/P&gt;
&lt;P&gt;In his book on "General Systems Thinking", Gerald Weinberg discusses the multiple views of a problem space:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;"Get&amp;nbsp;a ‘complete’ view – one broad enough to encompass all phenomena of interest – so we are not surprised;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;Get a ‘minimal’ view – one that lumps together states that are unnecessarily discriminated – so we do not overtax our observational powers;&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;Get an ‘independent’ view – one that decomposes observed states into non-interacting qualities – so as to reduce the mental effort required.”&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;An examination of all of these views of the modeled environment is needed in order to determine the states, qualities and entities of interest. This is much more than analyzing scenarios, but deals with understanding and abstracting the “things” in the environment to create the correct entity definitions.&amp;nbsp;And, it highlights defining the entities only after you have done this analysis.&lt;/P&gt;
&lt;P&gt;I have been criticized that this approach is "boiling the ocean", looking for big solutions when little ones are needed.&amp;nbsp; I totally agree that it is a bad&amp;nbsp;idea to model beyond&amp;nbsp;current knowledge. But ... it is defnitely a good idea to&amp;nbsp;examine the problem space broadly, and anticipate&amp;nbsp;extension and the support of less restrictive scenarios (which will certainly happen at a later time). &lt;/P&gt;
&lt;P&gt;There are some interesting examples of how extensibility and future changes can influence a design. For example, most of us view software as executing on a computer.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In fact, it is tempting to tie software to the computer so tightly that they are inseparable (actually embedding the software’s data as sub-elements of the computer’s definition).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;But, there is an interesting world of agent-based software that makes those assumptions problematic.&amp;nbsp;Agents execute at different times in multiple locations, carrying along their state and data as they move within a network.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Although physically it is true that the agent stops executing on one computer and then is “reborn” on another, logically that is incorrect – since the “same” agent is reborn.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Modeling for the standard scenario of strict deployment on a single computer makes the agent-based scenario&amp;nbsp;cumbersome. However, anticipating less restrictive scenarios enables evolution of the model versus its rejection as cumbersome or incorrect.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;So, it is a good idea to think broadly about the entities to be modeled, and then to make reasoned choices in your design (versus making&amp;nbsp;uninformed choices).&amp;nbsp;&amp;nbsp;Larry Page, in an interview in Fortune (May 12, 2008), said "If you look at the people who have high impact, they have pretty general knowledge.&amp;nbsp; They don't have a really narrowly focused education."&amp;nbsp; Now, I admit, he was talking about innovations that change the world - but model that are supposed to support a changing environment need these same principles of being based on general knowledge and broad thinking.&lt;/P&gt;
&lt;P&gt;Well,&amp;nbsp;I will end on this very philosophical statement&amp;nbsp;:-).&amp;nbsp;&amp;nbsp;More on this in the next installment.&lt;/P&gt;
&lt;P&gt;Andrea&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8489250" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author><category term="Models" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Models/default.aspx" /></entry><entry><title>Great WSJ article on business and IT</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/policy_based_business/archive/2008/04/06/great-wsj-article-on-business-and-it.aspx" /><id>http://blogs.msdn.com/policy_based_business/archive/2008/04/06/great-wsj-article-on-business-and-it.aspx</id><published>2008-04-07T02:08:00Z</published><updated>2008-04-07T02:08:00Z</updated><content type="html">&lt;P&gt;I'm not sure if folks took note of the Wall Street Journal article, "&lt;A class="" href="http://online.wsj.com/public/article/SB120467900166211989.html" target=_blank mce_href="http://online.wsj.com/public/article/SB120467900166211989.html"&gt;How to Tap IT's Hidden Potential&lt;/A&gt;" from March 10th.&amp;nbsp; Interestingly, I just had a conversation with some IT customers on the question&amp;nbsp;"Is IT&amp;nbsp;a core business of my company?"&amp;nbsp; Opinion was split between yes and no - "yes" because a company cannot&amp;nbsp;function in the current environment&amp;nbsp;without IT and it is a source of innovation and improvement for the company, and "no" because without the business itself there would be no need for IT (IT is just a supporting organization in the enterprise).&lt;/P&gt;
&lt;P&gt;The WSJ article argues these same points and concludes "that CEOs can't ignore IT and expect to succeed. Technology has accelerated the pace of change in business, making it crucial for companies to detect, assess and respond to every opportunity and every threat as quickly and as effectively as possible.&amp;nbsp; And that kind of agility can only be achieved by fully embracing the operational and strategic importance of IT."&amp;nbsp; The article goes on to give several steps for bringing IT and business closer together.&amp;nbsp; Briefly, they are that:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The business' CEO and executive board&amp;nbsp;understand IT as well as they understand "accounting, finance and marketing"&lt;/LI&gt;
&lt;LI&gt;The&amp;nbsp;CIO not just be technically focused but understand how IT and the various aspects of the company's business can be integrated (and then actively works at this)&lt;/LI&gt;
&lt;LI&gt;Executives&amp;nbsp;rotate through IT, and IT personnel integrate with&amp;nbsp;the business units&lt;/LI&gt;
&lt;LI&gt;All managers understand the values that IT brings to the business ("knowledge management, business intelligence, information security, change management and process integration")&lt;/LI&gt;
&lt;LI&gt;People be able to translate IT and business concepts - so that "nothing gets lost in the translation"&lt;/LI&gt;
&lt;LI&gt;IT spending be analyzed against business value, and&amp;nbsp;risks and&amp;nbsp;returns&amp;nbsp;fully evaluated&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Whereas many of these steps deal with changing business processes and&amp;nbsp;increasing&amp;nbsp;understanding, there is one item that begs for tooling - being able to translate IT and business concepts.&amp;nbsp;In my interpretation of this, it is important for IT to decrease the focus on technology and its "fads", and increase the focus on what the business needs.&amp;nbsp; At one level, being able to mine a database for business data and/or infer new facts from existing data&amp;nbsp;are critical - and whether the database&amp;nbsp;is a relational, an XML, a triple or an object-oriented store is&amp;nbsp;secondary and left to the interested reader to pursue.&amp;nbsp; Oftentimes, we technology folks put the focus on the implementation and not the bsuiness.&amp;nbsp;I would argue that the implementation doesn't really matter (and could/should be changed based on understanding risks and rewards) as long as the business gets the answers that it needs in a timely manner.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Now, on the business side, there is a need to&amp;nbsp;formally&amp;nbsp;capture and "debug"&amp;nbsp;business vocabularies,&amp;nbsp;rules, processes and related data&amp;nbsp;to improve their&amp;nbsp;quality, and decrease the communication mismatch between the business and IT.&amp;nbsp; For example, tooling can take business vocabularies and create relational or object-oriented models, or XML schemas,&amp;nbsp;that are more natural forms of communication for&amp;nbsp;computer-inclined personnel.&amp;nbsp;And, business&amp;nbsp;rules and processes are captured today - although usually in arcane and obscure computer languages that mean nothing to the business people.&amp;nbsp;There could be a two-way translation between a business person's natural language and these rules and processes. What a concept! &lt;/P&gt;
&lt;P&gt;I know&amp;nbsp;that people are working to change this. :-)&lt;/P&gt;
&lt;P mce_keep="true"&gt;Andrea&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8364059" width="1" height="1"&gt;</content><author><name>andreaw</name><uri>http://blogs.msdn.com/members/andreaw.aspx</uri></author><category term="Vocabularies" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Vocabularies/default.aspx" /><category term="Models" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Models/default.aspx" /><category term="Business" scheme="http://blogs.msdn.com/policy_based_business/archive/tags/Business/default.aspx" /></entry></feed>