My first look at Drools

I recently attended a Drools bootcamp to expand some of my understanding of what they offer and to get some hands on experience to experiment with the tools they offer.

I was actually quite impressed with what Drools as a whole offers considering the size of the team working on it.

One of the things I did not realize is that as part of the Drools “suite” of products, they have support for many of the things that are really related:

  • Obviously, a rule engine (Drools Expert)
  • A Workflow (or BPM) component (Drools Flow)
  • An event processing (or CEP and temporal reasoning) component (Drools Fusion)
  • And a Management (BRMS and BPMS) component (Drools Guvnor)

One of the things I like about this is that in one product, you can get the rules, workflow and event processing which not all products necessarily provide.

What was clear from the presentations I saw and the discussions is that the Drools team obviously is inspired by some commercial products, but they will usually take it to the next level. As an example I can think of the ILOG JRules support for event reasoning, but in the last couple of years, ILOG has stayed away from pushing that functionality, and they have not made it evolve. It has the potential of being very powerful stuff, but ILOG did nothing about it. Drools did.

I also like that Drools v5.1 will support the BPMN v2 standard for the workflow piece. Having a tool that makes it possible for workflow diagrams to be created using some of the latest standards is great.

Most of the things that is shown in the presentations or in the examples that can be downloaded is relatively technical, but if you are familiar with the Pattern matching algorithms that are behind most rule engines, the structure of the rule will be easy to understand (in other words, in JRules, if you can write IRL rules this will be easy).

The Drools team designed things in such a way that starting with one component and then trying to use other components will be relatively natural since the language constructs will be similar.

The documentation for installing, and running the examples is a bit weak. There are a lot of things required to run the examples (non technical users should abstain) but once things are setup, it is pretty easy to understand how to work with it.

I am not finished playing with drools to my liking yet, but as a first exposure to it, I am impressed.

If I have time I will post more on the topic in the near future.

On taking BPM to the Enterprise level

Today, Sandy Kemsley was giving a webinar on how to take a BPM project from a department to an Enterprise Program.

The presentation will be available soon on the BPMbasics web site at http://www.bpmbasics.com (look for BPM 106).

Projects often have intents of eventually going to a program and enterprise level, but many times, the intent just dies and nothing happens. Some of the reasons for this is that solutions are sometimes overly customized, there is no strategic vision and there is a lack of skills.

On the other hand, there are some great benefits to be expected from enterprise level BPM. Processes can be cross-departmental, it removes ad hoc parts of the processes but it also mainly provides the opportunity for an enterprise level dashboard of all processes. This last point is usually a great selling point with management.

To take the BPM from Project to Program (some highlights):

  • From initial BPM Project develop a CoE
  • Promote the project success internally
  • Develop a strategic vision
  • Consider SaaS BPM for faster deployment

Among the common pitfalls, Sandy mentions that one mistake is to try and analyze all the processes before trying to get a solution. She suggests that finding the most important categories of processes might be a better idea so that it does not get stuck in some analysis paralysis.

Another pitfall she mentions is the use of the wrong BPMS tools. She proposes that it is better in the long run to actually bite the bullet and change BPMS tools if the wrong one was used initially although there may be some costs in time and money to do so.

If implementing enterprise level BPM, you should expect some changes on the technology side (hardware, software, security, etc.) and on the business side (new processes, etc.)

One of her key takeaways is to start small but think big. (Or as Stephen Covey would say: Begin with the End in Mind). Having a vision of the destination (enterprise level BPM, Coe, etc.) is essential. The Center of Excellence should also come as early as possible.

A quote from her final thoughts:

“BPM programs don’t just happen, they have to be built”

Questions on the CoE

After the main presentation, the Q&A period had a lot of questions regarding the CoE.

When asked how to staff the Center of Excellence, Sandy responded that in most cases the people involved in a BPM project have been pulled from their operational duties. the trick is to keep some of those key people to start building the CoE and possibly have some new hires to complete the team.

She also mentioned that in a CoE most of the staff will be there only temporarily. Stays as short as 6 months, but more commonly 1 year stays are to be expected. Some of the more technical experts can be in the CoE for longer.

