Process Is The Main Thing

@ Anatoly Belaychuk’s BPM Blog

Limited Usability of BPMN Lanes

Lanes (known as swimlanes in BPMN 1.x) represent process performers in BPMN.

Rules for the lanes:

  1. Lanes are optional.
  2. Lanes may be nested (hierarchical).
  3. Lanes semantics is fully at the discretion of the diagram’s author - it may be a function, role, position…
  4. Embedded subprocesses do not have pools and therefore can’t have lanes.
  5. Lanes are meaningful only to the user tasks - service tasks, script tasks, subprocesses, gateways, events are irrelevant to which lane you put them in.
  6. Even for the user tasks the lane is essentially a comment - actual performer is defined by the model attributes of the given task.

Novice BPMN users love lanes and use them at first excercises with enthusiasm:

Figure 1. BPMN diagram with lanes.

However using lanes won’t allow showing the process “happy path” which arguably is more valuable from ease of perception standpoint:

Figure 2. BPMN diagram with a happy path.

Moreover, when dealing with large processes there is no room for lanes at all.

There is a general rule applicable to any notation including BPMN: the number of activities at any diagram level should not exceed 7-9. Otherwise the scheme becomes too difficult to perceive:

Figure 3. “Flat” diagram with a large number of activities is hard to understand.

Accordingly, if the process comprises a large number of tasks, it should be decomposed into subprocesses:

Figure 4. Subprocesses help creating a simple diagram from a complex process.

But this style of modeling leaves no room for lanes:

  • At the top level there are only subprocesses while lanes apply only to the user tasks (rule 5).
  • Subprocess diagram doesn’t allow pools nor lanes (rule 4).

More precisely, rule 4 applies only to the embedded processes; reusable subprocesses may have lanes. I’ve seen diagrams where reusable subprocesses where used instead of embedded solely to be able to depict lanes. This is definitely bad practice - embedded subprocesses shall be used for the decomposition. Reusable subprocesses introduce additional complexity because unlike embedded they are executed in a separate data context.

If you can’t live without diagramming performers then use BPMN artifact “group”:

Figure 5. BPMN groups shows performers within the embedded subprocess.

06/27/11 | Articles | ,     Comments: 32

Modeling Subprocesses in BPMN

If you’re working with on a complex enough business process then at some point the process diagram will become bloated and unreadable. This means it’s time to make hierarchical decomposition - in simple words, split the process to subprocesses. The old rule of having 5 to 9 activities per level is fully applicable to BPMN.

Let’s consider the contract process with three phases:

  1. Agree essential terms of the contract
  2. Agree the contract text
  3. Authorize the contract

Naive process diagrams like the following aren’t rare:

» read the rest

05/27/11 | Articles | , , ,     Comments: 22

No More PoCs

We at Business Console decided not to offer PoCs any more.

Let me explain why first and then what’s instead. » read the rest

05/25/11 | Articles |     Comments: 10

BPMN Orchestration-Collaboration Balance

Definition 1: Orchestration - a diagram depicting a sequence of activities coordinated from a single center of control.


  • Synonyms to orchestration are workflow and, in fact, process.
  • Orchestration is modeled by a white-box pool in BPMN; it may also contain optionally black-box pools presenting external entities.
  • The phrase “coordinated from a single center of control” means that even if a process diverges at some point, the branches remain coordinated e.g. they can be synchronized later in a converging fork; the whole process will end when all branches are completed.

Definition 2: Collaboration - a diagram showing interactions between processes.


  • In BPMN 1.x interprocess communication was called choreography. In BPMN 2.0 choreography is reserved for a totally new type of diagram - what used to be a choreography in BPMN 1.x is called collaboration now. So it goes.
  • A collaboration diagram contains more than one white-box pool.
  • Some people reduce collaboration to the exchange of messages but generally speaking, processes may communicate via messages, signals and/or data (data store, conditional event).
  • Processes on a collaboration diagram are executed independently except specific sync points where messages and signals are sent/received, data read/written.

