SlideShare a Scribd company logo
1 of 18
Download to read offline
Practical Business Rules
Development and Use
Mike Cook
Senior S1000D Business Analyst
November 18th, 2015
TDW Conference
Bristol, England - November 17, 18, & 19th
2
Key points
○ Benefits of business rules
– They make you stop, think, plan, test, and then implement
– Gives you a chance to create sample data and play “what if?” games
– Forces you to communicate ideas to a broader team
○ Benefits of analysis and design
– Saves money by finding design issues early
– Reduces costs by keeping the project team small at the beginning
– Accelerates review of good design principles early in the design phase
○ There’s more to business rules than the BRDPs in the spec
– The spec introduces important business rules needing early decisions
– Custom rules are not in the spec and need to be captured – but it’s up to the
analysis team to identify and document them
3
Key points (cont’d)
○ Catching errors early and correcting them
– Identifying missing capabilities, understanding how to use elements
and attributes early
○ Saving money
– Additive effects of good analysis practices (business rules),
leveraging S1000D features and capabilities, and building a solution
you can support long term is the key to success
4
History of Business Rules
– Where Business Rules came from
• Business rules are an outgrowth of systems analysis and design
• Look in early issues of S1000D and see what the definition of a
business rule is
• The concept of business rules has morphed since its first definition in the
specification (read up on it in Issues 2.1 and 2.2 – compare that with today)
• The original intent of the BREX data module did not include the testing of element or
attribute values – only the appearance or lack of an element or attribute was tested
• Adding in the ability to test the value of an element or attribute using XPath and
XQuery is great but increases complexity and time to evaluate the value
– Why Business Rules were created
• Rules keep projects honest and conformant to the specification by informing
everyone HOW, WHEN, and WHY elements and attributes are used in the various
schemas
5
History of Business Rules (cont’d)
– Why we have BRDPs today – (hint: been there, done that)
• Good business rules come from the experience of others who have
been there before and know the question is important to your project’s
success
• Properly documenting a rule so everyone understands what to do is
more important than answering all the rules. Good results come from
good communication.
Note: Not every rule is important to your project. Just because a rule is in the spec
doesn’t mean you have to answer it. Know what to ignore.
Also, not all the Business Rules you need to answer are in the spec (custom rules).
Many rules should be answered as part of any project and are “custom” rules. For
example, not every project needs to use the skillLevelCode attribute the same way
6
Keeping technical writers honest
– Minimizing errors early
• Authors are going to make mistakes. They’ll
make more mistakes if you don’t tell them how
to use the various elements and attributes correctly
• Documenting how to use an element, attribute, or S1000D capability
makes it easier for everyone to “get it right”
– Indirect training
• The BREX DM can indirectly train authors how not to use an element
or attribute, and vice/versa
• Being able to read a Business Rule Design Document (BRDD) instead
of guessing how to use an element or attribute makes a big difference
7
Keeping technical writers honest (cont’d)
– Improving throughput
• Getting more out of a writer, editor, or IT employee makes a big
difference in the bottom line – getting there takes education
– Increasing reliability
• Reducing mistakes saves time, increases throughput, and ultimately
increases quality of the final product. It’s easier to build it in up front
than it is to add it in half way through the implementation of the project
8
Leveraging the simple checks
– Testing use of element and attribute values
Testing the value of an attribute or element is a great way to make
sure information is being added correctly – however this can add
significant time to a batch related QA pass
– Validating proper use of data structures
Confirming the combined use of required elements and attributes (regardless of the
data within them) is an important QA pass – it let’s you know how the writers are doing
– Validating related data
Evaluating the use of data in one element or attribute and comparing it with values in
another can be a significant benefit, but do you want to do this in a BREX data module
or from within an executable that has the horsepower to do it better and faster?
Note: Resolving BREX “rule checks” in a data module usually uses interpreted
languages – not compiled programs. In other words, it uses the equivalent of
Javascript or Purl. This is very slow. An interpreted language is not the same as a
compiled executable. Instead, use JAVA or a .NET programming language and create
an executable instead of a BREX data module to perform validations.
9
What's up with Layered Business Rules?
– Disappointment in tech pub land
• The layered business rules paradigm does not work in the real world if you
have multiple customers for the same product
(if you take the blue pill it does work – if you take the red pill it doesn’t)
• Double-binds whenever there is more than one customer per project
• Deviations (or waivers) from a “customer” based layered rule are nearly
impossible to obtain – therefore businesses are choosing to ignore the
layered hierarchy in order to deliver product in a sensible manner
– What's working and what's not
• We are finding in the real world that Customers don’t really understand
what business rules are all about
• Customers tend to give the impression that content providers do not
deliver publications to more than one customer (the egocentric attitude of
we’re the only ones out here)
10
What's up with Layered Business Rules? (cont’d)
– What we're seeing in the real world
• Costs are escalating to support layered rules when multiple customers
exist
• Overlapping “customer requirements” defeat the ability to create content
consistently and at a reasonable cost
• Content providers must ignore the rules of some customers but accept the
rules of others – potentially alienating smaller customers
• This creates a situation of a two class system of customers; if you’re not
big enough, the content provider may ignore a smaller customer’s rules in
favor of making a bigger customer happy
11
Layered Business Rules(cont’d)
○ Downside of layered business rules to a technical publications development team
– Customers are getting into the business of “knowing” S1000D. Should they?
– Why does the recipient of content need to know the inner workings of S1000D?
If customers are going to be in the business of tweaking the content/data modules then they might as well take on
the responsibility of aligning the content to suite their needs and take the pressure off the technical publications
groups developing the original content (thereby reducing the initial cost of content development).
– If customers create BREX data modules and you have multiple BREX DMs to validate against, how
can you possibly resolve all the development issues?
– Customers who think they know S1000D are coming up with rules like the following:
<structureObjectRule>
<objectPath allowedObjectFlag="1">//dmAddress/dmIdent/dmCode/@infoCode="00S"</objectPath>
<objectUse>Prohibited exclusion of the LOEDM information code “00S” </objectUse>
</structureObjectRule>
This rule check states all data modules must use the information code “00S”. Not a good idea.
<structureObjectRule>
<objectPath allowedObjectFlag="1">//refs</objectPath>
<objectUse>Prohibited exclusion of the required element /refs. /refs must be used.</objectUse>
</structureObjectRule>
This rule check indicates all instances of <refs> available within any schema must be used. Again, not a good idea.
Also, do you have any idea how many times you’ll see this message?
12
Setting the stage for success
– Proper analysis and design
• Layered business rules are not working for multiple
customer projects, therefore, don’t respect the layered
business rule concept – but do document your rules
• Take into account the “desires” of customers, but only use what makes sense across all
customers
– Data defense is king
• Using business rules for getting everyone on the content development team on the same page is
the best use and solution overall
• Using the BREX data module for quality assurance (QA) is important, but it may be more
important to create a faster more flexible method of performing QA using JAVA or a .NET
enabled program
– Streamlining the workflow
• Workflow is a business’ best friend, it can make the difference between success and
failure
• Leveraging workflow as part of the business rules can save money and time
13
Practical testing
– What makes sense to test using a BREX
data module?
• Performing tests of “values” in an element or attribute is probably
not the most practical use of a BREX DM
• Custom JAVA or .NET enabled applications can do a much better and faster job of testing
content in an XML file than a BREX data module
• A BREX data module is great for simple feedback to a writer about what they did right and what
they did wrong (did you use the correct element or attribute?)
– What makes sense to test using something other than a BREX data module?
• Testing values of an element or attribute where complex associations or conditions need to be
evaluated are the domain of executable programs with JAVA or .NET like capabilities
• You can’t test the data module filename of a data module against the <dmCode> element within
the <identAndStatusSection> of a data module using a BREX data module – however a .NET or
JAVA application can
14
It’s about being practical
○ Business Rules are about evaluating what’s important
○ Don’t just go with your first blush answer, think about the
overall ramifications across all schemas and publications
○ You may need to document a business rule multiple times for different
publications/information sets
○ Success is in knowing how much of the BREX data module your project should
try to implement and how much should be deferred to another method (Java or
.Net)
15
It’s about being practical (cont’d)
○ Communicate with the project team as much as is practical and use the
BREX data module to enforce the important points
○ Communicating also includes documenting decisions so everyone
knows where to get an answer and how to work
○ Avoid the mad dash to implement. Think
about how you want to do business and
use those features of the specification
that make sense using a phased approach
(don’t try to do it all in one lump)
16
Example Rule Checks
<structureObjectRule>
<objectPath allowedObjectFlag="1">/dmodule/identAndStatusSection/dmAddress/
dmIdent/dmCode[attribute::modelIdentCode="SB2000"]</objectPath>
<objectUse>The project requires the use of the model identification code "SB2000" for all data
modules.</objectUse>
</structureObjectRule>
<structureObjectRule>
<objectPath allowedObjectFlag="1">/dmodule/identAndStatusSection/dmStatus/qualityAssurance/
firstVerification/@verificationType</objectPath>
<objectUse>You must use the verificationType attribute.</objectUse>
</structureObjectRule>
<structureObjectRule>
<objectPath allowedObjectFlag="1">/dmodule/content/description/levelledPara/title</objectPath>
<objectUse>You must include a &lt;title&gt; element in the first use of a &lt;levelledPara&gt;.</objectUse>
</structureObjectRule>
<structureObjectRule>
<objectPath allowedObjectFlag="0">/dmodule/content/description/levelledPara/levelledPara/title</objectPath>
<objectUse>You cannot use an indented title at the second level of indenture.</objectUse>
</structureObjectRule>
17
From the BREX in the sky…
<structureObjectRule>
<objectPath allowedObjectFlag="2">//@securityClassification</objectPath>
<objectUse>Attribute securityClassification - Security classification</objectUse>
<objectValue valueForm="single" valueAllowed="01"/>
<objectValue valueForm="single" valueAllowed="02"/>
<objectValue valueForm="single" valueAllowed="03"/>
<objectValue valueForm="single" valueAllowed="04"/>
<objectValue valueForm="single" valueAllowed="05"/>
<objectValue valueForm="single" valueAllowed="06"/>
<objectValue valueForm="single" valueAllowed="07"/>
<objectValue valueForm="single" valueAllowed="08"/>
<objectValue valueForm="single" valueAllowed="09"/>
<!-- Values within range 51~99 can be allocated and defined by projects or organizations -->
<objectValue valueForm="range" valueAllowed="51~99" valueTailoring="restrictable"/>
</structureObjectRule>
Based on the concepts associated with “Layered Business Rules”, what’s wrong with this picture?
Remember, you can’t update the BREX in the sky, you can only update a local/project BREX Data
Module.
18
Thank you for your time and I hope you gained extra
understanding of how to use and implement BREX.