Concerning the size of the CoE. A CoE will typically have a core team of 4-6 people, but can be much larger depending on the size of the enterprise.

Overall an excellent presentation. Look for the recorded version on the bpmbasics.com web site.

More information about IBM BPM Blueworks

BPM Blueworks will be available to all in the second half of 2009.

As I mentioned in my previous post, the community will have a lot of resources. The resources available will be provided by IBM and the community: demos, papers, podcasts, webcasts, strategy maps, capability maps, and process templates.

The users should be able to create processes in BPMN Notation and import it in the SOA sandbox environment to see how that process will execute.

It sounds like this will provide an easy way for businesses to start using BPM since it will allow them to see what is available in the community, customize their own version, try it out and eventually provide them with something that works that can be deployed internally if they wish.

Very interesting and promising. I can’t wait to see it for myself. No links available yet though… L

[Updated: 2009-05-19]

Since my last update some links have come out:

http://www-01.ibm.com/software/solutions/smartwork/bpmblueworks/index.html

And also some posts by other bloggers:

Bruce Silver mentions it in:

http://www.brsilver.com/wordpress/2009/05/06/ibm-takes-bpa-to-the-cloud/ 

James Taylor: http://jtonedm.com/2009/05/05/dynamic-business-processes-and-ibm-blueworks/

IBM Announces IBM BPM Blueworks

IBM just announced a new community and set of tools for BPM called IBM BPM Blueworks.

They define it as:

A cloud-based set of strategy and business process tools.
BlueWorks provides business users with the collateral they need to implement business strategies within their organizations based on industry-proven business process management techniques.

It basically proposes

  • tools to model BPM in a public cloud
  • a community built around BPM
  • allows users to share best practices, insight around BPM

There is a 4 step approach:

  • learning section for learning about BPM
  • allows users to experience BPM by trying designs tools
  • allows users to load models (theyused “strategy maps”, but I am not sure what they mean by that) and share with others outside of your own company (clients, partners)
  • a community to share and communicate with a larger set of experts

Once I have more information I will update this post with details and links.

Update [2009-04-30 18h00 EDT]: The press release is now available at http://www-03.ibm.com/press/us/en/pressrelease/27392.wss although the BPM Blueworks component is not very detailed. I’m waiting for more info on that to come out soon.

Upcoming Events of Interest

  • IBM Impact 2009:
    • Dates: May 3, 2009 until May 8, 2009
    • Location: Las Vegas, Nevada
    • Web Site: http://www-01.ibm.com/software/websphere/events/impact2009/
    • Although it is focused on SOA, there are tracks that discuss:
      • Sub-Track: Dynamic Business Processes, Rules & Events
      • Sub-track: Business Process Management Enabled by Smart SOA (Process Entry Point)
  • The October Rules Fest 2009:
    • Dates: October 26, 2009 (tutorials) and October 27, 2009 until October 30, 2009
    • Location: Dallas Texas
    • Web site: http://www.octoberrulesfest.org/
    • Organised as a gathering of inventors and scientists behind the rule technologies, this conference is more technical than the Business Rules Forum
  • Business Rules Forum:
    • Dates: November 1, 2009 until November 5 2009 (probably 2 days of tutorials and 3 days of conference)
    • Location: Las Vegas, Nevada
    • Web Site: http://www.businessrulesforum.com
    • Co-located with the Enterprise Decision Management Summit, this conference is less technical than the October Rule Fest but still very interesting

Roles in BPM applied to Business Rules

Once again, my search for anything related to governance and management brought me to the bpmbasics.com website to watch the seminar Roles on BPM at http://www.bpmbasics.com/resources/academy/bpm104.jsp

My contention is that a lot of the concepts applicable to BPM are also applicable to business rules.

Here are some highlights of the webinar edited to apply to business rules:

It’s about the people. People are at the center of this, they make this possible.

