BPMN, CMMN, and DMN — Triple Crown of Process Improvement Standards

Prathamesh Mane
8 min readJun 6, 2021

In the previous post Business Process Automation Solution — Then and now, we discussed briefly about the process automation history and what are the various modelling techniques available.

One of the widely used trio for process modeling is being BPMN, CMMN and DMN. They are often addressed as Triple Crown of Process Improvement Standards.

In simple words, these standards can be termed as -

  • BPMN — is about the processing
  • CMMN — is about managing
  • DMN — is about deciding

When I started working in this field, the first question that came to mind is why there multiple standards for doing one thing? and how I can use them? Then I heard the same question from new modelers and professions out there. So let me clear out all the doubts here.

Let’s first discuss, why people ask these questions. As you can see in the Image: BPMN and CMMN Palette, there is clearly overlap between palettes such as user tasks, service tasks, etc. That adds the first seed of doubt in the user’s mind. The second is because a business process can be modeled using both CMMN and BPMN standards if you want so [2].

Image: BPMN and CMMN Palette.

Let’s now dig a bit deeper into each standard with an example. I will be presenting “Mutual Fund Investment Case”. The case starts when an investor approaches his/her Relation Manager (RM) and starts investing in AMC’s popular investment theme. I will explain each part in more detail with our 3 crowns.

BPMN

BPMN is used in scenarios where the business processes have a strict or a predefined flow. Every instance of a process differs from each other slightly. Consider below First Investment Process. When a client starts investing in a Mutual Fund (MF) solution, RM enters his/her details in the system. Based on whether the investore is a new customer or an existing one, we may need to consult the KYC officer for background checks, that is what I call a slight deviation in execution. But whatever might be the situation, we always follow predefined steps for the first investment, namely “Enter details” → “Verify” → “Allocate NAV”. We can’t directly allocate NAV without first entering user details in the system.

So if you have this kind of scenario, then you must go with BPMN.

BPMN: First Investment Process

BPMN is a prescription-description model.

CMMN

CMMN aims to model things that are not fixed at the start of the situation. Hence you cannot define the work efforts when the case is initiated. The flow of the process largely depends upon the knowledge workers. As the name suggests, these are the participants in a case who possesses knowledge of underlying business use case. Knowledge workers can choose the path based upon information available in the case at a given moment.

CMMN typically allow you to model cases based upon Event (E) → Condition (C )→ Action (A) way e.g. you can model case when if particular events occur in context, calls some activities. Other options are also possible like E → A or C → A or simple A, which allows you to model how you react to the situation. In diagram below, when Close Application (E) event occurs, we Close (A) the case.

Let us see the bigger picture now. Our “Mutual Fund Case”.

CMMN: Mutual Fund Case

The outermost rectangle, with the little rectangle on top, that’s a case plan model, depicting the name of the case. It defines the boundary for all your plan items. Inside it, we have 3 smaller rectangles called stages — “Folio Creation”, “Folio Management” and “Folio Closure”. They roughly denote the 3 stages of our investor’s folio. Based upon which stage you are, you can do different things.

Folio Creation — It contains a Process Task, see BPMN: First Investment Process, which is responsible for folio creation of investor. If suppose there is any issues with user’s account or KYC, a case participant can forcefully close the case. The double rounded circle enclosing human, called User Event Listener, connects to black filled diamond called as “Exit Sentry” to denote closure of the attached case.

Folio Management — Now you will be in a position to tell, what this stage encloses. It has 3 process tasks, SIP investment, Lumpsum investments, and Update nominee process. Pay attention to retro styled icons similar to media controllers at bottom of each task😉. The SIP Investment task has one hollow diamond (Entry Sentry) defining this can only be activated in case of certain conditions holds. In our case, we want to allow to invest in SIP, only if he/she has chosen the same investment type at the time of onboarding. The same entry sentry is missing on lumpsum investment because it makes sense to allow the user to make lumpsum investment irrespective of investment type.