More Related Content

What's hot

Business Requirements Document Template
Business Requirements Document TemplateBusiness Requirements Document Template
Business Requirements Document TemplateEdmond Cheng
 
CCBA Certification Overview
CCBA Certification OverviewCCBA Certification Overview
CCBA Certification OverviewTechcanvass
 
CBAP Certification Overview
CBAP Certification OverviewCBAP Certification Overview
CBAP Certification OverviewTechcanvass
 
Business requirements gathering and analysis
Business requirements gathering and analysisBusiness requirements gathering and analysis
Business requirements gathering and analysisMena M. Eissa
 
Brd template uml-noble_inc
Brd template uml-noble_incBrd template uml-noble_inc
Brd template uml-noble_incUdaya Kumar
 
Testing Enterprise Software Rewrites
Testing Enterprise Software RewritesTesting Enterprise Software Rewrites
Testing Enterprise Software RewritesTechWell
 
How to Gather Requirements
How to Gather RequirementsHow to Gather Requirements
How to Gather RequirementsClearworks
 
NONPROFIT INSIGHTS
NONPROFIT INSIGHTSNONPROFIT INSIGHTS
NONPROFIT INSIGHTSlescar123
 
'Analysis in Outsourcing Company - Case Studies by Jekaterina Lebedeva, Anna ...
'Analysis in Outsourcing Company - Case Studies by Jekaterina Lebedeva, Anna ...'Analysis in Outsourcing Company - Case Studies by Jekaterina Lebedeva, Anna ...
'Analysis in Outsourcing Company - Case Studies by Jekaterina Lebedeva, Anna ...IIBA_Latvia_Chapter
 