The roles identified and their responsibilities:

  • CIO / CTO, Executive Team
    • If driving the initiative, account for metrics and high-level KPIs
    • If not, push for executive buy-in and high-level organizational support
    • Use high-level support as an opportunity for improvement across silos (COE, Governance)
  • Center of Excellence (COE) 
    •  Common location for skills, knowledge and an enterprise wide vision
  • Technology Advisory Board (Technology Councils or Think Tanks)
    • Facilitates standards and software adoptions across group
  • Industry experts
    • To help kick start the knowledge transfer within the organisation
  • Vendor support
    • To help make optimal use of the tools
  • Business Analyst, Business Rule Analyst
    • Gathering requirements, rules and performing analysis
  • Rule developer
    • Helps the Business Rule Analyst with implementation of the rules for execution
  • IT Architect
    • Responsible for the architecture and design of the enterprise system integration and configuration
  • System Developer
    • Responsible for low level development, integration with other system, etc.

Titles are less important than clear definitions of responsibilities.

Pay attention to the handoffs between roles.

Composing Project Teams

  • Business goal driven, but technology powered
  • Create mixed teams of technologists and business analysts
  • Involve and be involved with outside groups
  • Build teams for quick results but develop skills and roles for the long term

Creating your BPM team

  • Adapt to the specific project size and complexity
  • Leverage prior successes

This list of roles is a decent starting point. The information extrapolated from this webinar can also be cross referenced with the list of Roles from ABRD v1.2 (which seems a bit more complete) and other sources.

I guess I now have to take all that information and take it to the next level… You should expect more on this topic in the future.

BPM Center of Excellence applied to Business Rules

I have to admit, that recently I have been looking for anything that mentions rules governance and management, and although this center of excellence webinar by Sandy Kemsley is geared towards BPM, I think there are common pieces that can be learned from and applied to business rules.

To put it in context, the COE usually comes into play once successful projects have been completed and the lessons learned and management processes need to be expanded to have a more global point of view for the whole enterprise.

Here is an excerpt of what is mentioned about the Center of Excellence (COE) for BPM.

The benefits expected from a COE:

  • Knowledge transfer
  • Synergies between projects
  • Shared code and components for reusability
  • Faster deployments
  • Lower costs
  • Standardized, repeatable projects

Based on survey by Forrester, the presence of a COE increases the success of the projects as opposed to not having a COE.

The functions expected from the COE are:

  • Skills. The knowledge and skill set is too rare to maintain in each project
  • Governance. The COE becomes the point of convergence for governance for creating common principles and methodologies
  • Repository. A common place for keeping training material, best practices and techniques, common code and components
  • Community. A place to share and discuss ideas and do problem solving and to shift points of view from project or departmental to global and enterprise level

 To build the COE, here is what is required:

  • Executive sponsorship
  • Methodology and best practices independent of technology
  • Co-location of the people to improve communication

The roles required in a COE (which I adapted for Rules)

  • Chief “Business Rule” Officer
  • Steering committee
  • Project manager
  • Enterprise architect
  • Business Rules analyst
  • Business Rules developer
  • User Acceptance Testing (UAT) and Quality Assurance (QA)
  • Business Rules Administrator

The webinar then goes into some case studies which are also very informational. Definitely worth a look if you are interested in Centers of Excellence and Governance.

The webinar on BPM COE can be found at: http://www.bpmbasics.com/resources/academy/bpm105.jsp

On IBM ILOG BRMS and BPM

I just listened to a webinar by ILOG that discusses the integration of the ILOG BRMS with BPM.

 

I am glad to see that they are starting to publicize the need for both BPM and BRMS and how they relate. This was a first from ILOG as far as I can remember.

 

In short, business processes should be calling business rules and this should avoid your business process to grow into something un-manageable over time since the decisions are being externalized into the BRMS.

 

ILOG mentions the following as reasons to separating process and rules:

  1. Increase business agility by allowing users to manage decision logic
  2. Streamline and stabilize processes by externalizing decision logic
  3. Enable re-use of decisions across different processes, applications and systems
  4. Enable automation of complex, variable decisions
  5. Effectively manage large and evolving sets of rules

 

The interesting thing here is that points number 2 and 3 are now presented with a business process component instead of the “application” as it used to be.

 

Obviously, part of the presentation was aimed at showing why IBM bought ILOG and where ILOG’s products complete IBM’s offering and how it fits with the IBM products.

 

Once slide I particularly liked was one where they presented their vision of the Agility Infrastructure. Which basically is presented as:

 