The big BPMN advantage is its support of collaboration as well as orchestration. This is also a key criterion for choosing a BPMS. Yet as my BPMN training shows, the right balance between orchestration and collaboration is tricky.

There are two common pitfalls:

  1. At a first approach to BPMN analysts try to do the job with orchestration only. Yet it works only for very simple processes like vacation request. Cross-functional processes that are of greatest interest for the business are multi-threaded by nature and hence can’t be modeled within orchestration.
  2. After getting acquainted with messages and learning that they can only be used between pools, many analysts introduce unnecessary pools into their diagrams. For example they love to use pools and messages where a subprocess would suffice:

Fig.1 Process antipattern: “Messaging instead of subprocess”

The common arguments in favor of this scheme:

  • “This process is performed by another entity.” - Use swimlanes not pools to show a performer.
  • “The process can be called from several points.” - So do reusable subprocesses.
  • “The link between the caller and the calling process becomes visible.” - First of all, expanded subprocesses are transparent, too:

Fig.2 Expanded subprocess

  • Secondly, for a well-structured diagram with properly separated abstraction levels collapsed subprocesses are sufficient: when we look at the process top-level, we must understand its logic without knowing the details of subprocesses. The subprocess contents shaill be presented on a separate page:

Fig.3 Collapsed subprocess

It’s a matter of style rather than correctness - the diagram in Figure 1 is formally correct. Yet I recon it’s an antipattern and inventing a wheel because messages are used to model a behaviour witch is already built-in into subprocess invocation:

  • when a control flow reaches a subprocess a token emerges with a subprocess and the caller goes into a wait state
  • when the subprocess completes the caller continues

In summary, here are my rules for the optimal balance between orchestration and collaboration:

Rule 1. If your attempts to model a process are unsuccessful because some significant aspects are missed repeatedly then stop and think - maybe in fact it’s not a single process but two or more?

Rule 2. Do not overuse collaboration - stay within the orchestration as long as possible. Never introduce collaboration into a diagram just because you’ve recently learned how to do that.

In the following article I’ll share my experience of identifying independent processes during analysis.

05/19/11 | Articles | , ,     Comments: 2

Inter-Process Communication Via Data Revisited

Ivo Velitchkov made me pay attention to the difference between BPMN 1.x и BPMN 2.0 in respect to data flow modeling.

Data exchange in BPMN 1.x is modeled with Data Objects:

Fig. 1 Data Objects in BPMN 1.x

BPMN 1.x Data Object is an artifact used to inform what a process does. With the help of Association it may be linked to a Task, Control Flow or Message Flow yet it won’t directly affect any of them.

Data Objects can model a range of physical or electronic objects. We may for example drop a Data Object outside a pool and label it “Orders Database” in order to model interprocess communications via data.

Yet as Ivo rightfully pointed out the diagram depicted above becomes illegal under BPMN 2.0!

The point is that Data Object is associated with a process context in BPMN 2.0: it is drawn within a process (subprocess) boundary and it only exists from a process (subprocess) instance start to end. Therefore it can’t be accessed from the external process.

Persistent data not tied to a process lifecycle are modeled with Data Store, so this element should be used to model interprocess communication via data in BPMN 2.0:

Fig. 2. Data Objects and Data Stores in BPMN 2.0

As a side note, BPMN 2.0 makes a difference between single-item data objects and collections - the latter carry a special marker. It also introduces special markers for Data Inputs and Data Outputs and new elements - Input Sets and Output Sets.

BPMN 2.0 also defines Data Association in addition to the general Association inherited from 1.x. While general Association serves documenting purposes only, the Data Association is “executable”: one may define source, target and optionally transformation at the model attribute level. One may define right at the model the data manipulations that should be performed at activity start and end, message send and receive. Visual representation remains the same: dotted line with V-shaped arrow.

