Pool and ad-hoc subprocess

Hi all, I was wondering whether such a diagram is a correct representation of an ad-hoc subprocess in a pool?
image

The idea behind is the following:
this pool is a part of a process and represents collaboration between 2 different actors. However this particular part of the process is not defined. So What I’m basically trying to say is “hey, you guys need to get into a room, and by doing a differen set of activities figure out a solution to a problem which occurred”. However I’m not sure whether a subprocess can be extended over two lanes in a pool.

Let me know what you think.

Thanks in advance,
Alex

An ad-hoc sub-process is meant to be activated and then any (or some) of the activities included, in no particular order. It has weak (no) execution semantics.

Lanes also have weak (no) execution semantics. What you express here (open for interpretation) is that this is driven by two parties (lane 1 and lane 2).

It is unusual at least to have two parties (you don’t know who exactly) executing a given thing.

Thank you for the feedback.

If I understand correctly what you’re saying is that depiction is generally speaking correct, it’s just unclear which party is responsible for which task? If that’s the case, I absolutely don’t have any problem changing the diagram to the following:
image

Also I don’t really care about execution, since I’m planning to use the diagram for illustrative purposes within my company. What I do care about is the compliance with the BPMN standard, since I want it to be professional and correct.

Please let me know whether there’re any other issues from this point of view

I wouldn’t accept this model. While lanes do indeed have modeler-specific meaning (i.e. the meaning is defined by the person who creates the model), they are meant to group acitivites, so having a sub process (which are activites) cross over lanes is not intended.

Many modelers prefer to model without lanes, maybe that’s an option for you.

By the way, what you modeled is not - in BPMN terms - a collaboration. It’s just a single process with lanes seemingly representing people. A real collaboration happens between two or more processes/participants that exchange messages. Maybe modeling your case with two pools might be a solution?

Hi Sombrek,

Thank you for response. Probably I’ll add a bit more details for the context. This initial part shown in the first message is only a part of an already created process. You can find this process following the link:

The part in question is highlighted here in red.

The diagram is divided into 2 parts:
Part above - strategic overview of the process;
Part below - collaboration between 3 parties.

At some point this collaboration from a preset process transforms into an ad-hoc process, because there’s no strict rules about how to handle this type of an issue. Hence I need to be able to put an ad-hoc subprocess on top of a pool.

Let me know what you think about this.

Hi Alex,

You can find this process following the link:

Unfortunately, this seems to require a miro account. Maybe you could upload a picture of the highligted collaboration? Or the BPMN file itself?

From what I understand, at a certain point three parties have to come to an agreement and afterwards the process continues? You migh create a specific pool that represents all parties involved and make it contain the ad-hoc process. Unusual, but doable.

Hi there!

Please find the picture attached:

Answering your question:

  1. "From what I understand, at a certain point three parties have to come to an agreement and afterwards the process continues? "
    Yes
  2. “You migh create a specific pool that represents all parties involved and make it contain the ad-hoc process.”
    That’s what I did and asking whether it’s BPMN-ly correct.

Looking forward to hearing back from you,
Alex

P.S. I’m new to BPMN, it’s actually my first diagram. Could you please take a look and let me know whether there’re any critical issues with it?
I’d highly appreciate all the feedback you can give me. Pls find a document with a higher quality then the image following this link:

Hi there,

I’m new to BPMN, it’s actually my first diagram.

Here’s some free BPMN information: https://camunda.com/bpmn/reference/ and Creating readable process models | Camunda 8 Docs

It is a very complex collaboration for a first process so the required learning curve might be too steep.

It seems miro is a drawing tool, not a BPMN tool. It might not perform any BPMN validation, allowing you to model invalid models. Most likely the created model cannot be used in other BPMN tools either.

That’s what I did and asking whether it’s BPMN-ly correct.

In your actual model you have three pools that stick together. That’s different from using lanes. Tasks cannot cross over pools (and they shouldn’t cross lanes).

Assuming all three tasks have to be done (instead of some are optional) you could use parallel flows.

I initially suggested a single pool like this. The same solution could be expanded to three pools, using messages. Parallel paths do not imply when stuff is done, only that all has to be done when the paths join again. Note that BPMN models show what needs to be done, not necessarily how it is done.

sample

Could you please take a look and let me know whether there’re any critical issues with it?

The general flow seems to be okay, but there are beginner mistaker and issues that require a deeper understanding of BPMN. You might get better feedback over at Discussion & Questions - Camunda Forum where modeling qustions are typically asked.

Different processes are usually modeled in separate pools, not in the same pool (as you did in the Account pool).

The process start is unclear to me. Does the client send two requests or only one and you just do not know whether it appears in the Account or PM department? Note that a single message may still create multiple process instances. Therefore you might end up with two instances of the process in the PM pool.

Data objects (the folded paper) represent information that only exists while the process instance is running. A request tracker seems like something that should be modeled as a data store.

“Does the request has the right type?” The model does not clearly state where this is determined. But I understand this might be part of the “do preliminary estimation” task. You might want to model it more clearly.

Link events cannot connect elements from different pools (the same rules as for sequence flows apply). So you cannot use something like “SR with estimation request” to go to another pool. You could use a sub process if you want to hide the details or a call activity if the following steps are to be displayed as a separate pool.

“Update progress every 20%”: You’re waiting for someone/something to inform you about progress, but that’s not modeled. Once you have a better understanding of the basics I recommend reading about event sub processes. These might be helpful for some situations in your processes.

That was quite a lot of information. Sorry. I’m afraid I won’t be able to go into further detail.

Thank you for the message.
Let me address your concerns one by one:

  1. “Assuming all three tasks have to be done (instead of some are optional) you could use parallel flows.” - they are optional;

  2. “Different processes are usually modeled in separate pools, not in the same pool (as you did in the Account pool).” - they’re not different processes. They’re parts of the same main process. Initially they were connected with a sequence flow. But then a needed to add a link intermediate event to simplify the depiction of the diagram and so in order to maintain the concept of a token I needed to end the process there for the account and start it later again;

  3. “The process start is unclear to me. Does the client send two requests or only one and you just do not know whether it appears in the Account or PM department? Note that a single message may still create multiple process instances. Therefore you might end up with two instances of the process in the PM pool.” - The client sends only one request. We just don’t know who the client sends request to.

  4. “Link events cannot connect elements from different pools (the same rules as for sequence flows apply). So you cannot use something like “SR with estimation request” to go to another pool” - It’s not another pool. Generally speaking it’s the same pool. It’s been divided into a separate pool just for visual clarify; Generally speaking I could have continued going forward within the same initial pool.

  5. ““Update progress every 20%”: You’re waiting for someone/something to inform you about progress, but that’s not modeled” - As you said, BPMN doesn’t show HOW it’s done. Hence, it’s implied, that a person does a lot of different tasks (make the project proceed to 20% of success rate), and then updates this progress.

they are optional

Can you give each party the decision whether their task is necessary or not? When all parties decided, the process can continue.

The client sends only one request. We just don’t know who the client sends request to.

That’s difficult to model when Account and PM are separate.

It’s been divided into a separate pool just for visual clarify; Generally speaking I could have continued going forward within the same initial pool.

I prefer decomposition using subprocesses or call activities. Fo me, the current model feels difficult to read.

Hence, it’s implied, that a person does a lot of different tasks (make the project proceed to 20% of success rate), and then updates this progress.

Is it really the PM who does the work or is the progress not really updated by a fourth party (e.g. development)? This might enable status updates via messages.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.