Project Requirements, What Are They And How Do You Know You
Project Requirements, What Are They And How Do You Know YouProject Requirements, What Are They And How Do You Know You
Project Requirements, What Are They And How Do You Know YouJohn N. Motlagh
 
Agile: JAD Requirements Elicitation
Agile:  JAD Requirements ElicitationAgile:  JAD Requirements Elicitation
Agile: JAD Requirements ElicitationErnadel Sioson
 
IT Business Analyst (NTP, PG, 08.10.2013)
IT Business Analyst (NTP, PG, 08.10.2013)IT Business Analyst (NTP, PG, 08.10.2013)
IT Business Analyst (NTP, PG, 08.10.2013)JIT Solutions
 

What's hot (17)

Business Requirements Document Template
Business Requirements Document TemplateBusiness Requirements Document Template
Business Requirements Document Template
 
Requirement Capturing Techniques
Requirement Capturing TechniquesRequirement Capturing Techniques
Requirement Capturing Techniques
 
CCBA Certification Overview
CCBA Certification OverviewCCBA Certification Overview
CCBA Certification Overview
 
CBAP Certification Overview
CBAP Certification OverviewCBAP Certification Overview
CBAP Certification Overview
 
Business requirements gathering and analysis
Business requirements gathering and analysisBusiness requirements gathering and analysis
Business requirements gathering and analysis
 
