Many organizations tried to solve this problem with brute force: adding more resources, running more projects, outsourcing what could not be done internally. Other (fewer) organizations saw the diminishing returns that approach produced and started evaluating the problem laterally. They determined that data definition and then process definition captured a lot of what business is about, and automating their management was of benefit, but neither included “the set of rules that determine how a business operates — that is, rules that prevent, cause, or suggest things to happen.” (“Defining Business Rules — What Are They Really? Final Report, Revision 1.3.” Business Rules Group, July 2000)
These organizations realized that just as data needed a DBMS, and process needed a BPMS, business rules need business rules management (BRM) and a system to support it: a BRMS. I’m not talking about codelike procedures; these are human-readable rules that can also be implemented as declarative statements, such as:
– A customer can place an order, only if they are 18 years or older.
–A customer can place an order on credit, only if their credit rating is “good” or “excellent.”
–The insurance coverage for a 10-year term life insurance policy must be $50,000 or higher.
– Premiums paid by direct debit must have a monthly payment frequency.
– A credit application greater than $1,000,000 must be approved by the manager of underwriting.
–An order is fulfilled, only if the ordered items are in stock.
As declarative statements, business rules need to be automated irrespective of any procedural order. All rules are applicable to the business at any time, not according to any order specified in a coded program. The structure of the rule statements must meet the two primary needs: readability and execution. The means of accomplishing this, fortunately, have already been developed and standardized for us through the OMG and its “Semantics of Business Vocabulary and BusinessRules (SBVR), Version 1.0.”. The above examples meet the requirements of this standard and would be executable by any BRMS that supports it; so now your rules are don’t have to be frozen in code.
Next time: Rules, Rules, Everywhere Rules….