BPMN 2.0 specification is slightly controversial with respect to Data Association:

  • P.221 says that Data Association is used with Data Objects without mention of Data Stores. Since Data Objects always belong to a process, one may conclude that Data Associations should never cross a pool border. This rule would make the second diagram illegal - please refer to Ivo Velitchkov’s comment.
  • Yet p.208 says clearly that Data Store may serve as input or output for a Data Association.

So I believe that the diagram at fig.2 is valid.

Besides, even if you or your tool has objections against using Data Associations with Data Stores then you still can use plain old Associations that look exactly the same.

04/07/11 | Articles | ,     Comments: 3

(Русский) Семинар на тему BPM и ACM

Sorry, this entry is only available in Русский.

03/11/11 | News | , ,     Comments: 2

Cross-Functional Process Optimization

This is third and last part of a study on managing cross-functional business process. Previous parts:

  1. Vulgar Interpretation of Cross-Functional Business Processes
  2. Cross-Functional Patterns

In the second part we introduced two basic ways to organize work within cross-functional business processes:

  • Synchronous - the performing unit starts work as soon as it received an internal order. Technically it’s implemented by a single process.
  • Asynchronous - orders are first accumulated in the input buffer unit of the performing unit, then extracted and processed with some frequency. Technically it’s implemented by two (when there is a single resource) or larger number of processes.

Synchronous mode grants minimal process execution time while asynchronous maximizes the performance (measured by the number of process instances completed per unit of time).

According to my observations asynchronous mode prevails in real life because departments and people both feel more comfortable when they are not chased by a continuous flow of a variety of tasks but have an opportunity to somehow organize and plan their activities.

Business and process analysts prefer synchronous schemes - not with something special in mind but because they just follow the path of least resistance: these schemes are plain simpler. This may lead to conflicts at the process implementation: people are pushed into the process framework which they feel uncomfortable.

Now if we look at it from the organization’s goals perspective (i.e. process performance) then the synchronous scheme is preferred because it provides the highest quality of customer service. A performer may not feel comfortable but it doesn’t matter on the condition that he/she isn’t overloaded (which does not happen as often as it may seem). Improving an individual’s performance may be a sub-optimization which is a bad word.

How can we bring these views together? I’m going to give some recommendation about optimal process schemes

» read the rest

02/17/11 | Articles | ,     Comments: 8

(Русский) Семинар 24.02.2011

Sorry, this entry is only available in Русский.

02/12/11 | News |     Comments: closed

Laws of BPM Robotics

One of our BPM project’s sponsor said at the very beginning, when we discussed the possible project: “my employees don’t need a control, they need help”. I argued at the moment, but later I realized that he was right.

What do we mean when we are talking about controlling a business process? Should we consider paranoid participants suspecting that the ultimate goal is to control them?

After all, the prevailing view of a process management is this: let’s draw a process diagram and make everyone do what’s written in a box assigned to him. And a manager will get a nice picture: the speed of the corporate machine is running and the amount of fuel it consumes.

But the real life is much more complicated: it’s always about a network of processes communicating via data, signals and messages. In the absence of computer-aided control it’s people who control these processes: they watch the bills to be paid, the orders to be delivered timely and in accordance with specs, the capacity and materials to be synced with orders accepted. They also deal with non-standard situations: customer revoked the order or paid several bills with one transactions, supplier changed delivery date etc.

These are complicated tasks. Really complicated.

And now comes a business process specialist who doesn’t know how to do anything yet knows how to do it better. But if he only knows how to draw a primitive workflow then it’s no use.


  • A small company reselling “cool stuff”: gadgets, special gifts, designers’ accessories for bathrooms etc.
  • A group of processes “Assortment Management”: several employees permanently monitor internet, visit trade shows, get into competitors’ stores looking for new ideas, brands, suppliers. On one hand, due to the business profile, the assortment must be updated by trendy things regularly but on the other the product line shouldn’t be too large, it must be trimmed also regularly.
  • These several people assess up to a thousands of candidates per month. The company developed a three-stages filter: first an express assessment made by an expert who throws away most of the income. Then negotiations with vendor, logistics work-out and possible profit estimate. And finally all ideas that passed first two stages are ranged once per month and the top candidates are selected for sample purchasing with the total available budget in mind.
  • In parallel, the whole current assortment is analyzed also monthly in terms of diversity, profitability etc.