Business Case
Business CaseBusiness Case
Business Case
 
Brd template uml-noble_inc
Brd template uml-noble_incBrd template uml-noble_inc
Brd template uml-noble_inc
 
Testing Enterprise Software Rewrites
Testing Enterprise Software RewritesTesting Enterprise Software Rewrites
Testing Enterprise Software Rewrites
 
BAAgileQA
BAAgileQABAAgileQA
BAAgileQA
 
How to Gather Requirements
How to Gather RequirementsHow to Gather Requirements
How to Gather Requirements
 
NONPROFIT INSIGHTS
NONPROFIT INSIGHTSNONPROFIT INSIGHTS
NONPROFIT INSIGHTS
 
'Analysis in Outsourcing Company - Case Studies by Jekaterina Lebedeva, Anna ...
'Analysis in Outsourcing Company - Case Studies by Jekaterina Lebedeva, Anna ...'Analysis in Outsourcing Company - Case Studies by Jekaterina Lebedeva, Anna ...
'Analysis in Outsourcing Company - Case Studies by Jekaterina Lebedeva, Anna ...
 
BRD Template
BRD Template BRD Template
BRD Template
 
Project Requirements, What Are They And How Do You Know You
Project Requirements, What Are They And How Do You Know YouProject Requirements, What Are They And How Do You Know You
Project Requirements, What Are They And How Do You Know You
 
Chapter 3
Chapter 3Chapter 3
Chapter 3
 
Agile: JAD Requirements Elicitation
Agile:  JAD Requirements ElicitationAgile:  JAD Requirements Elicitation
Agile: JAD Requirements Elicitation
 
IT Business Analyst (NTP, PG, 08.10.2013)
IT Business Analyst (NTP, PG, 08.10.2013)IT Business Analyst (NTP, PG, 08.10.2013)
IT Business Analyst (NTP, PG, 08.10.2013)
 

Viewers also liked

LED Low Bay 25-28.Jolighting
LED Low Bay 25-28.JolightingLED Low Bay 25-28.Jolighting
LED Low Bay 25-28.JolightingBella Hui
 
SK SERVICES Company Profile
SK SERVICES Company ProfileSK SERVICES Company Profile
SK SERVICES Company ProfileSwapnil Shahade
 
Non Recourse Project Funding
Non Recourse Project FundingNon Recourse Project Funding
Non Recourse Project FundingSGT K. K. Group
 
Elements of Digital Citizenship
Elements of Digital CitizenshipElements of Digital Citizenship
Elements of Digital CitizenshipIan Jake Loquere
 
LegacyDataConversionToS1000D
LegacyDataConversionToS1000DLegacyDataConversionToS1000D
LegacyDataConversionToS1000DMichael Cook
 
Reglamento para el arquero power
Reglamento para el arquero powerReglamento para el arquero power
Reglamento para el arquero powerRocio Bruno
 
kathy resume 10 13 14
kathy resume 10 13 14kathy resume 10 13 14
kathy resume 10 13 14Kathy Bowden
 
What_it_Takes_to_Model_a_Wiring_Solution
What_it_Takes_to_Model_a_Wiring_SolutionWhat_it_Takes_to_Model_a_Wiring_Solution
What_it_Takes_to_Model_a_Wiring_SolutionMichael Cook
 
Jolighting LED Flood Light Catalog
Jolighting LED Flood Light CatalogJolighting LED Flood Light Catalog
Jolighting LED Flood Light CatalogBella Hui
 
Tratamento da alopecia
Tratamento da alopecia Tratamento da alopecia
Tratamento da alopecia joshuaheat
 
Ron clark story Movie Review
Ron clark story Movie ReviewRon clark story Movie Review
Ron clark story Movie ReviewNeil Lopez
 

Viewers also liked (15)

CV jayendra 1
CV jayendra 1CV jayendra 1
CV jayendra 1
 
LED Low Bay 25-28.Jolighting
LED Low Bay 25-28.JolightingLED Low Bay 25-28.Jolighting
LED Low Bay 25-28.Jolighting
 
SK SERVICES Company Profile
SK SERVICES Company ProfileSK SERVICES Company Profile
SK SERVICES Company Profile
 
Moroccan Food in Palo Alto
Moroccan Food in Palo AltoMoroccan Food in Palo Alto
Moroccan Food in Palo Alto
 
Non Recourse Project Funding
Non Recourse Project FundingNon Recourse Project Funding
Non Recourse Project Funding
 
