building business capability 2012 3nd world congress on decision tables verifying and maintaining...
TRANSCRIPT
Building Business Capability 20123nd World Congress on Decision Tables
Verifying and Maintaining Complex Policies with Unbalanced Decision Tables
The Speakers
Paul SnowRules Management Chief Architect, SourcePulse Bhushan Naniwadekar
Director of Application Development , SourcePulse
Context of the Talk
• Niyum provides a set of tools and services to build Decision Table based Rules
• Cloud based • Workstation support• Niyum is built on DTRules, an Open Source,
Pure Java Decision Table based Rules Engine
http://SourcePulse.comhttp://DTRules.com
Set the page_limit = 0; Set the period = the days from the begin date to the current_date; remove the persons from ages viewed + 1 is greater than the publisher.page_limit The page num is within the chapters_viewed The page Add 1 to the page count; add expected Children to The Client's dependents; Move the client from the
y y y y y n n n n n n - - - - - y n n n n n y n n n n - y n n n n - y n n n - - y n n n - - y n n - - - y n n - - - y n - - - - y n y y y y y n n n n n n - - - - - y n n n n n y n n n n - y n n n n - y n n n - - y n n n
A Decision Table
Conditions
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
Conditions
The page_limit == 0 The weeks from the begin_date to the current_date > the day_limit the number of pages_viewed + 1 is greater than the publisher. page_limit The page_number is with chapters_viewedThe page_number is within the excluded_chapters Thelimit > 20 The days from the begin_date to the current_date > the day_limit the number of pages_viewed + 1 is greater than the publisher. page_limit The page_number is within the chapters_viewed The page_number is within the
ConditionsCondition
Table
ActionTable
Actions
In a Decision Table…
The Customer is over 18
The Customer is over 25
Accident Count > 4
Valuation > 30,000 dollars
Driving is Urban
Customer is a home owner
Otherwise
N N Y Y
N Y
Y Y Y
Y
Y Y
N N
*
X X X X
X
Do not Issue Policy
Issue Policy
These are the rules!In a Decision Table…
The Customer is over 18
The Customer is over 25
Accident Count > 4
Valuation > 30,000 dollars
Driving is Urban
Customer is a home owner
Otherwise
N N Y Y
N Y
Y Y Y
Y
Y Y
N N
*
X X X X
X
Do not Issue Policy
Issue Policy
Documenting the Rules in a Decision Table
The Customer is over 18
The Customer is over 25
Accident Count > 4
Valuation > 30,000 dollars
Driving is Urban
Customer is a home owner
Otherwise
N N Y
N Y
Y Y Y
Y
Y Y
N N
*
X X X X
X
Do not Issue Policy
Issue Policy
Reject Customers under 19 with four accidentsReject Customers under 19 who primarily drive in Urban AreasReject under 26, 4 accidents, no home ownershipReject over 25, 4 accidents, high valuation, urban driving, no home ownership
Otherwise, Accept the Customer
Balancing the Table
Simplifying the Complexity of Rules
Just using the four quadrants and balanced Decision Tables is not a simple way of representing Rules and Policy
• Make the Rules obvious in a Table• Provide Easy ways of Tracking and
Documenting what rules are being applied
Niyum Supports Two Types of Unbalanced Decision Tables
• FIRST – Resolve by priority. Only execute the first column whose conditions are met.
• ALL – Resolve by generosity. Every column whose conditions are met is evaluated.
First: Execute Until a Rule Matches
The Customer is over 18
The Customer is over 25
Accident Count > 4
Valuation > 30,000 dollars
Driving is Urban
Customer is a home owner
Otherwise
N N Y
N Y
Y Y Y
Y
Y Y
N N
*
X X X X
X
Do not Issue Policy
Issue Policy
Reject Customers under 19 with four accidents Reject Customers under 19 who primarily drive in Urban Areas Reject under 26, > 4 accidents, no home ownership Reject over 25, > 4 accidents, high value , urban, no home ownership
Otherwise, Accept the Customer
OR
All: Execute All Rules that Match
The Customer is over 18
The Customer is over 25
Accident Count > 4
Valuation > 30,000 dollars
Driving is Urban
Customer is a home owner
Otherwise
N N Y
N Y
Y Y Y
Y
Y Y
N N
*
X X X X
X
Do not Issue Policy
Issue Policy
OR
Reject Customers under 19 with four accidents Reject Customers under 19 who primarily drive in Urban Areas
Otherwise, Accept the Customer
Reject under 26, > 4 accidents, no home ownership Reject over 25, > 4 accidents, high value , urban, no home ownership
Four Patterns of Decision Tables
• Control • Exclusion/Inclusion • Independent• Interdependent
Four Patterns of Decision Tables
• Control • Exclusion/Inclusion • Independent• Interdependent
This is not always so clear with Balanced Decision Tables
Control Tables:Order Decision Table Execution
Control Tables (Selection) : Order Decision Table Execution
Chooses a path through the Decision Tables based on a switch or a Test
Control Tables (Event Handling): Order Decision Table Execution
Exclusion Tables:Define a Set of Exceptions to Disqualify (or Qualify) an Action
Could Not Find a Reason to Say “No!”
Just Look for a Reason to say “No!”
How to Verify an Exclusion Table
• Each column is a rule that excludes a case from the conclusion of the table
• But It is critical to look at what is left over• The right tools will balance your table for you• Look to the Balanced Table for what is being
accepted
Tools like Niyum Provide a Balanced Table View
The BlueIs Where We Issue the Policy
The White Where we Reject the Policy. These are Straight from our Table!
Review with your Expert!
How about Tracking?
• That we are going to exclude an action is not always enough
• How do we track all the reasons for not taking an action?
• The last thing we want a client to do is expend a great deal of effort to resolve an issue, only to find there is another (and maybe another!) lurking behind!
Exclusion Tables can collect all the Rules that Excluded an Action
• The goal is to report every rule excluding or qualifying some action
• With Unbalanced Tables, it is straight forward to flip the type to ALL, and add tracking
Tracking all Exclusion Rules
One Column Covered by Two Rules
Independent Decision Tables
• A collection of independent rules in a Decision Table
• Scorecards • Complex Event handling
Independent Rules are ALL tables of Rules
With Independent Tables, the Rules are the Rules. Looking at the Balanced Table does little if any good
Interdependent Tables
• The Hardest to maintain• Examine the Table. Where are the Patterns?• Can you make the Table into a FIRST table?• Can you make the Table into an ALL table?
An Interdependent Table
An Interdependent Table
Cleaning up the Table
Converted to an Exclusion Table
Check Balanced View
Converting to an Independent Table
Converting to an Independent Table
Converting to an Independent Table
Converted to an Independent Table
Check Balanced View
Which Representation do you Use?
Which Representation do you Use?
Check your Work
• The Balanced representation does not Change.
• Converting to an Exclusion Table tends to simplify the representation of complexity in the Conditions
• Converting to an Independent Table tends to simplify the Representation of Complexity in the Actions
Advantages of Unbalanced Tables
• The Business User doesn’t have to learn to Balance Tables
• The Business User doesn’t have to read Balanced Tables
• Because Columns can be moved easily, Priorities are easy to manage in FIRST tables
• Simplifies Independent Rules when present in Decision Tables
• Avoids “Scrambling” the actual Business Rules
Advantages of Unbalanced Tables
Even when Balanced Tables are Better…
Your Tools can simply provide the Balanced Representation.
QUESTIONS