Tag: Strategy

Guest Post : Object-Oriented Design Patterns and Oracle Policy Automation #2

Guest Post : Object-Oriented Design Patterns and Oracle Policy Automation #2

In a previous post by our guest writer Dr Jason Sender, he investigated improvements in Oracle Policy Automation rules by applying some of the principles of refactoring, and then he began to discuss Object-Oriented Design Patterns and Oracle Policy Automation, and their application in real-world contexts.

As before, this third article draws on the work and publications of Martin Fowler, which we discussed in the previous post, those of Joshua Kerievsky from his highly regarded book “Refactoring to Patterns”, and the ground-breaking work on design patterns called “Design Patterns: Elements of Reusable Object-Oriented Software”, which had four authors known collectively as the Gang of Four (GoF).

Before studying some further examples of patterns and their application to Oracle Policy Automation, it is probably wise to step back and take a broad view of the context. Computer science is often defined as dealing in abstraction, and software engineering as managing complexity, and the connection is that only by considering different parts of programs and systems as abstract concepts are we better able to manage complexity.

Object-Oriented Design Patterns and Oracle Policy Automation in Context

To put it in terms more related to our daily jobs, Oracle Policy Automation is often integrated with other systems that the Oracle Policy Automation developer does not need to understand, and can think of in abstract terms. A good example would be the Siebel CRM or Oracle Service Cloud database that Oracle Policy Automation may interact with, but about which the Oracle Policy Automation developer may not need to know anything – beyond understanding the available attributes for mapping and having a brief overview of the context. Abstraction is about ignoring irrelevant details, and this is often accomplished by what is a theme running through many design patterns, which is to: “encapsulate the concept that varies” (GoF, p. 54).

We often obtain abstraction in Oracle Policy Automation by using indirection (interposing an intermediate attribute) to encapsulate the attribute that varies. This allows us to “Program to an interface, not an implementation“, as the GoF (p. 18) term it, the rationale for which is that the implementation can be changed if other parts of the program only depend on the interface.

If you come, like some of us here on the OPA Hub Website, from a CRM background, you will be familiar with the concept whereby access to a CRM Object is provided through an interface, and the interface does not change even if the Object undergoes modifications (such as when using the GetMetadata Operation of the Oracle Policy Automation Connector Framework).

Although design patterns and refactoring techniques should serve the goals of reduced duplication, reduced complexity, and increased clarity, these goals can be in conflict, not just with each other, but with certain Oracle Policy Automation-specific goals. Take for example one of the stand-out benefits of Oracle Policy Automation: Policy Isomorphism. This means having the same form (i.e., you can copy and paste legislation or other source material directly into Microsoft Word, and base your rules on this and compare them side-by-side) and this is in tension with the concept of intermediate attributes (adding more attributes to increase clarity).

Object-Oriented Design Patterns and Oracle Policy Automation : Strategy and Template Patterns

With that in mind we return to another example of how Object-Oriented Design patterns can be applied to Oracle Policy Automation. The following extended example will be given to demonstrate how useful the Strategy and Template Method design patterns (which we adapt from the GoF book) could be in reducing the number of tables and increasing the flexibility of calculations. We show this extended example to demonstrate the size of the reduction in rules from applying these design patterns to Oracle Policy Automation. We start with an information collection screen and associated Boolean rules to derive values from the drop down list items:

Object-Oriented Design Patterns and Oracle Policy Automation 1

We then look at the top level goals for determining the total profit of the company, which is our main goal:

Object-Oriented Design Patterns and Oracle Policy Automation

These are then derived from three very similar tables of calculations, which are listed in succession below:

Object-Oriented Design Patterns and Oracle Policy Automation 3

Object-Oriented Design Patterns and Oracle Policy Automation 4

Object-Oriented Design Patterns and Oracle Policy Automation 5

Object-Oriented Design Patterns and Oracle Policy Automation : Implementing the Design Pattern

We can now alter this to implement our design pattern. We first create a main rule to determine the total profit:

Object-Oriented Design Patterns and Oracle Policy Automation 6