Elements of Digital Citizenship
Elements of Digital CitizenshipElements of Digital Citizenship
Elements of Digital Citizenship
 
LegacyDataConversionToS1000D
LegacyDataConversionToS1000DLegacyDataConversionToS1000D
LegacyDataConversionToS1000D
 
Reglamento para el arquero power
Reglamento para el arquero powerReglamento para el arquero power
Reglamento para el arquero power
 
kathy resume 10 13 14
kathy resume 10 13 14kathy resume 10 13 14
kathy resume 10 13 14
 
What_it_Takes_to_Model_a_Wiring_Solution
What_it_Takes_to_Model_a_Wiring_SolutionWhat_it_Takes_to_Model_a_Wiring_Solution
What_it_Takes_to_Model_a_Wiring_Solution
 
jointsupreport_sept-oct02
jointsupreport_sept-oct02jointsupreport_sept-oct02
jointsupreport_sept-oct02
 
Conceptos generales
Conceptos generalesConceptos generales
Conceptos generales
 
Jolighting LED Flood Light Catalog
Jolighting LED Flood Light CatalogJolighting LED Flood Light Catalog
Jolighting LED Flood Light Catalog
 
Tratamento da alopecia
Tratamento da alopecia Tratamento da alopecia
Tratamento da alopecia
 
Ron clark story Movie Review
Ron clark story Movie ReviewRon clark story Movie Review
Ron clark story Movie Review
 

Similar to Practical_Business_Rules_Development_and_Use

Sample_Data_and_Data_Modules
Sample_Data_and_Data_ModulesSample_Data_and_Data_Modules
Sample_Data_and_Data_ModulesMichael Cook
 
Building Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptxBuilding Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptxdavorminchorov1
 
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore
 
Agility is the tool gilb vilnius 9 dec 2013
Agility is the tool gilb vilnius 9 dec 2013Agility is the tool gilb vilnius 9 dec 2013
Agility is the tool gilb vilnius 9 dec 2013tom gilb
 
Best practice for_agile_ds_projects
Best practice for_agile_ds_projectsBest practice for_agile_ds_projects
Best practice for_agile_ds_projectsKhalid Kahloot
 
Sdec10 lean package implementation
Sdec10 lean package implementationSdec10 lean package implementation
Sdec10 lean package implementationTerry Bunio
 
Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013
Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013
Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013Emtec Inc.
 
Improve Product Design with High Quality Requirements
Improve Product Design with High Quality RequirementsImprove Product Design with High Quality Requirements
Improve Product Design with High Quality RequirementsElizabeth Steiner
 
Session03-Requirement (1).pdf
Session03-Requirement (1).pdfSession03-Requirement (1).pdf
Session03-Requirement (1).pdfPeterTran514407
 
Agile Development – Why requirements matter
Agile Development – Why requirements matterAgile Development – Why requirements matter
Agile Development – Why requirements matterAgile Austria Conference
 
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFPractical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFMichael Sukachev
 
2 data warehouse life cycle golfarelli
2 data warehouse life cycle golfarelli2 data warehouse life cycle golfarelli
2 data warehouse life cycle golfarellitruongthuthuy47
 
Conference Room Prototype – a low cost, high value approach to selecting the ...
Conference Room Prototype – a low cost, high value approach to selecting the ...Conference Room Prototype – a low cost, high value approach to selecting the ...
Conference Room Prototype – a low cost, high value approach to selecting the ...Mekon Ltd.
 
Agile Development – Why requirements matter by Fariz Saracevic
Agile Development – Why requirements matter by Fariz SaracevicAgile Development – Why requirements matter by Fariz Saracevic
Agile Development – Why requirements matter by Fariz SaracevicAgile ME
 
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...BI Brainz
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Naresh Jain
 
Combining ITIL, Six Sigma and Theory of Constraints in streamlining IT quality
Combining ITIL, Six Sigma and Theory of Constraints in streamlining IT quality Combining ITIL, Six Sigma and Theory of Constraints in streamlining IT quality
Combining ITIL, Six Sigma and Theory of Constraints in streamlining IT quality PECB
 
103240-The-New-Way-of-Thinking-Our-Implementation-experience-with-Oracle-HCM-...
103240-The-New-Way-of-Thinking-Our-Implementation-experience-with-Oracle-HCM-...103240-The-New-Way-of-Thinking-Our-Implementation-experience-with-Oracle-HCM-...
103240-The-New-Way-of-Thinking-Our-Implementation-experience-with-Oracle-HCM-...ssuser835d1a
 

Similar to Practical_Business_Rules_Development_and_Use (20)

Sample_Data_and_Data_Modules
Sample_Data_and_Data_ModulesSample_Data_and_Data_Modules
Sample_Data_and_Data_Modules
 
