Business logic is typically dense and complex. With no-code and low-code development tools, users can easily evaluate, implement and refine business requirements.
Complex business decisions typically contain so many conditions and variations that it is hard—and nearly impossible—for human beings to assess their completeness, as well as any conflicts between the conditions.
In other words, many business requirements quickly overwhelm the limits of human information processing capacity. It is thus very important for no-code and low-code development tools to provide support for human brain limitations.
To help business users, Corticon and Corticon.js provide multiple no-code tools in the form of logical loop analysis, rule completeness and conflict analysis.
Let's get into one of these tools—specifically, conflicts checker—so that you can get a good feel for the tremendous value they provide.
Detecting Business Logic Conflicts
Conflicts are conditions that contradict each other.
We are going to use a simplified version of a vehicle insurance cost calculation decision service to understand what conflicts are. We will see how they are easily detected and resolved in Corticon.
Our use case is the following: The business user is tasked with offering a promotion for young drivers 20 to 22 who do not drive much per day (less than), but they need to have at least 2 years of driving experience.
The user enters the new conditions and the special offer cost as an additional column (column 12) in the rule sheet, like this:
When using the “Conflict Checker” tool, Corticon reports 1 conflict and highlights the conditions in the various columns that are in conflict.
Of course, with typical business logic the rule sheet may contain many more columns and the conflicting columns may not be visible in a single screen. To make the life of a business analyst easier, Corticon provides another tool: “Enable Conflict Filter." When using it, the user can see just the conflicts in proper cognitive context; in our case, we see columns 2 and 3 like this:
Now it becomes easier to understand the conflicting conditions.
How to Resolve Conflicts
The only thing the user needs to do is decide which rule takes precedence over the other (we call that “Overrides”) by using a drop-down selection in the corresponding column. In our case, we decide that the special offer takes precedence over the more general offer, like this:
I have decomposed all these steps in more visual details here.
But the main point is that in just a few minutes, business users can:
- Assess if there are conflicts.
- Fix them in just a few clicks with no programming at all.
- Validate the correctness and completeness of the business logic, which in traditional programming languages is extremely hard to do and very time consuming.
The user can do all of these without necessarily having a background or education in computer science, and without having to manually review all other conditions. This tool is essential to get rules right, with high productivity. This is one of the reasons why customers report up to 90% productivity improvements in business logic development.
Conclusion
Customers report that at times, these conflicts come from the requirements document. With traditional approaches, conflicts often go unnoticed and they usually remain undetected even after the implementation is completed. When using Corticon, these conflicts can be detected very early on.
The no-code/low-code tools in Corticon are also very beneficial to users maintaining existing rules, as rules typically contain hundreds or even thousands of conditions. And these tools become even more valuable when the users changing the rules are not the original authors.
Thierry Ciot
Thierry Ciot is a Software Architect on the Corticon Business Rule Management System. Ciot has gained broad experience in the development of products ranging from development tools to production monitoring systems. He is now focusing on bringing Business Rule Management to Javascript and in particular to the serverless world where Corticon will shine. He holds two patents in the memory management space.