There are certain types of software applications that capture and automate the rules with which a business operates. Such rules normally define the way with which an organization interacts with customer or carries out internal business processes. These rules are termed business rules and cover:
Clearly the capture and automation of business / process rules can deliver significant competitive advantages to an organisation. However, the use of normal software development methods and languages (VB, C#, Java) is a very ineffective way of developing applications that contain business rules. This is because in a programming language, the logic of the business rules is inter-mixed with the overall logic of the program. This has the following drawbacks:
The technology for automating business rules, by overcoming the above drawbacks, has over the years been given many labels; "Rule Based Systems", "Knowledge Based Systems", "Expert Systems" and "Business Rules Management Systems". These technologies share the basic design concept of separating the business rules from the application that runs the rules. The business rules are maintained in a file which is run by a generic software component called the "Inference Engine" or "rules engine".
The main advantage of separating the rules from the inference engine is the ease of development and maintenance of the business rules. With user friendly rules maintenance tools, the business rules can be developed, reviewed and maintained by the domain experts without requiring IT or programming skills.
Early technologies required that rules are defined in the IF THEN format shown below:
IF Item is document
THEN ShippingMethod is RecordedMail
IF Item is NOT document AND Weight < 4 AND Value < 40
THEN ShippingMethod is Parcel
The above representation is cumbersome to capture and difficult to maintain when the number of rules increase beyond 30 or so. Furthermore, it is difficult to asses if the set of rules is incomplete or if it contains conflicting rules. Modern systems such as XpertRule support a graphical Decision tree, which is a superior representation for this category of rules and it overcomes the limitation of IF THEN rules because of its readability and ease of authoring by non-IT business people.
The other advantage of using decision trees is that the same tree representation can be used for representing rules as well as representing the flow of business processes and flow of decision making.
The benefits of capturing business rules into an application include:
The benefits of using a business rules automation technology for implementing business rules automation are:
Currently business rules automation is seen as a key enabling technology for customer service over the Web or in Contact Centres. Example of customer service applications are: