Rules Engines – Power to the Users!

I was reading Business Rules the Software Reuse Debate by Rajgo.  I bow to his technical knowledge which is far superior to mine, but I want to take the business end of his argument and see if I can violently agree with him.

In my world, business rules enable loose coupling of enterprise applications and services.  So a typical enterprise application might be the CRM system and a typical service (in a retail bank for example) might be to select a customer using the customer reference and return the portfolio of products held by that customer with the bank.

A number of services can be linked to form a business process, but a business process must follow rules.  These rules can be hard-coded or configurable by the user community using some sort of rules engine.

So on receiving the customer’s portfolio we might want to know the customer’s total exposure and if this breaches a pre-determined parameter, we might want to enquire which accounts have borrowing facilities and then subsequently cancel them.  This requires new services which access different systems, the core banking systems for example.

However, on the way various calculations need to be done and various applications (or databases) will need updating.

Doing this in hard code is fine as a one-off, but this constrains the business who need the flexibility to change business processes frequently.  Sometimes this is just a parameter change, sometimes it demands a more complex decision change.  Either way I argue that the business should be in control of that change and that means a rules engine.

The rules engine needs to be presented to users in a simple way that they understand which points to a flowchart style interface.  This is the way most business users currently capture their processes.

 Flowchart Interface

So give the users the power of the process, and leave the IT function to create the services?  Yes……er except when the business users want to do something new and there is no service in existence to call, the business users have to ask the IT function to create those services.  This is fine so long as the IT function can respond in a reasonable time.

However, if you read my recent post following Joe McKendrick’s concept of “Rogue” IT, I would argue that business users should be given some tools that enable them to create their own services without resorting to writing code.

The theme I am only starting to scratch the surface of here, is that rules engines enable a bottom up approach.  Whereas so many IT projects take the top down view that is high risk, high cost and takes ages to deliver, the alternative is to take a local approach and solve problems individually.

This is best done in a coordinated way so local teams all over the organisation are not repeating each other’s work. It is also best done using some standard tools (not random amateur VB programmers, or advanced Excel users).  Thought also needs to be given to change control, security and audit requirements, all of which need central involvement.

Its a scary thought for most IT people that business users should be given too much control.  But give them no control and not enough support and you will find maverick behaviour will creep in anyway causing a much worse state of affairs.

An organisation I know quite well is currently undergoing a basic CRM system upgrade.  As a courtesy, the IT project manager asked the business users for any urgent changes they needed to see if they could be incorporated into the project and was stunned to receive a list of 250 requirements!

Take a bottom up approach and allow some maverick behaviour – but keep central control especially of your mission critical processes!

One Response to “Rules Engines – Power to the Users!”

  1. Rajgo Says:

    Hi Alastair,

    Welcome to the blogosphere !

    I strongly believe that Process
    Automation != Decision Automation
    . Employing
    a Business Rules Engine
    and externalizing the (volatile) business rules
    provides visibility
    into the business
    policies and additionally injects agility into the business
    system.

Leave a Reply