EPC vs. BPMN. What notation is better to choose?

This is quite a frequent question when you are gonna select the key notation for your project. First of all - there is no right answer to the question because every company and every project are unique and the readiness and professionalism of the project team.


So every company selects the approach that complies with the project objectives, views, and preferences of the project team. Nevertheless, I would like to share some of my observations related to the topic. Unfortunately, I meet companies that already selected the wrong approach time by time, and there is no time or resources to change it.


Of course, there are a lot of similarities between EPC and BPMN (talking about BPMN we are looking only at BPMN Collaboration diagram) - both of them describe the sequence of activities which are managed by events with only one difference: in EPC every performer is modeled next to the activity, in BPMN every performer has its so-called 'lane' with all its activities. This argument almost always plays a key role in selecting BPMN as a core notation because it seems that it is more suitable to recognize activities that relate to performers. This may only work well in theory, but as Einstein said - what works perfectly, in theory, is not always works in practice. And related to BPMN that's true because usually, the project team (at the beginning of the project) deals with very simple BPMN models (I would say primitive models), which contain 2-3 performers, 5 activities, and maybe 1-2 gateways. For such a small amount of objects, everything looks perfect, until you meet real big complex business process, and then it'll come to repentance )


If you model your process using EPC, you find that it is significantly more compact for representation than BPMN. Just because it shows performers next to each activity and because you model from top to down. Instead of BPMN, where so-called Lanes represent every performer, and you model it from left to right, it sometimes makes the same process 50%-80% larger compared to EPC. So, 'fighting' for the space on the model, usually, BPMN-modeler has two options: or admit that your model is really large (and ugly), but you still keep the so-called waterfall approach, which allows you at least keep your model understood. Or, you are trying to 'build the maze' on your model, tкying to squash the space on the model by placing the objects in up-n-down curves. And it kills the readability of the model totally.


The next point - is the effectiveness of the modeling. Most of the time you deal with amendments and adjustments of your process models, and if you use BPMN you spend much more (dramatically more) time for models' adjustments. And it seldom depends on modeling tools - just because BPMN uses Lanes, it is much more difficult to adjust models. Everyone who used BPMN knows that, e.g., if you need to add an object somewhere in the middle of your process, you spend a lot of time struggling with shifting other objects, other pools, connections alignment, etc. Or if you need to change the order of lanes, you usually get a 'pasta' of all your connections you have to adjust manually for a long time. Opposite to this, adjustment of EPC process models much easier.


EPC allows describing a wide set of allocated business objects, such as information systems, documents, performers (with different roles), products, competencies, etc. And the same is almost impossible in BPMN. You can, of course, use data artifacts in the BPMN model, but, as I mentioned above, it's usually so big that nobody uses these data objects for space-saving on the model. The same story with performers is very hard to show in the BPMN model the case where, e.g., two performers carry out the same function or need to show RACI for your activities. Technically yes, especially in ARIS, you can show all these things in BPMN using PSD diagrams. Instead of one model with 10 activities, you'll get 11 separate models, which are, as practice shows, usually not used by stakeholders or SMEs.


The next very crucial point - joining different separate (but connected) processes in one sequence. In EPC, it's possible to define boundaries between processes using process interfaces - a special object for this purpose. Within the BPMN model, it is impossible to show connected processes without breaking BPMN modeling rules. Usually, the connection between processes is realized by start/end events or even text comments. Even when you use ARIS, and you can find (within the system) all joint events occurrences, it becomes useless when you print your model or even when your SME uses ARIS Connect (how many stakeholders or SME know what object occurrences are, and how to use them to find the connected process?).


BPMN has very excessive complexity for business users, e.g., there are 19 types of events in BPMN vs. 2 event types in EPC. If you and your team are not familiar with all these BPMN nuances, then or you'll use your BPMN model with dramatical complexity reduction (you can use only the set of BPMN features that could be 'digest' by your model consumers), then what is the reason to use BPMN? Or if you are going to use all this wideness of BPMN features, usually nobody of 'common mortals' (except some IT professionals) won't understand it. Most SMEs won't find the difference between, e.g., Event-based gateways and Sequence-based gateways, or the difference between the interruptive and non-interruptive intermediate event (most SMEs won't find the difference between them, but these objects have very different business meaning). I'm not trying to say that the complexity of BPMN is bad. I prefer to use BPMN for small projects (10-20 processes) and where all the team is familiar with BPMN notation. Using all this 'freestyle' of BPMN allows us to describe the process more efficiently using tiny details.


Personally, I like BPMN: it less strict than EPC, and you can describe the process sometimes using only events (sequence of events), or use event-based gateways (this is absent in EPC), or show split/merge process branches without gateways, and of course that you can describe choreography of the processes (also absent in EPC). All these features are great, and they are the core of the process modeling approach. Still, you should very carefully consider who are consumers of your processes, and they would be able to understand everything you share using BPMN. If you are not going to automate your processes using BPMN, or your stakeholders & SME are not very mature in BPM, it would be better to choose EPC.