Deadly Sin No. 4: Failing to recognize the impact of rule definition on system performance and maintainability

Written by John Pettit on May 23rd, 2012

At Adaptik, we live and breathe policy administration. We’ve invested more than 60,000 person days developing our PolicyWriter solution. We know how to do policy administration right, but we also know what can go wrong. Here’s the fourth of what we call the Seven Deadly Sins of Policy Administration. Be sure to check back – the last three are coming soon.

I’ve been dealing with configurable systems since their inception. And in those years, it’s become very clear that consideration needs to be given up front to the classes of rules that are required to support the uniquely complex demands of policy administration.

Early on, configurable systems simply allowed users to create Boolean statements: If .., Then …, Else … . But it soon became clear that many processing scenarios required very complex rule definitions for this construct. In practice, these systems performed very poorly, and became nearly as difficult to maintain, test and change as the legacy systems they were intended to replace.

The next evolution of configurable systems brought scripting languages and CASE tools, which relied on the premise that performance could only be improved by converting user input into fast-processing code. While these systems performed better than their earlier counterparts, the code was not always optimized for each processing situation, and required developer skills – and time – to ensure the integrity of the applications. Again, the base concept of configuration was lost.

At Adaptik, experience has taught us that multiple rule types must be used alone or in combination to provide high performance and maintainable support for complex requirements. A policy administration platform must accommodate different types of rule processing situations with different rule constructs, potentially including special processing.

Of course, configuring rules requires the same higher-level thought as coding. If a solution only supports a single rule type, it’s likely to perform poorly in the real world as it forces every situation into the same paradigm. The complex requirements of a policy administration system necessitate multiple rule mechanisms for multiple situations.

That’s why Adaptik’s PolicyWriter solution was built with every eventuality in mind. It supports broadly specified rules that need to be applied and evaluated quickly, as well as fine-grained rules that need to allow for a high degree of specificity.

As always, it’s flexibility. Defined.