« May 2005 | Main | July 2005 »

June 10, 2005

It's Too Good to be True

A short time ago one of our Knowledge Engineers went to a Business Rule Engine software vendor training course with IT People and Business People from one our clients.

Surprise! The client's business people loved the rule engine software (BRE #1) because they could write rules in an English-like language. The client's IT people didn't like it as much because they could write rules in an English-like language. It had something to do with, uh, you know, hey, if we actually used this thing we wouldn't need some of our IT business analysts because the tool is so good that the Subject Matter Experts / Domain Experts could author the rules themselves without IT Business Analysts... And if we ever figured how to really use this engine, we may not need some of our IT Programmers either... (See: "the usual suspects")

So, the client decided to use another BRE software package (BRE #2) that:
  • Required the larger IT infrastructure investment and ongoing IT support that this client was used to

  • Didn't have as "English-like" a language. Because it was more like a typical "programming language", it would be eaiser to the IT People to learn

  • The rules were written in a "Java-like" language that IT People understood better
BRE #2 tool enabled Business People to write their own rules just like BRE #1. It opened up some of their simpler rules so they could be authored by Business People instead of IT Programmers. The more complex rules will still require IT assistance. The Business People believe they will be able to write most of the rules themselves (without IT) using this powerful tool. The IT People see it diferently - they believe that the most of the rules will require some IT support, or that the Business People will call and ask IT to write the rules for them. Time will tell how this plays out.

Now both the Business and IT are happy. BRE tool vendor #2 is happy. BRE tool vendor #1 is not - They lost this sale because their tool was too good to be true.

What's wrong with Business Rule Engines and Expert Systems?

One of the biggest obstacles we face in the Business Rule Management industry is that rule engine/expert system software tools are "that good".

  • Some companies just can't believe all the "claims" that we (the BR software vendors and BR consulting firms) make, so they go away and don't buy. They think our "claims" are "hype".

  • Some companies do believe all the claims and immediately see the power and value that Business Rule Engines and Expert Systems can add. Then the IT side realizes that "business people writing rules" really means "IT people don't have to". So all too often some IT People raise technology issues and concerns such as Top 10 Reasons Why We Should Not Manage Business Rules or use Business Rule Engines that slow down or derail the whole effort.

  • Some companies that have figured out how to "do rules right" and really leverage BRE/ES technology get so much value out of it that they just don't want to talk about it. Some clients don't want to stake a "claim" - - they prefer to stay under the radar and keep firing away (no pun intended) at their competition. If you had a secret competitive edge, would you tell your competition? (See: "Expert systems didn't really go away. They went undercover.")

So even though there are lots of BRE software vendors and a few visionary niche methodology/consulting vendors that Gartner calls "Satellite Methodology Vendors" like BIZRULES.COM (shameless plug!), one of the challenges we face is that our solutions and technologies are "so good" that clients won't tell, and potential clients won't believe.

For 20 years, people in this industry have been trying to solve this problem. I wish I knew the answer.

Top 10 Reasons Why We Should Not Manage Business Rules or use Business Rule Engines

Here is a list of what I call "the usual suspects" - - These are the quotes that you will hear many IT People say when someone proposes the idea of using a rule engine instead of hard-coding or hard-wiring rules.

The Proposer sees the rule engine as a way to increase IT productivity, improve time to market, and reduce IT costs.

The "Old IT" People see the rule engine as a threat because it means they won't have to write as much code. Less code to write means less money to make.

The "New IT" People see the rule engine as an opportunity because it means they won't have to write as much code. This will give them more time to do more higher value-added work.

So listen up next time someone suggests using a rule engine in your company: See if you can tell from the response and feedback who gets the "New IT" of the 21st Century, and who is still stuck in the "Old IT" of the 20th Century?

10. "This is different." - - I agree, yes, traditional procedural applications are quite different from declarative rule-based applications

9. "This is not how we build traditional procedural-IT systems around here."

8. "This is not the way we hard-code or "hard-wire" our rules in our systems."

7. "If we use a rule engine, we may not need as many IT business analysts." - - This is a fact. Subject Matter Experts and other Business People may indeed be able to author the rules themselves, without IT Business Analysts

6. "And if we really learn how use this rule engine well, we may not need as many IT Programmers either..." - - This is a fact

7. It's not object oriented." - - This is wrong on multiple levels. First of all, object oriented programming systems evolved from A.I. and expert systems research labs. The earliest inference engines and expert systems were actually among the first (if not the first) computer programs that were truly object oriented. Remember SmallTalk?

6. "The inference engine will be too slow." - - This is wrong. This statement may be made by somebody who has experience working on expert system projects back in 1985. Everything was slow back then. Inferencing is a lot like thinking - It's hard work! Remember, PC's were running at 10 or 20 MHz back then. Inference engines run fine on my 3 GHZ PC in 2005.

5. "It'll never work." - - Some people just don't get it. They cannot deal with change. Lots of very smart people say things like that, and they turn out to be dead wrong. See Famous Quotes

4. "We tried that years ago, but it was too slow." - - See #6

3. "This rule engine adds one more layer for our programs to deal with." - - Technically, you may be right. However, did you stop to consider how many layers of legacy rule code you will be able to get rid of once the way you throw out all the spaghetti-code rules logic and put the rules in a rulebase (aka rule engine) instead? Getting rid of all that "hard-wiring" is probably going to eliminate about 23.5 layers of junk. So, yes, I agree with you on this one: Using the rule engine will add "one more layer". Let's call it the "business logic layer" or the "knowledge layer"

2. "Our rules are too complex for a rule engine." - - Every time I hear this claim, my jaw drops, then I go speechless. After a few seconds, I will explain the fact that the more complex your business rules are, the more you need a rule engine. This is usually the right moment to bring up the RETE algorithm and discuss how it scales and handles more rules without degrading.

1. "We'll just write our own rule engine." - - This is usually the last gasp. Once all the claims above are debated and proven false, this is the one that seems to come up last. At this point, even the IT People realize the way to go is a rule engine. But the first thought is "He's right, we need one... We need a rule engine... We need to build a rule engine." Right.... Let's see. How about a database analogy? What you are saying is that you should build your own rule engine, the same way that you should build your own relational database management system instead of buying Oracle or SQL Server or DB2. OK. I see your point....

Well, if you're that smart, you may be better off writing your own programming language as well. VB is too slow. And Java just adds one more layer.

Locations of visitors to this page