Previous post:
I summarized my understanding of BPM(Business Process Management) in the previous post. This post is about BPMN(Business Process Model and Notation).
The Business Process is that which happens behind the scenes at an organization when it tries to serve its customers. For example, you as a customer might apply for an insurance policy or a Visa, or book a special meal on your flight or talk to a customer support agent for delayed delivery.
“Something” happens behind the scenes and your request is attended at various degrees of efficacy and pace, and this depends on how the processes are handled.
That “something” can be - three different departments getting into a cage fight to decide who should solve your problem OR an employee at the company waving a magic wand and completing your request OR the not so entertaining but correct way in which a group of people in different departments with well defined processes coordinating what needs to be done, either in an automated or semi-automated manner, to get your request completed as quickly as possible while following all the compliance requirements.
However they handle it, some “tasks” are executed based on some criterion by one or more people and/or automation, and out comes a notification that you, the customer, will or won’t receive the insurance policy or the Visa or the special meal, or the delivery.
That underlying process and division of labor among technology systems, and/or humans can be represented graphically using symbols and BPMN 2.0 (Business Process Model and Notation) - a specification maintained by Object Management Group (OMG) - defines all the 100+ symbols, their meaning, and the rules for combining them. Organizations can use the symbols, and rules to define their business processes in “BPMN Models”. BPMN offers Standardization, so that the semantics, and syntax of the graphical representation is clear to everyone involved.
Such models can then be executed in various workflow engines such as Camunda Workflow Engine. When a human is involved, they get notified of the “task” they are responsible for, and the rest that is automatable can be handled by technology systems. Escalations, timeouts, error handling, and all kinds of things you can imagine being part of a “Structured Process” can be represented in BPMN Models.
BPMN Models are not suited for “Unstructured Processes”, though. i.e., processes that are not predictable and repeatable. For example, defending yourself in a street fight. No BPMN Model can be used there because there simply is no structure there. You can, and should run like Forrest Gump, but beyond that there’s no structure. To defend or fight back, that involves a pretty unstructured process compared to the nonviolent examples from earlier(processing insurance policy or visa application etc.,). I hope the difference is clear.
Here is a concrete example of a BPMN model. It demonstrates what happens when a random customer is hungry.
Different types of “symbols”(circles, arrows, boxes etc.,) are used in this model. They have meaning, and rules associated with them, and the connections between them are guided by rules. This is defined in the BPMN 2.0 specification.
Each process has:
A “trigger” - Pancake Hunger Detected, Pancake Order Received(See following image).
And one or more “end states” - Hunger Satisfied, Anger Satisfied.
What’s happening in between is a logical, chronological sequences of events.
When more than one “Participant” and “Process” is to be represented in the model, they are in separate “Pools”, like in the following model where it shows how the process works between the customer and Yste Homemade Pancakes.
If within Yste Homemade Pancakes there were 3 participants, say a clerk who takes the orders and packs pancakes, a chef who makes pancakes, and a delivery person, then, the “Pool” will have 3 “Lanes” - one for each participant, like it’s shown in the following image.
If you’re interested in the bpmn xml file to build on top of this model in Camunda Studio - see Yste-Homemade-Pancakes.bpmn
That’s all I gathered so far. I don’t know what the next post is going to be. Until next post. :)
Disclaimer: It is possible that I got some of the nuances of BPMN wrong. I’m a noob!