<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2658636224901006142</id><updated>2011-07-08T05:44:14.982+01:00</updated><category term='DRA'/><category term='project management'/><category term='DRAW'/><category term='requirements'/><category term='decision management'/><category term='rules discovery'/><category term='business rules'/><category term='DRD'/><title type='text'>DRA</title><subtitle type='html'>&lt;strong&gt;Decision Requirements Analysis&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;A forum for presenting and discussing the concepts of DRA:  a formal method for defining the requirements for decisioning systems, especially those implemented using Business Rules Engines (BRE).</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dramethod.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2658636224901006142/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dramethod.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Alan Fish</name><uri>http://www.blogger.com/profile/07835536449501517210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWjQOO_i7_M/SxF3JYj5GwI/AAAAAAAAAAs/LxD2bAYuHiY/S220/alan+square.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2658636224901006142.post-8199207549690663219</id><published>2010-09-11T09:04:00.006+01:00</published><updated>2010-09-27T10:48:06.661+01:00</updated><title type='text'>DRA in Design</title><content type='html'>Design tends to be the prerogative of techies – and is therefore elegant from the bottom up:&amp;nbsp;&amp;nbsp;it uses the computational resources very efficiently.&amp;nbsp; Good design should also be elegant from the top down:&amp;nbsp; the structure of the solution should be parsimonious and reflect the structure of the decisioning.&amp;nbsp; Bottom-up design is very specific to the platform, so it is not possible to discuss it in this platform-neutral forum anyway.&amp;nbsp; Top-down design, however,&amp;nbsp;can be purely functional.&amp;nbsp; This posting suggests how the decisioning structure exposed in the &lt;a href="http://dramethod.blogspot.com/2009/12/drd.html"&gt;DRD&lt;/a&gt; can be used as the basis for designing a decision flow&amp;nbsp;and an object model.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Designing a decision flow&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For each decision point, identify in the DRD all the top-level decisions and all their sub-decisions.&amp;nbsp; These, together with their dependent knowledge and data nodes, comprise a "sub-DRD" defining the decisioning to be implemented in the decision service to be called at that decision point.&amp;nbsp; Note that if any decision occurs in more than one decision point you have two design options:&amp;nbsp; the results can be persisted externally after the first decision point and provided to the second decision point as data, or the decision can be evaluated at both decision points.&amp;nbsp; Which approach you choose will depend on a number of factors, including&amp;nbsp;whether the data might change between the decision points.&lt;br /&gt;&lt;br /&gt;Having prepared the sub-DRD for each decision point, strip it of all nodes except the decisions.&amp;nbsp; The arrows between these nodes specify a &lt;em&gt;partial ordering&lt;/em&gt; of the decisions to be evaluated at this decision point.&amp;nbsp; This reduced network can be simplified further by removing tautological dependencies: &amp;nbsp;whenever two decisions are connected both directly and indirectly, remove the direct connection.&amp;nbsp; The partial ordering below is for the &lt;a href="http://2.bp.blogspot.com/_jWjQOO_i7_M/SxlMLP6WPpI/AAAAAAAAABw/uUBfZUhqfkY/s1600-h/Example+DRD.jpg"&gt;example DRD&lt;/a&gt; used in previous postings.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_jWjQOO_i7_M/TIs07S_mqlI/AAAAAAAAAEg/qGkWLKy0dnk/s1600/Decisions+only.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" ox="true" src="http://1.bp.blogspot.com/_jWjQOO_i7_M/TIs07S_mqlI/AAAAAAAAAEg/qGkWLKy0dnk/s320/Decisions+only.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Partial ordering of decisions&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Now linearise this partial ordering&amp;nbsp;by choosing an arbitrary sequence for parallel nodes.&amp;nbsp; The result is a decision flow for a decision service providing the decisioning required at the decision point.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_jWjQOO_i7_M/TI-6-8rfE2I/AAAAAAAAAEw/eoRW5BPHCWo/s1600/Decision+Flow.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" qx="true" src="http://4.bp.blogspot.com/_jWjQOO_i7_M/TI-6-8rfE2I/AAAAAAAAAEw/eoRW5BPHCWo/s320/Decision+Flow.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;One possible decision flow&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;﻿&lt;br /&gt;This of course assumes you need a decision flow, which is essentially a procedure for ordering decisions in a forward-chaining environment.&amp;nbsp; Excuse my bias as a Blaze user!&amp;nbsp; If you are working in a predominantly backward-chaining environment this may be unnecessary:&amp;nbsp; the dependencies between the decisions in the DRD may be used directly for chaining.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Designing an object model&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;During rule discovery the business terms required by the rules will have been identified and mapped to nodes in the DRD.&amp;nbsp; Input data will belong to data areas;&amp;nbsp; derived values will belong to decisions.&amp;nbsp; This natural structure should be used for the object model, because it is a whole data area or decision which is relevant or not to any particular decision point:&amp;nbsp; that is the unit of re-use.&amp;nbsp; The high-level structure below is based on our same example DRD.&amp;nbsp; All the detailed data properties and decision results should belong to one of the terminal nodes in this structure.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jWjQOO_i7_M/TIsxef7PdYI/AAAAAAAAAEY/540VV1TbTVM/s1600/OM+Structure.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" ox="true" src="http://2.bp.blogspot.com/_jWjQOO_i7_M/TIsxef7PdYI/AAAAAAAAAEY/540VV1TbTVM/s320/OM+Structure.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;A natural object model structure&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;When decision values are persisted externally they should be presented back to subsequent decision points in exactly the same structure (i.e. in decision objects, not data objects).&amp;nbsp; This means that another decision using these values does not have to know&amp;nbsp;whether they originated "locally" or&amp;nbsp;from another decision point.&amp;nbsp; A safe (but sometimes costly) approach is that all the decision results from&amp;nbsp;each decision point should be presented to every subsequent decision point.&lt;br /&gt;&lt;br /&gt;This will be the last of my series of postings giving a basic introduction to DRA.&amp;nbsp; I hope it will be useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2658636224901006142-8199207549690663219?l=dramethod.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dramethod.blogspot.com/feeds/8199207549690663219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dramethod.blogspot.com/2010/09/dra-in-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2658636224901006142/posts/default/8199207549690663219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2658636224901006142/posts/default/8199207549690663219'/><link rel='alternate' type='text/html' href='http://dramethod.blogspot.com/2010/09/dra-in-design.html' title='DRA in Design'/><author><name>Alan Fish</name><uri>http://www.blogger.com/profile/07835536449501517210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWjQOO_i7_M/SxF3JYj5GwI/AAAAAAAAAAs/LxD2bAYuHiY/S220/alan+square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jWjQOO_i7_M/TIs07S_mqlI/AAAAAAAAAEg/qGkWLKy0dnk/s72-c/Decisions+only.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2658636224901006142.post-6420849154406517849</id><published>2010-02-10T11:58:00.006Z</published><updated>2010-02-10T13:34:11.516Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='rules discovery'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><category scheme='http://www.blogger.com/atom/ns#' term='business rules'/><category scheme='http://www.blogger.com/atom/ns#' term='DRD'/><title type='text'>Rules Discovery</title><content type='html'>&lt;em&gt;The key to successful rules discovery is that all rules must be contextualized in specific business decisions.&lt;/em&gt;&amp;nbsp; This statement may be seen as heretical by those who have signed up to the &lt;a href="http://www.businessrulesgroup.org/brmanifesto.htm"&gt;Business Rules Manifesto&lt;/a&gt;, but my concern here is with the practicalities of delivering decision services to a tight budget and timescale, not with the quixotic task of modelling the behaviour of an entire organization.&amp;nbsp; So my advice is this:&amp;nbsp; do &lt;em&gt;not&lt;/em&gt; try to define universal rules which apply across all business processes and activities; establish only the specific rules required to make each decision which is in scope.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;This is my fifth posting in this series, and I have only just got to rules discovery.&amp;nbsp; That is as it should be:&amp;nbsp; discovery does not lead the process but falls out of it.&amp;nbsp; The scope of your decision management project has been agreed using &lt;a href="http://dramethod.blogspot.com/2009/12/draw.html"&gt;DRAW&lt;/a&gt; and depicted on a &lt;a href="http://dramethod.blogspot.com/2009/12/drd.html"&gt;DRD&lt;/a&gt;;&amp;nbsp; you have &lt;a href="http://dramethod.blogspot.com/2010/01/dra-in-project-management.html"&gt;planned the project&lt;/a&gt; by partitioning the scope into a number of iterations with discrete discovery tasks for all the knowledge nodes in each;&amp;nbsp; you have built an empty prototype decision service to demonstrate the technical architecture is sound.&amp;nbsp; &lt;em&gt;Now&lt;/em&gt; you can start rules discovery, decision by decision, extending the functionality of the decision service as you go.&lt;br /&gt;&lt;br /&gt;In any particular discovery task you are gathering only the knowledge required to make a particular decision at a particular point in the business process.&amp;nbsp; This is what I mean by “contextualized”.&amp;nbsp; So as part of the first task in &lt;a href="http://3.bp.blogspot.com/_jWjQOO_i7_M/S0yV4qdGtUI/AAAAAAAAADA/fu_5Lff6DBk/s1600-h/Example+DRD+increments.jpg"&gt;my planning example&lt;/a&gt; you might be asking “What are the rules for deciding whether an application should be accepted, referred or declined at the post-bureau decision point?”&amp;nbsp; This is a very specific question capable of being answered very precisely.&lt;br /&gt;&lt;br /&gt;There is a substantial literature on the art of knowledge elicitation, and I don’t want to add to it, except to observe that a lot of the problems evaporate if the process is properly guided and constrained.&amp;nbsp;&amp;nbsp;In a nutshell, as you gather the rules you should ensure that they are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Complete&lt;/strong&gt;:&amp;nbsp; the set is sufficient to make a decision in all possible scenarios&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Consistent&lt;/strong&gt;:&amp;nbsp; either the rules are mutually exclusive (i.e. only one rule fires in any particular scenario) or there is some clear system for resolving conflicts (e.g. priorities associated with decision values)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Independent&lt;/strong&gt;:&amp;nbsp; the rules do not depend on each other or on the order of evaluation.&lt;/li&gt;&lt;/ul&gt;As I said in the last post, you should also be checking the scope:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The rules should only determine the values relevant to the decision&lt;/li&gt;&lt;li&gt;The rules should only use the data available to the decision in the DRD&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;If the client proposes rules which determine new decision values or use new areas of data, an extension to scope may need to be agreed.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;All the above talks only about rules (well, that's what we like to talk about, isn't it), but typically many of the knowledge nodes on the DRD involve other forms of business knowledge:&amp;nbsp; particularly calculations and analytic models.&amp;nbsp; Calculations are very similar to rules in how they are harvested;&amp;nbsp; in fact they could be represented as rules, although it is usually more convenient and closer to the business view&amp;nbsp;to collect them as algorithms and implement them in functions.&amp;nbsp; Analytic models are more interesting because they are the output of another Decision Management process:&amp;nbsp; see &lt;a href="http://dramethod.blogspot.com/2009/12/drd.html#comments"&gt;Paul’s comment&lt;/a&gt; and my reply.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2658636224901006142-6420849154406517849?l=dramethod.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dramethod.blogspot.com/feeds/6420849154406517849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dramethod.blogspot.com/2010/02/rules-discovery.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2658636224901006142/posts/default/6420849154406517849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2658636224901006142/posts/default/6420849154406517849'/><link rel='alternate' type='text/html' href='http://dramethod.blogspot.com/2010/02/rules-discovery.html' title='Rules Discovery'/><author><name>Alan Fish</name><uri>http://www.blogger.com/profile/07835536449501517210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWjQOO_i7_M/SxF3JYj5GwI/AAAAAAAAAAs/LxD2bAYuHiY/S220/alan+square.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2658636224901006142.post-364620959191064604</id><published>2010-01-12T16:18:00.005Z</published><updated>2010-02-10T12:13:33.719Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='requirements'/><category scheme='http://www.blogger.com/atom/ns#' term='DRAW'/><category scheme='http://www.blogger.com/atom/ns#' term='DRA'/><category scheme='http://www.blogger.com/atom/ns#' term='decision management'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><category scheme='http://www.blogger.com/atom/ns#' term='DRD'/><title type='text'>DRA in Project Management</title><content type='html'>In the good old, bad old days of &lt;strong&gt;Knowledge Engineering&lt;/strong&gt;, the “iterative approach" often meant in practice "keep adding rules until the client runs out of money".&amp;nbsp; This mindset persisted as our field came to be called &lt;strong&gt;Business Rules&lt;/strong&gt;, when there was a common assumption that one could simply gather whatever rules the "experts" considered pertinent, arrange them into groups, and deploy them as rule services.&amp;nbsp; Now &lt;strong&gt;Decision Management&lt;/strong&gt; (DM) has turned this deeply misguided idea on its head by stressing that one must first define the business decisions to be automated, before harvesting the specific rules to implement them (see for example James Taylor on "&lt;a href="http://www.modernanalyst.com/Resources/Articles/tabid/115/articleType/ArticleView/articleId/812/Using-Decision-Management-to-improve-Requirements.aspx"&gt;Using Decision Management to improve Requirements&lt;/a&gt;”). &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Decision Requirements Analysis (DRA) formalises this top-down process, allowing a rigorous specification&amp;nbsp;of the decisioning requirements at the outset of a rules project.&amp;nbsp; The main benefit is improved project management:&amp;nbsp; DRA results in better plans, less risk, and tighter control on scope.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-size: large;"&gt;Scope of supply&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://dramethod.blogspot.com/2009/12/draw.html"&gt;DRAW&lt;/a&gt; is essentially a scoping exercise, and should therefore be carried out as the very first task in a rules implementation project.&amp;nbsp; The results can then be recorded in a document which will define the scope of supply, to be signed off by the client before any further work is carried out.&amp;nbsp; Since it covers only the decisioning requirements (which may not be all the functional requirements) &lt;a href="http://www.fico.com/"&gt;FICO&lt;/a&gt; calls this the Decision Definition Document (DDD).&amp;nbsp; It contains the following sections:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Business Context&lt;/strong&gt;: the background to the project including the goals of Decision Management&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Decision Points&lt;/strong&gt;: a description of the client’s business process, specifying the points at which decisions are&amp;nbsp;required of rule services and the principal decisions to be made at those points&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Decision Requirements&lt;/strong&gt;: the &lt;a href="http://dramethod.blogspot.com/2009/12/drd.html"&gt;Decision Requirements Diagram&lt;/a&gt; (DRD), supported by verbal definitions of all of its nodes (including estimates of size and complexity of knowledge and data nodes)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Scope&lt;/strong&gt;: a statement of the scope of supply, defined as sets of nodes on the DRD, and illustrated with a diagram, as below.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;strong&gt;Scope Boundary on the DRD&lt;/strong&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;a href="http://3.bp.blogspot.com/_jWjQOO_i7_M/S0yVgor6e9I/AAAAAAAAAC4/g3pO8giPaeI/s1600-h/Example+DRD+scope.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" ps="true" src="http://3.bp.blogspot.com/_jWjQOO_i7_M/S0yVgor6e9I/AAAAAAAAAC4/g3pO8giPaeI/s400/Example+DRD+scope.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;The DDD&amp;nbsp;is a simple, brief document, but provides a very clear definition of the decisioning requirements, allowing the scope to be tightly controlled.&amp;nbsp; This is not to prevent changes during the project but to allow them to be properly managed. Every harvested rule should directly determine one of the decisions in scope, belong to one of the knowledge areas in scope, and use only data provided by the data areas in scope.&amp;nbsp; If rules are discovered which do not fit into these constraints, the agreed change control procedure should be followed to consider the cost of extending the scope to include the new decisions, knowledge areas or data.&amp;nbsp; Provided a thorough requirements analysis has been conducted such changes should seldom be required. &lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Planning&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Rules discovery is in itself one of the major sources of risk in a traditional rules project, because it is open-ended and often far too large to be managed as a single task.&amp;nbsp;&amp;nbsp;This risk cascades&amp;nbsp;to many other tasks which are dependent on it.&amp;nbsp; Introducing DRA before rules discovery allows the production of complete and detailed plans at the outset of a project, with specific discovery, development and testing tasks for each knowledge node on the DRD.&amp;nbsp; The effort required for these tasks may be estimated&amp;nbsp;using the information in the DDD.&lt;br /&gt;&lt;br /&gt;DRA can also provide a higher-level structure to the plan.&amp;nbsp; If a phased or iterative approach is being used, increments of functionality may be defined as sets of nodes on the DRD.&amp;nbsp; The objectives of this partitioning are that:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Each increment can be delivered in one phase or iteration&lt;/li&gt;&lt;li&gt;Each increment provides some distinct functional benefit to the client&lt;/li&gt;&lt;li&gt;The increments are loosely coupled: i.e. there are few arrows between nodes in different increments&lt;/li&gt;&lt;li&gt;Each decision node is in the same increment as the knowledge node(s) it requires.&lt;/li&gt;&lt;/ul&gt;This example DRD shows the decisioning functionality partitioned into three increments:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;strong&gt;Increments on the DRD&lt;/strong&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_jWjQOO_i7_M/S0yV4qdGtUI/AAAAAAAAADA/fu_5Lff6DBk/s1600-h/Example+DRD+increments.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" ps="true" src="http://3.bp.blogspot.com/_jWjQOO_i7_M/S0yV4qdGtUI/AAAAAAAAADA/fu_5Lff6DBk/s400/Example+DRD+increments.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;A typical project plan under RUP would then have the following high-level structure:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Inception:&lt;/strong&gt;&amp;nbsp; establish the scope of decisoning using DRAW;&amp;nbsp; establish high-level technical and non-functional requirements;&amp;nbsp;&amp;nbsp;agree project goals, plan and governance&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Elaboration:&lt;/strong&gt;&amp;nbsp; establish the detailed technical requirements and retire the most significant risks by building&amp;nbsp;a simple "empty" prototype decision service integrating with the client architecture&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Construction:&lt;/strong&gt;&amp;nbsp; over a number of iterations, gradually add increments of functionality to the prototype until the decision service is complete, performing rules discovery as required for each increment&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Transition:&lt;/strong&gt;&amp;nbsp; perform user testing, training and handover.&lt;/li&gt;&lt;/ul&gt;DRA therefore allows us to achieve a new "iterative approach", more in step with mainstream IT project management principles,&amp;nbsp;which is committed to the delivery of an agreed set of &lt;em&gt;decisions&lt;/em&gt; within&amp;nbsp;an agreed budget and timescale.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2658636224901006142-364620959191064604?l=dramethod.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dramethod.blogspot.com/feeds/364620959191064604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dramethod.blogspot.com/2010/01/dra-in-project-management.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2658636224901006142/posts/default/364620959191064604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2658636224901006142/posts/default/364620959191064604'/><link rel='alternate' type='text/html' href='http://dramethod.blogspot.com/2010/01/dra-in-project-management.html' title='DRA in Project Management'/><author><name>Alan Fish</name><uri>http://www.blogger.com/profile/07835536449501517210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWjQOO_i7_M/SxF3JYj5GwI/AAAAAAAAAAs/LxD2bAYuHiY/S220/alan+square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_jWjQOO_i7_M/S0yVgor6e9I/AAAAAAAAAC4/g3pO8giPaeI/s72-c/Example+DRD+scope.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2658636224901006142.post-7866121664523571036</id><published>2009-12-14T13:06:00.016Z</published><updated>2010-02-10T12:15:45.977Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='requirements'/><category scheme='http://www.blogger.com/atom/ns#' term='DRAW'/><category scheme='http://www.blogger.com/atom/ns#' term='DRA'/><category scheme='http://www.blogger.com/atom/ns#' term='decision management'/><category scheme='http://www.blogger.com/atom/ns#' term='DRD'/><title type='text'>DRAW</title><content type='html'>DRAW (Decision Requirements Analysis Workshop) is a structured workshop technique for defining the decisioning requirements for a rules project, using the DRD described in &lt;a href="http://dramethod.blogspot.com/2009/12/drd.html"&gt;my last posting&lt;/a&gt;.&amp;nbsp; There are two typical contexts for DRAW:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It can be carried out as a self-contained activity, to establish the resources required for a potential rules project (e.g. to establish feasibility, to prioritise alternative projects or to produce a road-map for multiple deliveries)&lt;/li&gt;&lt;li&gt;It can be&amp;nbsp;carried out&amp;nbsp;in the first few days of a rules development project, to define the decisioning requirements (as a Requirements task in waterfall, or an Inception task in RUP).&lt;/li&gt;&lt;/ul&gt;&lt;a name='more'&gt;&lt;/a&gt;This posting can only offer a brief description, of course, but I will be happy to answer questions, and FICO offers training courses in DRAW and the surrounding methodology as part of&amp;nbsp;our &lt;a href="http://www.fico.com/en/Company/FICO-Views/Pages/Operational-Excellence-program-pinpoints-performance-problems-and-solutions.aspx"&gt;Operational Excellence programme&lt;/a&gt; [sorry - end of advert ;-)].&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Resources&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No special facilities are required by way of accommodation or software. The workshops can be held in any quiet meeting-room with a flip-chart&amp;nbsp;and whiteboard.&amp;nbsp; Interaction is improved if the participants sit around a table, rather than all sitting facing the leader as in a presentation.&amp;nbsp; The DRD can be sketched on the board during the workshops, and drawn out formally later using any commonly available diagram editor (I use Microsoft Visio).&lt;br /&gt;&lt;br /&gt;The success of DRAW is entirely dependent on the calibre and commitment of the people involved, so it is important that the right team is assembled for the workshops.&amp;nbsp; I will assume that the project involves staff from two parties:&amp;nbsp; a &lt;em&gt;supplier&lt;/em&gt; and a &lt;em&gt;client&lt;/em&gt;.&amp;nbsp; These might be separate groups within the same organisation.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Supplier:&lt;/strong&gt;&amp;nbsp; Although DRAW can be carried out by a single consultant, it is better to have a second person as scribe, and I would recommend that the following staff are available at least part-time:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Project Manager:&lt;/strong&gt;&amp;nbsp; responsible for project planning, management of supplier staff and status reporting&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Rules Analyst:&lt;/strong&gt;&amp;nbsp; responsible for defining the functional requirements and possibly for the rule service design&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Technical Architect:&lt;/strong&gt;&amp;nbsp; responsible for defining technical requirements and technical architecture.&lt;/li&gt;&lt;/ul&gt;The Rules Analyst will lead the workshops, conduct the analysis and produce the outputs. The Technical Architect should ideally be present throughout, but must attend any meetings concerning data sources and interfaces. The Project Manager should be present for the initial meeting and for any decisions on scope.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Client:&lt;/strong&gt;&amp;nbsp;&amp;nbsp;The client should commit to making the following staff available at least part-time:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Project Sponsors:&amp;nbsp; &lt;/strong&gt;ultimately responsible for the business success of the project&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Project Manager:&lt;/strong&gt;&amp;nbsp; responsible for day to day project management, liaison and reporting&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Operational Experts:&lt;/strong&gt;&amp;nbsp; contributing subject-matter expertise; instrumental in driving and fostering user acceptance and involvement&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Business Analysts:&lt;/strong&gt;&amp;nbsp; responsible for business design and definition of functional requirements&lt;/li&gt;&lt;li&gt;&lt;strong&gt;IT Analysts:&lt;/strong&gt;&amp;nbsp; providing IT support, e.g. interface development, hardware configuration, environment preparation.&lt;/li&gt;&lt;/ul&gt;Most of the input will come from the Project Sponsors, the Operational Experts and the Business Analysts. IT Analysts should be available support the workshops and analysis as required, e.g. with data mapping and legacy systems expertise.&amp;nbsp; The Project Sponsors and Project Manager must be present when the scope is agreed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Scheduling&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;DRAW works best in small groups (6-10 people), rather than large workshops.&amp;nbsp; You should start with one or more plenary workshops to draw out the top-level requirements, then pursue more detailed analyses with sub-groups or individual specialists as necessary.&amp;nbsp; It is not necessary to explore the whole network with each person:&amp;nbsp; individual areas of expertise or responsibility may correspond to different regions of the network.&amp;nbsp; It is however a good idea to cross-check results with multiple staff:&amp;nbsp; individuals will miss items and there may be differences of opinion which reveal important issues which need to be clarified.&amp;nbsp; After the results have been analysed and documented, the draft DRD should be presented at a final plenary session for general agreement.&lt;br /&gt;&lt;br /&gt;Although it is possible to carry out a very high-level DRAW in a single day, it is more typical for it to require a number of workshops over several days.&amp;nbsp; A good approach is to set aside a week, but schedule only about half of the time;&amp;nbsp; I usually schedule workshops for the mornings, leaving the afternoons free for overruns or follow-up work.&amp;nbsp; Be flexible.&amp;nbsp; It is unlikely you will be able to conduct all the interviews according to a pre-arranged schedule; as the network is revealed you may find it useful to contact and interview additional people.&lt;br /&gt;&lt;br /&gt;In principle, DRAW consists of a standard sequence of stages:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Identify the decision points&lt;/li&gt;&lt;li&gt;Define the top-level decisions&lt;/li&gt;&lt;li&gt;Decompose the decisioning&lt;/li&gt;&lt;li&gt;Describe all the nodes in detail&lt;/li&gt;&lt;li&gt;Define the decision service boundaries.&lt;/li&gt;&lt;/ol&gt;These are described below.&amp;nbsp; Of course, no real workshop will run quite this smoothly:&amp;nbsp; things will emerge which require you to backtrack and modify or add detail to the results of previous stages. This is not a problem, so long as the basic principles are followed (for example, any decision, whenever it is added to the DRD, has to be defined and&amp;nbsp;decomposed).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Stage 1:&amp;nbsp; Identify the decision points&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Start by inviting the client to describe their business process, and what they hope to achieve from this project. Try to understand the drivers:&amp;nbsp; What transformations does the client intend to bring about in their business?&amp;nbsp; What benefit do they hope to achieve through Decision Management?&lt;br /&gt;&lt;br /&gt;Investigate in detail all the points in the business process where decisions will be required of decision services:&amp;nbsp; these are the &lt;em&gt;decision points&lt;/em&gt;.&amp;nbsp; Give each decision point a name, and define:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The stage in the business process where this decision point occurs&lt;/li&gt;&lt;li&gt;The decision-making carried out at this stage&lt;/li&gt;&lt;li&gt;The intended role of the decision service in the decision-making&lt;/li&gt;&lt;li&gt;The role of any users or other system components.&lt;/li&gt;&lt;/ul&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Document the results using some sort of business process flow or workflow diagram, as in the&amp;nbsp;example below.&amp;nbsp; Here there are two decision points:&amp;nbsp; Decide Pre-Bureau Eligibility and Decide Post-Bureau Status.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;strong&gt;Decision points in the workflow&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_jWjQOO_i7_M/SyY6NDAv2lI/AAAAAAAAACg/3BymjnKF9OY/s1600-h/Example+Workflow.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" rs="true" src="http://4.bp.blogspot.com/_jWjQOO_i7_M/SyY6NDAv2lI/AAAAAAAAACg/3BymjnKF9OY/s400/Example+Workflow.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;Stage 2:&amp;nbsp; Define the top-level decisions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;For each decision point, establish the decisions which the client requires to be made by decision services, expressed in the most general possible terms.&amp;nbsp; Wherever similar decisions are made at multiple decision points, try to generalise the decisions across those contexts.&amp;nbsp; Even if there are expected to be multiple decision services &lt;em&gt;do not at this stage attempt to allocate decisions to particular services&lt;/em&gt;, just identify which decisions have to be made.&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Give each decision a name, then establish the following:&lt;/div&gt;&lt;ul&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;A question which characterizes the decision, expressed clearly in natural language, with a defined set of answers&lt;/li&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Any other results which are required to be returned with the answer&lt;/li&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;The decision points at which the decision has to be made, and any variation in the required decision across these.&lt;/li&gt;&lt;/ul&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;In our example above, the first decision point makes the decision &lt;em&gt;Is the application eligible?&lt;/em&gt;, and the second makes the decision &lt;em&gt;How should we deal with this application?&lt;/em&gt;.&amp;nbsp; The answers to both questions are ACCEPT, REFER or DECLINE, which are used to route the application appropriately in the workflow.&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Stage 3:&amp;nbsp; Decompose the decisioning&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now we can build our DRD.&amp;nbsp; Start by drawing the top-level decisions exposed in stage 2 on the board as separate, unconnected boxes.&amp;nbsp; In our example these are &lt;em&gt;Is the application eligible?&lt;/em&gt;, and &lt;em&gt;How should we deal with this application?.&lt;/em&gt;&amp;nbsp; Then follow an iterative process.&amp;nbsp; Choose any decision which has not yet been addressed, and ask the client:&amp;nbsp; “What information is required to take this decision?”.&amp;nbsp; Fully explore the following possibilities:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Business knowledge&amp;nbsp;(guidelines, policies etc currently existing in human heads,&amp;nbsp;documents or legacy systems)&lt;/li&gt;&lt;li&gt;Data (specific data describing the case or external reference data)&lt;/li&gt;&lt;li&gt;The results of other decisions (sub-decisions).&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Add nodes to the DRD as required:&amp;nbsp; knowledge, data or decision.&amp;nbsp;&amp;nbsp;Each new&amp;nbsp;decision node should be defined like the top-level decisions and labelled with its question. &amp;nbsp;It can then be addressed in its turn.&amp;nbsp; Note that because this process is recursive, and only analyses one decision at a time, it is not more difficult to decompose a large decisioning requirement:&amp;nbsp; it just takes longer.&lt;br /&gt;&lt;br /&gt;For example, when you ask the client “What information do you need to decide how to deal with the application?”, they might reply “Well, you need to know whether the application is eligible, whether the risk is acceptable, and whether the repayment is affordable.&amp;nbsp; We have policy rules saying what to do in each case.” This tells you to link &lt;em&gt;Is the application eligible?&lt;/em&gt; to &lt;em&gt;How should we deal with this application?&lt;/em&gt;, add two further sub-decision nodes&amp;nbsp;(&lt;em&gt;Is the risk acceptable?&lt;/em&gt; and &lt;em&gt;Is the repayment affordable?&lt;/em&gt;), and provide a &lt;em&gt;Policy rules&lt;/em&gt; knowledge node.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;strong&gt;Building the DRD&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jWjQOO_i7_M/Syn-IqMs90I/AAAAAAAAACw/91VPC7dRIkY/s1600-h/DRAW+stage+3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" ps="true" src="http://2.bp.blogspot.com/_jWjQOO_i7_M/Syn-IqMs90I/AAAAAAAAACw/91VPC7dRIkY/s400/DRAW+stage+3.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;When the process is complete you will have a complete DRD, identifying the decisions required, the areas of knowledge involved in the decisions, and the areas of data required by the decisions.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;Stage 4:&amp;nbsp; Describe all the nodes in detail&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Revisit all the nodes in the DRD and discuss them in detail with the client, one by one.&amp;nbsp; For each decision node, agree on a more detailed description which explains how its required knowledge and data are used in reaching the decision.&amp;nbsp;&amp;nbsp;For each knowledge and data node, investigate the information required, and record:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The source of the information (systems, documents, or personnel)&lt;/li&gt;&lt;li&gt;An estimate of its size and complexity (e.g. number of rules or data items)&lt;/li&gt;&lt;li&gt;The maintenance requirements (who will be maintaining it, and how often)&lt;/li&gt;&lt;li&gt;Any other important background (e.g. the accuracy and completeness of the information source, any possible modifications within the timescale of the project).&lt;/li&gt;&lt;/ul&gt;Note that at this stage the objective is not to collect &lt;em&gt;actual knowledge&lt;/em&gt; (e.g. particular business rules or pages of equations), but just to describe the required &lt;em&gt;areas&lt;/em&gt; of knowledge and identify the sources for subsequent discovery.&amp;nbsp; However, it is likely that the client will offer example rules, and if so these should be recorded.&amp;nbsp; Similarly, the objective for the data nodes is to identify &lt;em&gt;areas&lt;/em&gt; of data, not a full object model. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;span style="font-size: large;"&gt;Stage 5:&amp;nbsp; Define the rule service boundaries&lt;/span&gt; &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Having defined the decision structure and supporting information, decide which areas are to be implemented as part of a decision service and which are to remain as external systems.&amp;nbsp; Do not at this stage try to decide how many decision services there should be and how decisions should be allocated between them, simply identify which nodes are to be implemented and which are not.&amp;nbsp; This will provide you with the “scope boundary” as shown in &lt;a href="http://dramethod.blogspot.com/2009/12/drd.html"&gt;the previous posting&lt;/a&gt;.&lt;br /&gt;&amp;nbsp; &lt;br /&gt;Some useful rules of thumb are: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;The top level decision nodes will be implemented in decision services (this was our starting assumption).&lt;/li&gt;&lt;li&gt;Most of the sub-decisions will be implemented in decision services, but services may call out to external decision-making processes e.g. web services or human authorities.&lt;/li&gt;&lt;li&gt;Most knowledge nodes will be implemented in the decision services (as rulesets or functions), but some very simple rules can be implemented as queries on a database.&lt;/li&gt;&lt;li&gt;Most data nodes will be information sources outside the decision services, but some may be implemented for convenience within the services if no other system requires access to them.&lt;/li&gt;&lt;/ul&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Boundary analysis involves provisional architectural design decisions, so the boundaries may be subject to change later in the design process. By recording the results of this analysis clearly in the project scope, any such requirements can be made the subject of a change request and properly costed.&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_jWjQOO_i7_M/SyYfmyXEd8I/AAAAAAAAACI/wS7_QD2CVwg/s1600-h/Example+Workflow.jpg" imageanchor="1" style="clear: right; cssfloat: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2658636224901006142-7866121664523571036?l=dramethod.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dramethod.blogspot.com/feeds/7866121664523571036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dramethod.blogspot.com/2009/12/draw.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2658636224901006142/posts/default/7866121664523571036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2658636224901006142/posts/default/7866121664523571036'/><link rel='alternate' type='text/html' href='http://dramethod.blogspot.com/2009/12/draw.html' title='DRAW'/><author><name>Alan Fish</name><uri>http://www.blogger.com/profile/07835536449501517210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWjQOO_i7_M/SxF3JYj5GwI/AAAAAAAAAAs/LxD2bAYuHiY/S220/alan+square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_jWjQOO_i7_M/SyY6NDAv2lI/AAAAAAAAACg/3BymjnKF9OY/s72-c/Example+Workflow.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2658636224901006142.post-7300126964633493148</id><published>2009-12-07T10:36:00.011Z</published><updated>2010-02-10T12:22:54.627Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='requirements'/><category scheme='http://www.blogger.com/atom/ns#' term='DRA'/><category scheme='http://www.blogger.com/atom/ns#' term='decision management'/><category scheme='http://www.blogger.com/atom/ns#' term='business rules'/><category scheme='http://www.blogger.com/atom/ns#' term='DRD'/><title type='text'>The DRD</title><content type='html'>People are &lt;em&gt;much&lt;/em&gt; better at extracting information from pictures than from words, which is&amp;nbsp;why diagrams are used in every professional sphere.&amp;nbsp; IT is especially blessed with diagrams, UML alone providing 13 different types.&amp;nbsp; Unfortunately, I have found none of these to be much use for defining decisioning requirements.&amp;nbsp; Use case diagrams are intended for use in requirements definition, but treat the system as a black box rather than exposing the structure of its decisioning .&amp;nbsp; ERDs can be used for capturing knowledge structure (as Barb von Halle and Larry Goldberg have elegantly shown in their &lt;a href="http://www.kpiusa.com/index.php?option=com_content&amp;amp;task=view&amp;amp;id=60&amp;amp;Itemid=122"&gt;Decision Model&lt;/a&gt;) but are&amp;nbsp;more useful&amp;nbsp;at the&amp;nbsp;design stage.&amp;nbsp; The subject of this posting is&amp;nbsp;the Decision Requirements Diagram (DRD), which I use&amp;nbsp;as a tool for capturing the scope and structure of the required decisioning at the very outset of a rules project, before any rules are discovered.&amp;nbsp;&amp;nbsp;&amp;nbsp;This diagram, with its associated documentation, is central to the DRA method.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;span style="font-size: large;"&gt;Definition&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A DRD is a network diagram (technically speaking, a directed acyclic graph) which shows the information required for one or more decisions. It can be thought of as a decomposition of some decisioning into a set of related decisions and areas of supporting information.&amp;nbsp; Below is a simple example of a DRD for a decision on how to deal with an application for a&amp;nbsp;secured loan. This example is unrealistically simple for most real applications, but shows all the principal features of a DRD.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;strong&gt;An example DRD&lt;/strong&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jWjQOO_i7_M/SxlMLP6WPpI/AAAAAAAAABw/uUBfZUhqfkY/s1600-h/Example+DRD.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" er="true" src="http://2.bp.blogspot.com/_jWjQOO_i7_M/SxlMLP6WPpI/AAAAAAAAABw/uUBfZUhqfkY/s400/Example+DRD.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It contains three types of nodes: decisions, knowledge and data. These are linked by arrows which indicate requirements: an arrow from A to B indicates that A is required for B. So, for example, the decision &lt;em&gt;What is the risk?&lt;/em&gt; requires three pieces of information:&amp;nbsp; the result of the decision &lt;em&gt;What is the loan to value ratio?&lt;/em&gt;, business knowledge expressed as scorecards, and bureau data.&amp;nbsp; By convention the nodes are arranged so that the arrows point upwards. Note that the diagram is not necessarily a tree: a single piece of information (e.g. the loan to value ratio or the requested loan data) may be required by multiple decisions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Components&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;The DRD contains only decision nodes, knowledge nodes, data nodes and arrows. &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;Decision nodes&lt;/strong&gt; represent decisions, possibly to be&amp;nbsp;taken by a rule service, but not necessarily:&amp;nbsp;&amp;nbsp;they might alternatively be made by a human decision-maker or by some other system component.&amp;nbsp; Each decision uses a set of data to generate a set of data.&amp;nbsp; The logic used to make the decision is described in one or more knowledge nodes.&amp;nbsp; Decision nodes are described in increasing detail as the project progresses, but the initial colloquial description will include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Name&lt;/strong&gt;:&amp;nbsp; a short noun phrase used as label for the decision, e.g. &lt;em&gt;Application Eligibility&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Question &amp;amp; Answer&lt;/strong&gt;:&amp;nbsp; a natural language question characterizing the decision, e.g. &lt;em&gt;Is the application eligible?&lt;/em&gt;,&lt;em&gt; &lt;/em&gt;with&amp;nbsp;a defined set of answers, e.g. &lt;em&gt;{ACCEPT, REFER, DECLINE}&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Description&lt;/strong&gt;:&amp;nbsp; a definition of the decision-making logic or process, e.g. &lt;em&gt;Applicant details and bureau data&amp;nbsp;are checked against eligibility rules to confirm that the application is eligible in principle for approval&lt;/em&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Knowledge nodes&lt;/strong&gt; represent areas of business knowledge required&amp;nbsp;for the decisions. This knowledge may currently exist as human expertise, printed documents etc.&amp;nbsp; In a decision-making system such knowledge may be represented formally as (for example):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Rules&lt;/strong&gt;:&amp;nbsp; business policies which must be “discovered” or "harvested"&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Scorecards&lt;/strong&gt;:&amp;nbsp; predictive models which may be generated using analytics&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Equations or algorithms&lt;/strong&gt;:&amp;nbsp; precise definitions of numerical calculations.&lt;/li&gt;&lt;/ul&gt;Note that it is possible to identify the &lt;em&gt;areas&lt;/em&gt; of knowledge required for a project without identifying any specific rules or defining detailed calculations, and it is usually possible to estimate their size and complexity (e.g. numbers of rules or scorecard characteristics).&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Data Nodes&lt;/strong&gt; represent areas of data required by the decisions, which might be:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Specific data&lt;/strong&gt; relating to the case being processed&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Reference data&lt;/strong&gt; held externally (e.g. on databases) or internally (e.g. in decision tables).&lt;/li&gt;&lt;/ul&gt;Again, at this stage we are interested in identifying &lt;em&gt;areas&lt;/em&gt; of data, not all the specific data items, but we might be able to say roughly how many items were involved.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Arrows&lt;/strong&gt; represent the fact that a piece of information is used by a decision. Requirements are not conditional; the arrow must be present if the piece of information is &lt;em&gt;ever&lt;/em&gt; required to make the decision.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Uses&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The main uses of the DRD will be described in&amp;nbsp;detail in subsequent postings, but here is a taster.&lt;br /&gt;&lt;br /&gt;The definitions of the individual nodes are directly useful in themselves:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Decision nodes provide a clear definition of the functional requirement&lt;/li&gt;&lt;li&gt;Knowledge nodes identify all the areas of knowledge discovery required for the project&lt;/li&gt;&lt;li&gt;Data nodes identify all the data to be made available and modelled.&lt;/li&gt;&lt;/ul&gt;The arrows between the nodes have important implications for the design, including:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Data flow: &amp;nbsp;if the source of some information is external to the system component in which the decision is to be implemented, a data interface is required&lt;/li&gt;&lt;li&gt;Ordering of tasks:&amp;nbsp; if decision A requires the result of decision B, B must be evaluated before A.&lt;/li&gt;&lt;/ul&gt;Drawing a boundary around a subset of nodes allows a very clear definition of what is inside and what is outside the boundary, and the lines crossing the boundary indicate the interfaces necessary. This allows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Project scoping:&amp;nbsp; by drawing a boundary around all the nodes to be implemented in the project&lt;/li&gt;&lt;li&gt;Division of functionality:&amp;nbsp; by drawing boundaries between a number of rule services and/or other system components&lt;/li&gt;&lt;li&gt;Resource allocation:&amp;nbsp; by dividing nodes between teams or individuals&lt;/li&gt;&lt;li&gt;Iterative development:&amp;nbsp; by partitioning the functionality of the rule service between a number of increments.&lt;/li&gt;&lt;/ul&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Here is an example of how the&amp;nbsp;DRD may be used to define scope of supply.&amp;nbsp; This&amp;nbsp;example shows&amp;nbsp;a fairly common scenario:&amp;nbsp; all the decision and knowledge nodes are inside the boundary&amp;nbsp;(i.e. rule services must implement all the defined decisioning) and&amp;nbsp;all the data nodes are outside (i.e. all the defined data must be provided by the client infrastructure to the rule services).&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: center;"&gt;&lt;strong&gt;Scope boundary on the DRD&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_jWjQOO_i7_M/SxwLdSfUPBI/AAAAAAAAAB4/f6TG5FU4sbI/s1600-h/Example+DRD+scope.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" er="true" src="http://4.bp.blogspot.com/_jWjQOO_i7_M/SxwLdSfUPBI/AAAAAAAAAB4/f6TG5FU4sbI/s400/Example+DRD+scope.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;And here is an example of using DRD to define increments for iterative development.&amp;nbsp; Here the decisions and knowledge nodes are divided into three increments, each providing a distinct functional benefit.&amp;nbsp; Decision Requirements Analysis has allowed this division to be planned so that the three increments are “loosely coupled”:&amp;nbsp; i.e. connected by few arrows.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;strong&gt;Increments on the DRD&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jWjQOO_i7_M/SxwLo720wEI/AAAAAAAAACA/wJiEYzqcvNc/s1600-h/Example+DRD+increments.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" er="true" src="http://2.bp.blogspot.com/_jWjQOO_i7_M/SxwLo720wEI/AAAAAAAAACA/wJiEYzqcvNc/s400/Example+DRD+increments.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The DRD is produced using a simple, structured workshop technique called &lt;a href="http://dramethod.blogspot.com/2009/12/draw.html"&gt;DRAW&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2658636224901006142-7300126964633493148?l=dramethod.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dramethod.blogspot.com/feeds/7300126964633493148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dramethod.blogspot.com/2009/12/drd.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2658636224901006142/posts/default/7300126964633493148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2658636224901006142/posts/default/7300126964633493148'/><link rel='alternate' type='text/html' href='http://dramethod.blogspot.com/2009/12/drd.html' title='The DRD'/><author><name>Alan Fish</name><uri>http://www.blogger.com/profile/07835536449501517210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWjQOO_i7_M/SxF3JYj5GwI/AAAAAAAAAAs/LxD2bAYuHiY/S220/alan+square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_jWjQOO_i7_M/SxlMLP6WPpI/AAAAAAAAABw/uUBfZUhqfkY/s72-c/Example+DRD.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2658636224901006142.post-1136759647652817068</id><published>2009-11-28T18:21:00.011Z</published><updated>2010-02-10T12:07:45.016Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='requirements'/><category scheme='http://www.blogger.com/atom/ns#' term='DRA'/><category scheme='http://www.blogger.com/atom/ns#' term='decision management'/><category scheme='http://www.blogger.com/atom/ns#' term='business rules'/><title type='text'>Introduction and Principles</title><content type='html'>Welcome to my first posting on the DRA blog.&amp;nbsp; I hope you find it interesting and useful.&amp;nbsp; I am planning to publish these ideas soon in a book, but first I wanted to share them with you - colleagues, friends and&amp;nbsp;anyone with a common interest - and collect your feedback.&amp;nbsp; Please feel free to comment, criticize or argue, and to contribute your own ideas.&lt;br /&gt;&lt;br /&gt;I have been building rule-based systems now for&amp;nbsp;over twenty-five years, and in my experience the most difficult problems with rules projects are rarely technical;&amp;nbsp; they are to do with management and communication.&amp;nbsp; For example:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How can you discuss the&amp;nbsp;required decisioning at a high level with the client?&lt;/li&gt;&lt;li&gt;How can you define the scope clearly at the outset of the project, before any rules have been collected?&amp;nbsp; &lt;/li&gt;&lt;li&gt;How can you implement the project in stages without the need for extensive rework?&lt;/li&gt;&lt;li&gt;How can you avoid nasty surprises half-way through (e.g. the need to integrate with an extra source of data)&lt;/li&gt;&lt;li&gt;How can you divide the development tasks between multiple teams or locations and be sure the components will integrate properly?&lt;/li&gt;&lt;li&gt;How do you know when you've finished?&lt;/li&gt;&lt;/ul&gt;Decision Requirements Analysis (DRA) is the approach I have developed as a response to these problems.&amp;nbsp; &lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;It has been adopted by &lt;a href="http://www.fico.com/"&gt;FICO&lt;/a&gt; as a standard part of our FIRUP methodology,&amp;nbsp;and is now being applied by some of our clients, so I'm hoping there is a large enough user base to make these discussions interesting.&amp;nbsp;&amp;nbsp;DRA is a formal method comprising:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The Decision Requirements Diagram (DRD):&amp;nbsp; a new type of diagram showing the structure of the required decisioning as a network of decisions and sub-decisions with their supporting areas of business knowledge and data&lt;/li&gt;&lt;li&gt;A structured workshop technique (DRAW) allowing a methodical top-down analysis of a decision into the structure recorded in the DRD and supporting documents&lt;/li&gt;&lt;li&gt;Best practice guidelines on the use of DRA in project planning, rules discovery, functional design and system development.&lt;/li&gt;&lt;/ul&gt;My plan is to introduce these components one at a time, in separate postings, to allow discussion of each before moving on.&amp;nbsp; This first posting is just to set the scene and declare some initial tenets.&lt;br /&gt;&lt;br /&gt;The underlying principles of DRA are simple.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Deliver the requirement, and nothing but the requirement.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The success of any development project depends on being able to contain the scope and deliver the agreed requirement. The basic principles of sound project management are well understood. Unfortunately, rules projects are notorious for scope creep, often caused by vague requirements.&lt;br /&gt;&lt;br /&gt;We must not allow rules projects to be treated as an exception, just because they are difficult. Where the business logic to be implemented is very complex it is even more important that the functional requirement is clearly stated and agreed by the client. This is not incompatible with iterative development, as I will show. Misunderstandings over scope at the outset of a project can be catastrophic for both supplier and client.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Always work top-down, not bottom-up.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;There is a tendency to think that business rules can be randomly “harvested” from an organisation, and can then be assembled into useful repositories. There are many problems with this approach, chiefly: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;An organisation may have millions of business rules, and only a small fraction of them will ever need to be represented in a rule service&lt;/li&gt;&lt;li&gt;A single logical fact may need to be expressed as several different rules for use in different decision-making contexts.&lt;/li&gt;&lt;/ul&gt;Besides, just collecting and modelling &lt;em&gt;existing&lt;/em&gt; business rules is anthropology, not Decision Management. Our goal is to &lt;em&gt;change&lt;/em&gt; decision-making in the organisation, and the only viable approach is top-down: define the desired business decision, then design and develop the rule service to implement it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Rule services make decisions.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A rule service is fundamentally a decision-making component. So, although it can be specified in various ways (e.g. as an algorithm or an input-output mapping), the best way to define its functionality is purely in terms of the decisions it makes.&amp;nbsp; Each decision can be defined as a means of providing an answer to a question. So if you can clearly define the questions, the answers, and the means, you have completely defined the functionality of the rule service.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Decisions require information.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;You can discover the requirements of a decision by asking &lt;em&gt;what information is required&lt;/em&gt; to make the decision.&amp;nbsp; Information is of three kinds:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Business knowledge (in all its forms:&amp;nbsp; rules, calculations, analytic models etc)&lt;/li&gt;&lt;li&gt;Data describing the case to be decided on&lt;/li&gt;&lt;li&gt;The results of other decisions.&lt;/li&gt;&lt;/ul&gt;The last point is the key:&amp;nbsp; this allows decisions to be decomposed into a network which can be drawn in a &lt;a href="http://dramethod.blogspot.com/2009/12/drd.html"&gt;Decision Requirements Diagram&lt;/a&gt;&amp;nbsp;(DRD).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2658636224901006142-1136759647652817068?l=dramethod.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dramethod.blogspot.com/feeds/1136759647652817068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dramethod.blogspot.com/2009/11/introduction-and-principles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2658636224901006142/posts/default/1136759647652817068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2658636224901006142/posts/default/1136759647652817068'/><link rel='alternate' type='text/html' href='http://dramethod.blogspot.com/2009/11/introduction-and-principles.html' title='Introduction and Principles'/><author><name>Alan Fish</name><uri>http://www.blogger.com/profile/07835536449501517210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_jWjQOO_i7_M/SxF3JYj5GwI/AAAAAAAAAAs/LxD2bAYuHiY/S220/alan+square.jpg'/></author><thr:total>0</thr:total></entry></feed>