The Agility Infrastructure:

  • Detect (Business Events)
  • Orchestrate (Business Process Management)
  • Decide (Business Rules)
  • Monitor (Business Activity Monitoring)

This is a simple representation of the 4 concepts and how they relate, yet it is a very effective one.

 

The recorded session and slides should be available soon on the ILOG web site.

On Business Rules project best practices – Part II – Help and Education

This entry is part 2 of 7 in the series Business Rules Project Best Practices

In my previous post, I started listing a list of best practices that can and should be used when working on a business rules project. This post is about detailing one of these practices further.

Get help and Educate yourself and your team

First, if the organization is new to business rules, get help. Chances are guidance will be required and hopefully will help you succeed with your project. Yes consultants can be expensive, but they can help you avoid some of the pitfalls on this type of project, and if you make sure your team stays close to the consultants, they should be learning so that you will eventually become independent.

This brings me to my second point. Educate yourself and your team. Yes there is a cost to upfront classes and education (in time and $) but it will hopefully help you get the most out of your rules project. The formal courses, book readings and other resources available around should give you a kick start and then working with some experienced consultants should complete this education as well as give you some practical experience within your specific environment.

Why did I combine these two topics? Because the people you get to help you should also be there to educate you with their practical experience and knowledge similarly to some mentoring.

The reasoning behind this

Of course, being a consultant and instructor myself probably gives me a bias towards this, but I will point out why I think this is important with some details below.

Suppose you are starting a project and as you are evaluating your requirements, you realize that you will need a business rules engine (BRE) (I will focus on BRE here, but this may also apply to BPM as well). Now since you are new to this technology, you start reading on the subject (which is great), and start looking at the different products out there. You might even want some of them to come in and present you their products in demos (or through webminars), etc. Because of time and effort constraints you will probably limit yourself to some 3 or 4 products and your eventual choice would be based on their presentation and marketing material. Since you are new to this technology, you might not make the right decision. Getting help at the stage of the evaluation will hopefully provide you with an unbiased opinion and make sure that your choice is based on a more educated evaluation of the products in comparison to your requirements. You might be able to get away with not getting outside help for this part, but getting help would give you a sanity check.

Now that you have selected a product or a shortlist of products, it would probably be beneficial to ask the vendor(s) to do a proof of concept* for you. This proof of concept should be a relatively simple list of requirements that you have and you want to see how each product will respond to your requirements. The help you would get from an outside consultant here would be to keep a close eye on how each product is actually responding to your requirements, and help you identify places where you should ask more questions. This is also a time where you need to educate yourself more about how each product is going to require you to work in the future.

Next you select a product, and hopefully it is the best product to fit your requirements. The best thing for you to do is to educate yourself on that product. Identify the team members that you will want to be part of a prototype* or pilot*, that is the business analysts and developers that will be involved and send them on the appropriate courses provided by the vendor. This will give them a kickstart on the product and hopefully, working on the prototype will allow them to assimilate these new skills faster. This team will also become the internal experts, and possibly evangelists and teachers for the future phases of the project.

When working on the prototype, get help from either the vendor professional services and or outside consultants so that you learn how to do things using the best technique. This prototype is an excellent opportunity to improve on the skills of the team you trained and to give them the knowledge they need to take this over in the future. Your team will be learning from the consultants and be executing some of the work.

There is always more to learn, but this route should be taking you to the path of independence from outside consultants short of getting more manpower to execute some of the work faster. The need for consultants should reduce over time except when you have very specific challenges that require specialized knowledge to accomplish.

A sample timeline

The following graph displays a sample timeline for a business rules project from the help and education perspective. The scales used are arbitrary and used for demonstration purposes only.

Help And Educate Sample Timeline

Help And Educate Sample Timeline Legend

First, the red line shows that the internal team starts small, eventually grows to involve the staff required for the prototype (or pilot) and then grows further when subsequent phases of the project continue to proceed. It shows what happens during a project, and not what would happen after the end of the project, where the internal staff might be reduced to fit only what is required for operations.

Second the blue line shows the involvement of external consultants. They get called in early in the project as to guide the team in the right direction. We eventually see a progressive withdrawal of the consultants once the project is well under way, with specialized interventions when there is a need for them.

