There are many definition of business rules and the one that I really like is that business rules are
Criterion used to:
- Guide conduct or actions.
- Shape judgments of behavior.
- Make decisions.
Having this definition in mind, let’s see what challenges a traditional business rules management system (BRMS) will face when you are trying to scale. By “scaling” we do not mean the execution time in this context. I will elaborate further on that in this article.
Traditional Approach – Business Rules Oriented
In any traditional Business Rules Management System (BRMS) there is an authoring environment (i.e., a rule editor), that allows users start writing business rules. The interface presents a business rule in a few different ways, such as if-then-else statements, graphical tree, etc. You can then do things like group, tag, and label these rules for one good reason – to be able to find them. That’s because when your rule systems grow to hundreds of thousands of rules, you will feel the pain.
- You need to find and group the business rules to be able to add them in a set (i.e. ruleset) for execution.
- You need to be able to understand if any business rules are duplicated, or if you already have a variation of a particular rule
- You need to be able to understand the potential impact if you decide to change a business rule
With this traditional approach, the reusable part of the system are the actual business rules that are grouped and organized around your data field, data structure (i.e. table, type, class etc.). Which is also very limiting and confusing when you are going to share the data across multiple scenarios which happen to have different set of rules and constraints.
Big Bucket of Rules
As a first impression, reusable business rules sound appealing. However, this conveniently innocent idea will introduce many challenges down the track. In a real system, we are talking about tens, if not hundreds of thousands of business rules all collaborating with each other to deliver value and determine an outcome.
Finding one business rule in that repository is like finding needle in a haystack! No matter how well you tag, label, group, or name each one, it is going to be hard (even nearly impossible) finding them in the repository, let alone changing a couple of them and determining the impact.
Why is this the case? Well, remember the idea of reusable business rules that we were advocating? Now you need to ensure that any change makes sense for all the other parts on which the business rules rely.
Individual business rules are very important, but often so small and granular that their reusability is of little or no value!
The picture shown above is pretty much akin to your enterprise business rules repository. Where is the piece you wanted? You also attempted to label and tag them to be found more easily when required.
Alternative – Business Decisions Oriented
Although individual business rules are important, what is more important is their ability to collaborate in order to achieve an outcome. We are more interested in the outcome – that’s why we tried to group the business rules together in the first place to achieve a desired, relevant outcome that makes business sense.
The outcomes we are after are tightly coupled to a set of Business Decisions. Consider the challenge you are trying to tackle this perspective – what business decisions are you trying to make?
When you think about it that way, your life becomes easier, simply because this question will elevate the granularity of the rules. Don’t worry about the individual business rules too soon. You need to manage the decisions rather than the business rules. The business decision becomes the module of reusability, regardless of the underlying implementation.
These business decisions are just not another types of rule sets! They are fundamentally different from mindset, approach, modeling, etc. We are going to examine business decisions in future posts in more detail.
If you don’t think about “business rules” in the context of the problem you are trying to solve and address, then you will not need many of things that traditional Business Rules Management Systems (BRMS) offer in the first place e.g. Finding an orphan business rule. Traditional business rules management systems (BRMS) need those capabilities because the approach to rules are so granular and hard to manage. Think of business decisions next time and you will not find yourself in what we refer to as a ‘Big Bucket of Rules’ problem!
Business Decisions approach has so many direct and indirect benefits like transparency of business decisions, scalability of business rules, ease of reusability and etc. These are all promises business rules management systems were not able to deliver because of their approach to rules. We will talk about the benefits of Business Decisions approach in the next posts.
** picture of the LEGO from https://www.flickr.com/photos/alanar/4444710186/in/photostream/