Coming back to our media controllers, the play icon ▶ tells that, the given task can be activated by knowledge workers if they want. and a ||| icon tells that a given task can be called multiple times. So combining our newfound knowledge, we can say that, Update Nominee process can be manually activated by the user if they want, multiple times.

Folio Closure — So our user has made a lot of investments, encashed huge profit, and he wants to close his/her portfolio. Now we want to calculate the final amount, deduct taxes and other fees, and disburse cash to the client.

BPMN: Folio Closure Process

Look at the first activity, Calculate Capital Gain Task. This is our third crown, called Decision Task, using following DMN rules.

DMN

DMN: Capital Gain Calculator

The DMN, or Decision Model and Notation, is for the precise specification of business decisions and rules. The blue left-hand side denotes inputs to the DMN model and the RHS side denotes output if a rule matches. The top-left side denotes a letter “F”, specifying First Hit Policy, where the output of the first satisfying rule is returned. The rules are read from top to bottom and left to right. First rules say if Capital gain is less than (<) 100k, and the investment period is more than or equal to (≥) 12 months, then gain falls under LTCG (long-term capital gain) and the effective tax rate is nil. 2nd rule says, if you gain more than 100k for an investment horizon of more than 1 year, you need to pay an effective tax rate of 15%. And for scenarios, which do not satisfy former rules, must be considered as short-term gain, and you are taxed 20%.

So what’s the conclusion?

There is a great presentation[1] which I liked. Here is the excerpt from it.

What it says,

  • When you have only a slightly variable process use BPMN.
  • If unpredictable, mix BPMN with CMMN.
  • If emergent, use CMMN.
  • DMN can be used with both CMMN and BPMN to model decision tasks in all scenarios wherever applicable.

If we now look back to Mutual Fund Investment Case, we can see why I modeled it as a case and not a process. The first check I do while deciding is, whether a whole workflow can be split into different lifecycle stages, and can the knowledge workers’ ability to manipulate workflow changes based upon which stage he/she is in. CMMN allows us to model such kinds of things very easily. Our case has 3 distinct stages and each stage gives different abilities to users like in the Folio Creation stage, you can forcefully terminate the case, and so.

The second guideline says if your flow is emergent, meaning the flow can be divided into smaller parts that follow a predefined structure (like in “Folio Closure Process”, you calculate gains, generate receipts and disburse funds) but some parts cannot be fixed into “Strict Flow”. Take an example of the 2nd stage, “Folio Management”, a user can choose to either do investment (SIP or Lumpsum) or he can update the folio nominees. But there is no precedence of steps. He can first update the nominee or then choose to do investment or vice versa. As again, this scenario can be modeled using BPMN, but case modeling makes it easier.

The 3rd guideline I always follow, when the case at the top level is, I don’t provide unnecessary details. All minute details must be handled by child subprocesses.

So, till now what we understood that these 3 standards are not competitors but they complement each other. As we got this right, let us look at when to intervene these standards.

The left-hand side of the + operation demonstrates the modeling standard you are using currently and the right-hand side of ➡ shows which standard to use to replace the right-hand side of the + operation.

  • Rule 1 — When you are currently using BPMN and there are a lot of gateways for modeling the decision logic, then replace the gateways with DMN.
  • Rule 2 — If you are modeling a process with lots of events and exception handling, you should go with a CMMN as it is best used to design event handling.
  • Rule 3 — As a thumb of rule, if you are in BPMN, and you are using Ad-hoc subprocesses, replace ad-hoc tasks with CMMN. This is applicable also when you are modeling state transition scenarios,
  • Rule 4 — If there is a part of the case, where you are defining a scenario to call one task when the other completes and so, then you should probably chop off those parts into the BPMN process.

Hope I am able to clear all you doubts and present how BPMN, CMMN and DMN can be used together to develop efficient bussiness processes.

References

--

--

Prathamesh Mane

Explorer. Write stuff about technology and innovation.