A lot of aspects are taken into consideration both during selections and assortment revsions. E.g. a number of items within a single assortment group shouldn’t be neither too small (a buyer doesn’t trust when there is no choice) nor too wide (the buyer becomes confused and goes away). The assortment is limited by the physical dimensions: all goods should be placed on the shelf which is limited in size. And other completely informal things like an intuition saying to the expert that particular good is going to be a top-seller.

What can be done here if the path of the least resistance is taken? Well one may automate the assessment with a five-steps process:

  1. Get the quotation from the vendor
  2. Find out logistics terms
  3. Evaluate merchantability
  4. Assign rating
  5. Make a decision about sample purchasing

But to start with, as was shown in the previous post, when the budget is constrained the purchase decision may only be made on the basis of the whole set of candidates and no way in the frame of a single candidate assessment process.

Next, what’s the use of this scheme if all steps are performed by a single employee? This is pure micromanagement. Is it the issue here to control the sequence of tasks? Of course not - the issue is to control the bunch of processes running simultaneously and asynchronously: hundreds of first stage assessment instances, dozens of second stage assessments, selection into and trimming from the assortment. What we need for this task is not a workflow but a complicated enough interprocess collaboration.

People don’t want to be controlled, they need help in controlling really complicated processes.

If you give it to them then there’d be no opposition, people will gladly use a BPM system. Verified by practice.

Yet you’ll need to overcome their distrust on the way - no one at the shop floor a priory expects anything good when “business process” is mentioned. Here is how I break it talking with people:

Imagine that you’ve got a robot assistant. Trouble-free and error-free. It will take the most tediuos, clerical part of your job. You’ll be able to tell it:

  • «Robot, make sure this application got the right desk.»
  • «Robot, prepare an invoice using these data and post it into accounting DB.»
  • «Robot, let me know when we got the payment by this invoice.»
  • «Robot, what is the production schedule for this order?»
  • «Robot, calculate this client’s rating by our standard procedure.»
  • «Robot, watch this order and let me know if it stucks.»
  • «Robot, give me all payment requests for tomorrow sorted by contractors.»
  • «Robot, what did the boss say last week about this complain?»
  • «Robot, the client revoked the order - withdraw it from production if it’s not too late.»

Now tell me - who would not accept such a helper?

Besides the BPM robot is safe because it obeys the laws. Not the Asimov’s law however.

The Laws of BPM Robotics:

  1. A robot will never be able to do what you are able to do.
  2. A robot will do only a part of what you are doing.
  3. A robot will do only a part that you won’t like to do yourself.
02/11/11 | Articles | ,     Comments: 6

Cross-Functional Patterns

It’s time to pay the debts - returning to cross-functional processes modeling as promised.

Remindment: the first part stated that it’s usually impossible to implement cross-functional processes by orchestration only (i.e. within a single BPMN pool). The borders betwen departments are material, they mark differences in manner and rhytm of different kinds of work. Because of these differences the fragments of a process belonging to each department are technically implemented by separate pools while the cross-functional process as a whole is implemented by a set of such pools communicating via messages and data.

In this article we’ll consider common cross-functional process patterns.

Let’s use the following example:

Under routine financial planning all bills received by a company are processed by the finance department first: they determine validity of the claim, check the amount and date, assign priority in accordance with established business rules. Then the bill is submitted for approval to CFO or some other manager who makes a decision about payment taking into account priority, amount and term.

The simplest process diagram may look like this:

» read the rest

02/09/11 | Articles | , ,     Comments: 19

Copyright © 2008-2020 Anatoly Belychook. Thanks to Wordpress and Yahoo.  Content  Comments