Sunday, May 11, 2008

A sample to illustrate the ABRD approach

There are a lot of requests from colleagues, customers, readers of ABRD to get a sample covering the main activities of ABRD from A to Z. I'm working on a book with a friend of me, which will cover all the ABRD activities in detail, and provide detailed samples. But for the moment I will take a simple purchase order process. There are a lot of samples on the web around this process, but here I'm focusing on a simple version of it.
This Order Process may betypical B2B scenario, in which multiple stateful services interact with each other. Two sources for the order request: one online with an Internet customer submitting an order on a Web page, and one using an automatic purchase order issued by a well known authenticated customer-partner.

In ABRD using a business process centric approach for discovery – analysis – implementation we start by doing the analysis of the process, then we go to the data modeling, rule harvesting, and service design in parallel like the following diagram outlines it:

During the process modeling the rule and process analysts search for verbs which involve mental processing or thinking like check, qualify, compute, calculate, estimate, evaluate, determine, assess, compare, verify, validate, confirm, decide, diagnose.. to identify activity which has business decision and logic, applies some business knowledge... Those activities should be what we call "decision rich" and have the focus of the rule analyst to discover rule.

Purchase Order Process description

The process is initiated when a customer online submits a product order, or when an automatic purchase order issued by a well known authenticated customer is received on one EDI link. A customer validation step is executed using customer data and product request data. Based on the product data provided in the order, it is checked whether the product is on stock. If the product is available, the price for the shipment of the ordered product is determined and presented back to the customer. If the product is not available, a message is sent back to the customer by email or web page (if still online). This last case also triggers email to product manager to provision the stock for this product.

The total price of the order is calculated from the product price, the customer business condition, loyalty program… and the shipment price. When the charging and the shipment have been performed successfully, the order is filed and the process ends.

Process Analysis

Looking on this process and the description above we can extract the following decision point where business rule will apply:

Decision Point Name

Description

Validate Customer data

Verify the customer information – data present or not, and black listed customers

Validate Purchase Order

Verify there is no fraud in the purchase orders or on a set of purchase order coming over a time period, , verify the data are correct

Calculate Total Price

As the price may account for a loyalty program, marketing campaign, stock level, and other business dimensions, business rules are relevant here to compute the price outside of a simple addition.

Get Shipment report

It may be possible to receive a set of events from the shipment company to aggregate and correlate to the same purchase order so that customer can be notified on a major type of events as well as the internal management team.


A decision point table is an important deliverable of the analysis. It can be built during the inception phase by the team responsible to outline the project high level scope. If it is not present the project team has to quickly develop it during the first iteration of the project.

We will detail the outcome of the rule discovery in a next post.

2 comments:

Derek Miers said...

BTW - you BPMN models are full of holes and invalid constructions.

You might like to check the "BPMN Modeling and Reference Guide" authored by myself and Stephen White (the main developer of the BPMN Specification).

JBoy said...

Thank you Derek. You are right it is not BPMN compliant but it was not my intent to do so, as I would only want to illustrate a simple model. I will buy and read your book, and I will try to be more compliant on the next process map illustrated on this blog. Thanks a lot to point it up.
Jerome