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.