Building Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptxBuilding Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptx
 
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
 
Agility is the tool gilb vilnius 9 dec 2013
Agility is the tool gilb vilnius 9 dec 2013Agility is the tool gilb vilnius 9 dec 2013
Agility is the tool gilb vilnius 9 dec 2013
 
Best practice for_agile_ds_projects
Best practice for_agile_ds_projectsBest practice for_agile_ds_projects
Best practice for_agile_ds_projects
 
Sdec10 lean package implementation
Sdec10 lean package implementationSdec10 lean package implementation
Sdec10 lean package implementation
 
Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013
Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013
Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013
 
Improve Product Design with High Quality Requirements
Improve Product Design with High Quality RequirementsImprove Product Design with High Quality Requirements
Improve Product Design with High Quality Requirements
 
Session03-Requirement (1).pdf
Session03-Requirement (1).pdfSession03-Requirement (1).pdf
Session03-Requirement (1).pdf
 
Calto Commercial RIS Systems
Calto Commercial RIS SystemsCalto Commercial RIS Systems
Calto Commercial RIS Systems
 
Agile Development – Why requirements matter
Agile Development – Why requirements matterAgile Development – Why requirements matter
Agile Development – Why requirements matter
 
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFPractical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
 
2 data warehouse life cycle golfarelli
2 data warehouse life cycle golfarelli2 data warehouse life cycle golfarelli
2 data warehouse life cycle golfarelli
 
Conference Room Prototype – a low cost, high value approach to selecting the ...
Conference Room Prototype – a low cost, high value approach to selecting the ...Conference Room Prototype – a low cost, high value approach to selecting the ...
Conference Room Prototype – a low cost, high value approach to selecting the ...
 
Agile Development – Why requirements matter by Fariz Saracevic
Agile Development – Why requirements matter by Fariz SaracevicAgile Development – Why requirements matter by Fariz Saracevic
Agile Development – Why requirements matter by Fariz Saracevic
 
Quality & Risk Management Challenges When Acquiring Enterprise Systems
Quality & Risk Management Challenges When Acquiring Enterprise SystemsQuality & Risk Management Challenges When Acquiring Enterprise Systems
Quality & Risk Management Challenges When Acquiring Enterprise Systems
 
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
An In-Depth Look at Pinpointing and Addressing Sources of Performance Problem...
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
 
Combining ITIL, Six Sigma and Theory of Constraints in streamlining IT quality
Combining ITIL, Six Sigma and Theory of Constraints in streamlining IT quality Combining ITIL, Six Sigma and Theory of Constraints in streamlining IT quality
Combining ITIL, Six Sigma and Theory of Constraints in streamlining IT quality
 
103240-The-New-Way-of-Thinking-Our-Implementation-experience-with-Oracle-HCM-...
103240-The-New-Way-of-Thinking-Our-Implementation-experience-with-Oracle-HCM-...103240-The-New-Way-of-Thinking-Our-Implementation-experience-with-Oracle-HCM-...
103240-The-New-Way-of-Thinking-Our-Implementation-experience-with-Oracle-HCM-...
 