This is the Template Method pattern since it delegates a part of the algorithm – the tax factor, a newly created attribute. Then, we employ the Strategy pattern to effectively split up the tax factor into one of three algorithms (in effect, we are treating the tax factor as an algorithm and then applying Strategy to it). We do this by parameterising, based on type of company, using a feature called Apply Sheet that avoids multiply proven attributes by letting the parameter determine which Excel Worksheet applies:

Object-Oriented Design Patterns and Oracle Policy Automation 7

Then each of the subsequent tabs has a small table. As an example, here is the mining sheet. The others have identical structure and adjusted values for the tax factor.

For the Strategy and Template Method patterns, applying these design patterns has transformed our example rulebase into something much more easily extensible.

Object-Oriented Design Patterns and Oracle Policy Automation : Improved Maintenance and Clarity

If we were to create another sector (e.g., oil), it would be very easy to add on another sheet in the Excel Workbook and add it to the Apply Sheet. In fact, we could easily add another 20 sectors, whereas there would be a lot of time-consuming ‘find and replace’ work to do in the original, and we would have ended up with dozens of pages of rules. Moreover, the original algorithm had a lot of code duplication, as the same Boolean attributes were repeated in row after row in table after table.

Furthermore, if we had needed to add or remove conditions from the tables it would have taken extensive work in order to verify that each and every table was updated correctly. In the reformed algorithm, the conditions were written only once and these are easily changeable. And, we were able to eliminate three (possibly confusing) and unnecessary sub-totals relating to each of the company types. The unvarying part of the algorithm (the total revenue – the total cost) is now written once, rather than 15 times, and so it is easily changeable.

Finally, our new algorithm mentions only the tax factor. This means that if all tax rates were harmonised, a single tax rate declared, or a new formula implemented that did not depend on the company type, since we have encapsulated the part of the algorithm that varies, we could just delete the Excel table and introduce a new table for the tax factor that did not mention the type of company. This would not have been so easy to do with the original algorithm.

Once again, even from a very simple set of examples, it should be clear that Oracle Policy Automation rules will benefit from the targeted application of principles from programming – in this case, the Strategy and Template Method design patterns. For more information about the ideas discussed in this article, Dr Sender can be reached using his LinkedIn profile, at the end of this article.

Object-Oriented Design Patterns and Oracle Policy Automation : Going Further

The OPA Hub and Dr Sender are currently working towards the launch of advanced training based on his work. If you are interested, please take a moment to answer the 1 question survey below (if you have not already registered for the OPA Hub you can do that here before you answer). Thank you!

What kind of advanced OPA training would you be interested in attending?
Oracle’s Siebel CRM Roadshow – Canberra (with OPA Strategy Session)

Oracle’s Siebel CRM Roadshow – Canberra (with OPA Strategy Session)

March 7

09:30 a.m. – 10:00 a.m.

• Refreshments, coffees and registration

10:00 a.m. – 10:20 a.m.

• George Jacob (Group Vice President CRM Applications, Oracle)
• General introductions, goals for today’s event.

10:20 a.m. – 10:50 a.m.

Siebel CRM Executive Strategy Update
• George Jacob (Group Vice President CRM Applications, Oracle)
• Strategy update, thematic Siebel CRM Transformation (Vision, Innovation, Value)

10:50 a.m. – 11:00 a.m.


11:00 a.m. – 12:00 p.m.

Siebel CRM Innovation
• George Jacob (Group Vice President CRM Applications, Oracle)
• Latest features from Innovation Pack 2016 and 2017
• Innovation Pack 2017, Siebel Composer, Workspaces, Parallel Development, Test Automation

12:00 p.m. – 1:00 p.m.

• Grab lunch, but don’t go anywhere; the meeting goes on

1:00 p.m. – 1:30 p.m.

Case Study: DSS – Siebel Open UI
• Department of Social Services, Australia Government
• Siebel Open UI Innovation

1:30 p.m. – 2:00 p.m.

Increase Agility with Oracle Policy Automation
• Davin Fifield (Vice President Software Development, Oracle)
• OPA Strategy and Roadmap Update

2:00 p.m. – 2:10 p.m.


2:10 p.m. – 2:45 p.m.

