« 100 Rules for NASA Project Managers | Main | Writing Rules using Haley's new Hosted Web Service »

What rules belong in the BRE and what rules should be hard-coded? (FAQ #2)

Here's a great way to decide which rules belong in the rule engine and which rules could be hard-coded. The idea is that rules that you have no control over, such as compliance rules, must be rule-based so you can react quickly and implement them as soon these rules are changed. When a regulating authority tells you when the new rules become effective, you have no control whatsoever, and a rule engine enables you to change fast.

Rules that you control, where you can take your time and decide when the rules shall become effective, can be hard-coded if so desired. There still may be benefits to rule-basing these rules, but at least you can hard-code them if necessary.

Rules that should be in the BRE:

  • Business Rules
  • External rules
  • Governing rules (Regulatory rules / Legislative rules / Compliance rules / etc.)
  • Rules that you do not control
  • Rules that change often (Promotion rules / etc.)
  • Industry rules
  • Market rules (Competitor rules / Pricing rules / etc.)
  • Environmental rules (Seasonality rules / Weather rules / etc. )

Rules that could be hard-coded

  • System Rules
  • Internal rules
  • Rules that you control
  • Rules that never or rarely change

Idea credit to Paul Ulshafer. See PowerPoint slide of this idea.



TrackBack URL for this entry:


Maybe this distinction can be refined a even a bit more? Obviously a BRMS does not make a DBMS obsolete. The question seems to be, what is 'data' and what is 'knowledge'. A list of users, for example, seems a clear candidate for the database. However, managing users through a BRMS can be very convenient given the right system. In addition, if users are linked to user profiles, it may be less straight-forward to decide what goes in the database, and what goes in the rules system. Do you have any ideas on this?

I hope this chart helps management understand why most if not all business rules belong in the BRE: Everything changes. And it's changing faster and faster. Companies need rule engines just to keep up.

Experience from customers is that they often regret hard coding rules when they could have put them in the BRE and rarely regret the opposite! Just becuase you think they won't change, does not mean they won't.

I would have thought that the correct answer would be "all rules belong in the BRE"!

I think in real world the answer to a question whether some rules are suitable for putting into BRE often depends on the cost of bringing input data into the rules engine and processing the results. In some cases rules are so simple and static and the BRE is so far from data that it just does not make any sense.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Locations of visitors to this page