This afternoon I had a discussion with a friend. He said “Our business rules in the application do not change often. In our application, we do not want to change the rules and apply them on-the-fly”.
Fair enough – not all applications require that functionality, but this is only the final benefit your application gets from using a Business Rules Management (BRM) platform. Here, I am going to show some of the other advantages of using a BRM platform, and demonstrate what’s in it for your team, your product, and ultimately the business.
For the sake of simplicity and with respect to privacy, I shall name that software as AppX.
1. Business logic visibility
In AppX, there are thousands of business calculations and scenarios that all are embedded into different forms, layers and services of the application. Somehow they magically work! No one knows where those calculations are actually happening. What is the actual “business logic” behind those calculations? And, if they want to apply a change to a rule, where should those changes go?
Obviously, “Visibility” of business knowledge is one of the key benefits of using a BRM platform. In the case of AppX, it would be easier to know what those rules are for and what the business logic is behind them. As a matter of fact, the company could save thousands of dollars per month, not only by having a BRM in place, but just because of the “visibility” benefit by itself.
2. Business logic testability
In project AppX, no developer dared to refactor those areas because they are neither isolated nor easily testable! To test those areas, an end-to-end regression test is required, because it is not only testing that area for a particular change, but also because a validation of the full business scenario is required to understand the implications of the change on the application and different components.
Here again, BRM platforms could help by letting developers write tests around isolated known rules, as well as the rules interactions with other rules in a full business scenario.
3. Business logic reusability and enforcement
This AppX is now growing and product management decides to support other devices as well as having an open API for external users. Now it is a disaster! The unknown logic and corresponding mysterious implementations have to be duplicated! Or in some cases dismissed!
Well, in the case of having a BRM platform, validations, calculations, flows and logic could be reused across different projects, physical layers and components. You could reuse the calculation and flow and enforce those validation rules in different parts of the application. Execute them separately or combine them as you like. Web application, API, cloud, desktop, mobile… it doesn’t matter when you are using a BRM platform.
A final word
I know that someone may say all those benefits can be achieved without a BRM with a proper design. I agree with that, but first of all, applications mature over time – a good design is good for today, but may not be a good design in 2 weeks. (Here is the change coming!).
Secondly, when we (as developers) are coding, we can put everything in the code (and frankly it is easier) but sometimes even we put some stuff in a file that can be configured later without needing to change the code. Using a BRM platform is like this – it is another level of maturity.
And thirdly, when we have a systematic approach to a problem (say it is a rule based approach), although we can make it in the code (yes everything can be coded, that is what programming is about), but using some tools and frameworks may help us to get the job done faster and with better quality (when you consider the timeline of project).
Some people argue about the cost of the tools, but if they honestly sit and calculate the amount of time the team is spending to fight all those challenges and get them magically working, buying a proper tool would be cheaper in the long run, and the product will be healthier and in better shape.
Last updated May 5th, 2017 at 05:43 pm, Published January 22nd, 2013 at 05:43 pm