Practical_Business_Rules_Development_and_Use

  • 1. Practical Business Rules Development and Use Mike Cook Senior S1000D Business Analyst November 18th, 2015 TDW Conference Bristol, England - November 17, 18, & 19th
  • 2. 2 Key points ○ Benefits of business rules – They make you stop, think, plan, test, and then implement – Gives you a chance to create sample data and play “what if?” games – Forces you to communicate ideas to a broader team ○ Benefits of analysis and design – Saves money by finding design issues early – Reduces costs by keeping the project team small at the beginning – Accelerates review of good design principles early in the design phase ○ There’s more to business rules than the BRDPs in the spec – The spec introduces important business rules needing early decisions – Custom rules are not in the spec and need to be captured – but it’s up to the analysis team to identify and document them
  • 3. 3 Key points (cont’d) ○ Catching errors early and correcting them – Identifying missing capabilities, understanding how to use elements and attributes early ○ Saving money – Additive effects of good analysis practices (business rules), leveraging S1000D features and capabilities, and building a solution you can support long term is the key to success
  • 4. 4 History of Business Rules – Where Business Rules came from • Business rules are an outgrowth of systems analysis and design • Look in early issues of S1000D and see what the definition of a business rule is • The concept of business rules has morphed since its first definition in the specification (read up on it in Issues 2.1 and 2.2 – compare that with today) • The original intent of the BREX data module did not include the testing of element or attribute values – only the appearance or lack of an element or attribute was tested • Adding in the ability to test the value of an element or attribute using XPath and XQuery is great but increases complexity and time to evaluate the value – Why Business Rules were created • Rules keep projects honest and conformant to the specification by informing everyone HOW, WHEN, and WHY elements and attributes are used in the various schemas
  • 5. 5 History of Business Rules (cont’d) – Why we have BRDPs today – (hint: been there, done that) • Good business rules come from the experience of others who have been there before and know the question is important to your project’s success • Properly documenting a rule so everyone understands what to do is more important than answering all the rules. Good results come from good communication. Note: Not every rule is important to your project. Just because a rule is in the spec doesn’t mean you have to answer it. Know what to ignore. Also, not all the Business Rules you need to answer are in the spec (custom rules). Many rules should be answered as part of any project and are “custom” rules. For example, not every project needs to use the skillLevelCode attribute the same way
  • 6. 6 Keeping technical writers honest – Minimizing errors early • Authors are going to make mistakes. They’ll make more mistakes if you don’t tell them how to use the various elements and attributes correctly • Documenting how to use an element, attribute, or S1000D capability makes it easier for everyone to “get it right” – Indirect training • The BREX DM can indirectly train authors how not to use an element or attribute, and vice/versa • Being able to read a Business Rule Design Document (BRDD) instead of guessing how to use an element or attribute makes a big difference
  • 7. 7 Keeping technical writers honest (cont’d) – Improving throughput • Getting more out of a writer, editor, or IT employee makes a big difference in the bottom line – getting there takes education – Increasing reliability • Reducing mistakes saves time, increases throughput, and ultimately increases quality of the final product. It’s easier to build it in up front than it is to add it in half way through the implementation of the project
  • 8. 8 Leveraging the simple checks – Testing use of element and attribute values Testing the value of an attribute or element is a great way to make sure information is being added correctly – however this can add significant time to a batch related QA pass – Validating proper use of data structures Confirming the combined use of required elements and attributes (regardless of the data within them) is an important QA pass – it let’s you know how the writers are doing – Validating related data Evaluating the use of data in one element or attribute and comparing it with values in another can be a significant benefit, but do you want to do this in a BREX data module or from within an executable that has the horsepower to do it better and faster? Note: Resolving BREX “rule checks” in a data module usually uses interpreted languages – not compiled programs. In other words, it uses the equivalent of Javascript or Purl. This is very slow. An interpreted language is not the same as a compiled executable. Instead, use JAVA or a .NET programming language and create an executable instead of a BREX data module to perform validations.
  • 9. 9 What's up with Layered Business Rules? – Disappointment in tech pub land • The layered business rules paradigm does not work in the real world if you have multiple customers for the same product (if you take the blue pill it does work – if you take the red pill it doesn’t) • Double-binds whenever there is more than one customer per project • Deviations (or waivers) from a “customer” based layered rule are nearly impossible to obtain – therefore businesses are choosing to ignore the layered hierarchy in order to deliver product in a sensible manner – What's working and what's not • We are finding in the real world that Customers don’t really understand what business rules are all about • Customers tend to give the impression that content providers do not deliver publications to more than one customer (the egocentric attitude of we’re the only ones out here)
  • 10. 10 What's up with Layered Business Rules? (cont’d) – What we're seeing in the real world • Costs are escalating to support layered rules when multiple customers exist • Overlapping “customer requirements” defeat the ability to create content consistently and at a reasonable cost • Content providers must ignore the rules of some customers but accept the rules of others – potentially alienating smaller customers • This creates a situation of a two class system of customers; if you’re not big enough, the content provider may ignore a smaller customer’s rules in favor of making a bigger customer happy
  • 11. 11 Layered Business Rules(cont’d) ○ Downside of layered business rules to a technical publications development team – Customers are getting into the business of “knowing” S1000D. Should they? – Why does the recipient of content need to know the inner workings of S1000D? If customers are going to be in the business of tweaking the content/data modules then they might as well take on the responsibility of aligning the content to suite their needs and take the pressure off the technical publications groups developing the original content (thereby reducing the initial cost of content development). – If customers create BREX data modules and you have multiple BREX DMs to validate against, how can you possibly resolve all the development issues? – Customers who think they know S1000D are coming up with rules like the following: <structureObjectRule> <objectPath allowedObjectFlag="1">//dmAddress/dmIdent/dmCode/@infoCode="00S"</objectPath> <objectUse>Prohibited exclusion of the LOEDM information code “00S” </objectUse> </structureObjectRule> This rule check states all data modules must use the information code “00S”. Not a good idea. <structureObjectRule> <objectPath allowedObjectFlag="1">//refs</objectPath> <objectUse>Prohibited exclusion of the required element /refs. /refs must be used.</objectUse> </structureObjectRule> This rule check indicates all instances of <refs> available within any schema must be used. Again, not a good idea. Also, do you have any idea how many times you’ll see this message?
  • 12. 12 Setting the stage for success – Proper analysis and design • Layered business rules are not working for multiple customer projects, therefore, don’t respect the layered business rule concept – but do document your rules • Take into account the “desires” of customers, but only use what makes sense across all customers – Data defense is king • Using business rules for getting everyone on the content development team on the same page is the best use and solution overall • Using the BREX data module for quality assurance (QA) is important, but it may be more important to create a faster more flexible method of performing QA using JAVA or a .NET enabled program – Streamlining the workflow • Workflow is a business’ best friend, it can make the difference between success and failure • Leveraging workflow as part of the business rules can save money and time
  • 13. 13 Practical testing – What makes sense to test using a BREX data module? • Performing tests of “values” in an element or attribute is probably not the most practical use of a BREX DM • Custom JAVA or .NET enabled applications can do a much better and faster job of testing content in an XML file than a BREX data module • A BREX data module is great for simple feedback to a writer about what they did right and what they did wrong (did you use the correct element or attribute?) – What makes sense to test using something other than a BREX data module? • Testing values of an element or attribute where complex associations or conditions need to be evaluated are the domain of executable programs with JAVA or .NET like capabilities • You can’t test the data module filename of a data module against the <dmCode> element within the <identAndStatusSection> of a data module using a BREX data module – however a .NET or JAVA application can
  • 14. 14 It’s about being practical ○ Business Rules are about evaluating what’s important ○ Don’t just go with your first blush answer, think about the overall ramifications across all schemas and publications ○ You may need to document a business rule multiple times for different publications/information sets ○ Success is in knowing how much of the BREX data module your project should try to implement and how much should be deferred to another method (Java or .Net)
  • 15. 15 It’s about being practical (cont’d) ○ Communicate with the project team as much as is practical and use the BREX data module to enforce the important points ○ Communicating also includes documenting decisions so everyone knows where to get an answer and how to work ○ Avoid the mad dash to implement. Think about how you want to do business and use those features of the specification that make sense using a phased approach (don’t try to do it all in one lump)
  • 16. 16 Example Rule Checks <structureObjectRule> <objectPath allowedObjectFlag="1">/dmodule/identAndStatusSection/dmAddress/ dmIdent/dmCode[attribute::modelIdentCode="SB2000"]</objectPath> <objectUse>The project requires the use of the model identification code "SB2000" for all data modules.</objectUse> </structureObjectRule> <structureObjectRule> <objectPath allowedObjectFlag="1">/dmodule/identAndStatusSection/dmStatus/qualityAssurance/ firstVerification/@verificationType</objectPath> <objectUse>You must use the verificationType attribute.</objectUse> </structureObjectRule> <structureObjectRule> <objectPath allowedObjectFlag="1">/dmodule/content/description/levelledPara/title</objectPath> <objectUse>You must include a &lt;title&gt; element in the first use of a &lt;levelledPara&gt;.</objectUse> </structureObjectRule> <structureObjectRule> <objectPath allowedObjectFlag="0">/dmodule/content/description/levelledPara/levelledPara/title</objectPath> <objectUse>You cannot use an indented title at the second level of indenture.</objectUse> </structureObjectRule>
  • 17. 17 From the BREX in the sky… <structureObjectRule> <objectPath allowedObjectFlag="2">//@securityClassification</objectPath> <objectUse>Attribute securityClassification - Security classification</objectUse> <objectValue valueForm="single" valueAllowed="01"/> <objectValue valueForm="single" valueAllowed="02"/> <objectValue valueForm="single" valueAllowed="03"/> <objectValue valueForm="single" valueAllowed="04"/> <objectValue valueForm="single" valueAllowed="05"/> <objectValue valueForm="single" valueAllowed="06"/> <objectValue valueForm="single" valueAllowed="07"/> <objectValue valueForm="single" valueAllowed="08"/> <objectValue valueForm="single" valueAllowed="09"/> <!-- Values within range 51~99 can be allocated and defined by projects or organizations --> <objectValue valueForm="range" valueAllowed="51~99" valueTailoring="restrictable"/> </structureObjectRule> Based on the concepts associated with “Layered Business Rules”, what’s wrong with this picture? Remember, you can’t update the BREX in the sky, you can only update a local/project BREX Data Module.
  • 18. 18 Thank you for your time and I hope you gained extra understanding of how to use and implement BREX.