Third, we see a Green line that might show additional manpower required to achieve some of the work in the timelines set by the project. This is an optional involvement that is required only if the internal staff is not sufficient to meet the deadlines, etc. This does not suggest that extra help will absolutely reduce timelines, the usual laws of adding people to a project still apply, but sometimes external help is required.

Finally, in purple, we see the evolution of the internal knowledge of the team that is involved. This is also for demonstration purposes and does not intend to imply that the team will not learn what they need faster (or slower).

In summary

  • Get help: to start in the right direction and to learn from people with experience.
  • Educate yourself: to be more efficient and to be autonomous sooner

On Business Rules Categorization – Part IV – Rule Classification

This entry is part 4 of 5 in the series Business Rules Categorization

This is the fourth of a multiple part on the topic of business rules categorization.

In Part I, we saw a definition for business rule which is very broad and needed to be broken down a bit more. In Part II, I performed a search on the use of the terms “business rules” which showed me that a lot of people refer to those words. In Part III I searched for a classification of business rules that would help put some clarity into it all and found some starting points.

What this classification is about

As I performed my search for a classification, I eventually was able to identify what it was and was not:

  • It is a work in progress and will probably change based on discussions and further research
  • It is a classification of business rules, that is, rules that are under business jurisdiction
  • It does not mean that the implementation of these rules is done by the business people, but they should be the ones in control of the contents of the rules
  • It is not a replacement for other classifications or categorizations that have been documented
  • It is a categorization of business rules based on where the business rules will most probably be implemented in a SOA architecture. 

The basic classification

  Rule Category Description Execution component

1

Rules for data transformation

Rules that transform data from one format to another.

ETL tools, Database, XSLT, Integration tools

2

Rules for referential integrity

Rules that represent and control the relationships between entities. These are database associations, multiplicity, constraints, triggers, etc.

Database

3

Rules for data validation

Rules that keep the information (data) in the system consistent. For example, mandatory attributes, type, min, max, etc.

Dynamic web pages, Database

4

Rules for security

Rules that control access to functionality or data based on roles

Single Sign On, Authentication services

5

Rules for presentation

Rules that allow for dynamic content to be presented to users.

Dynamic web pages, Content management

6

Rules for workflow or business process

Rules that are business process and workflow related.

BPM or Workflow Engine

7

Rules for decisions

Rules used to define the dynamic, business-level building blocks of the policies, directives and initiatives of an enterprise.

Business Rule Engine

8

Rules for rating engine*

Rules that represent a pricing model to be applied to a given transaction.

Rating Engine

My comments on the classification

The first three categories are all Data related and can be grouped under a parent category as such.

As indicated, my motivation for creating this classification was to identify which execution component would actually implement the rules in a SOA architecture.

As for the documentation and management of the rules, that is a totally different exercise since some of these tools are built with documentation and management in mind, whereas others are not.

But these are not all for the business…

Some will argue that some of these rules categories are not business rules but I think that all of these have a “under business jurisdiction” component as shown below although it does not mean that the business will be implementing them in the system.  

 
Rule Category
Why under business jurisdiction?

1

Rules for data transformation

Business decides which fields map to which other fields.

2

Rules for referential integrity

Business decides what is the relationship between items as well as the multiplicity

3

Rules for data validation

Business decides what the type of the field will be, the length, the allowed values, etc.

4

Rules for security

Business decides on the roles, the accesses to which functionality

5

Rules for presentation

Business decides which pages should appear, in what order, etc.

6

Rules for workflow or business process

Business decides on the processes used in the enterprise

7

Rules for decisions

Business controls all decision rules

8

Rules for rating engine

Business decides on the pricing models to use

 

Conclusion

I would like to hear from readers about their thoughts on this classification. I actually have some more posts planned on the subject if there is some interest. Primarily (for now)

  • How it relates to System/IT rules and Business rules as discussed by Ronald G. Ross
  • How the BRS Rule classification relates to this one

I’m looking forward to hearing from readers.

* I want to thank The Hartford for their inspiration on adding the rating engine to the classification after their presentation at the Business Rules Forum 2008.