Siebel Case Management for Public Sector
• Vi Quach (Master Principal Sales Consultant, Oracle)
• Siebel Case Management on Oracle Cloud

2:45 p.m. – 3:30 p.m.

Siebel CRM and Cloud
• Tiffany Blair (Senior Principal Product Manager Public Sector, Oracle)
• Augmenting Siebel CRM with Cloud CX Suite

3:30 p.m. – 5:00 p.m.

1:1 Meetings
Informal, coordinated 1:1 networking discussions with the Siebel CRM product team to respond to topics ranging from IP 2017 planning, delivery models, Open UI, CX market trends, Oracle’s CX strategy, the future for Siebel CRM, and the Siebel product roadmap and/or the journey to the cloud.

Report from CON7138 : Oracle Policy Automation : Overview and Roadmap

Report from CON7138 : Oracle Policy Automation : Overview and Roadmap

Report from CON7138 : Oracle Policy Automation : Overview and Roadmap

There now follows a brief report from the above session, live at Oracle OpenWorld 2016. Obviously in this session, my main goal is to find out the direction of product development specifically user experience, rule editing and integration. It will also be reassuring if we hear of continued effort to make the product available on public and private cloud.

We should also be treated to an inspiring customer success story from the UK : The Prince’s Trust.

Policy Automation Overview and Strategy

All organisations of any size have acres of policies. They may be external rather than internal and yet everything you do is driven or affected by them.

This is a great slide that shows how pervasive policy is, and how OPA can help you interact with your end customer in so many ways – and the customer expects simple and correct advice. The organisation expects to be able to audit and manage the policies to be agile when rules change.

We tend to forget how many categories of stakeholder can have their world positively impacted by OPA.

The consistency of the response and the auditing capability builds trust.

Nice summary of the OPA family members.

It should be noted that the speaker mentioned the integration with Siebel as a connector. Interesting or just a slip of the tongue.

Today OPA is sold as part of the Servide Cloud Suite. Today the majority of the use cases are in the service arena but also in sales. However it can be integrated into any application.

Recent Enhancements

A really important ability introduced in May: save the interview at checkpoints, even start the interview on one channel and finish it on another.

Statistics have been improved to better understand the usages.

Free navigation and policy cousins to facilitate sharing of assets. Here are just some of the enhancements that have been added over the course of the last year or so.

Future Direction

There are four areas of focus. Making the UX as good as possible. Making better management tools. Improving integrations and making OPA available everywhere.

Notice the above picture looks just like Siebel Open UI : because it is a more dynamic and responsive theme for the interview compare to what OPA users are used to today . I see more controls too : toggles, sliders, password fields and more, such as a focus on making the mobile experience the same. Basically I would hope for a good JavaScript framework, maybe Oracle Jet?

There was a video demo and I came away with the impression of a much better UI.

Notice the slider : that will make simulations more intuitive. I also saw grouped controls and dynamic calculated fields.

Sync with Service Cloud . Good for Field Service.

And perhaps the most revolutionary : browser based rule editing and testing! Great for very agile edge cases.

The other news was that the Batch Automation will get a REST API.

Internet of things : I told you ! OPA has a sweet spot for machine data,  being used to analyse and act on the telematics for Service Requests.

Case Study

Now we have a great case study into the work of the Princes Trust. Being a UK citizen I am familiar with the Trust but the audience appreciated the video and inspires us to learn more of their youth programmes aims at getting them into work, education or training.

Approaching the anniversary of 40 years of the Trust, lifting the hood to think about how to prepare the next 40 years, there was a chance for the Trust look at how they service those who want to interact with them. This transformation process found weaknesses in how they do this, and birthed a roadmap that redesigned the customer journey and processes. This three phase program saw part one go live in November 2016. The platform includes OPA, OBI EE, and Service Cloud and Web Center.

Observe how many high business change areas are leveraging OPA for transformation!

OPA is increased quality, raised quality and improved speed of response. The main lesson : get the integrations sorted up front. Second lesson : get good training and clearly define roles (Woohoo!) What a success story. Hats off to Monad and Enigen.

Great session and proof of the continued investment in Oracle Policy Automation.

Logo by Southpaw Projects LLC