May 062014



In this series of posts we will explore several cases presenting real-life business process examples representing common anti-patterns in business process modeling and demonstrating how to improve the examples by applying best practices.

Anti-Pattern #3: Inconsistent Use of Gateways

Gateways are very important as they control the branching of a business process sequence flow based on data or upcoming event(s). They also specify a connection point from the sub process end events to the external process. In practice, we see a lot of issues in using gateways. Often gateways are omitted and multiple sequence flows go in to/out of an activity, which impairs readability and interpretation. In our opinion, a frequent convention of using a question for a name of a gateway and Yes/No on branched sequence flows is wrong because it makes not possible to connect the names to the names of end events of a preceding sub process (Yes and No are not very good names for the end events). Also, we observe a frequent misunderstanding on how to use event based gateway and workflow patterns related to it. In Table 1, three common anti-patterns in using gateways are presented together with corresponding best practices, and Figure 1 show fragments of a business process before and after applying best practices.

Table 1. Typical Gateway Usage Anti-Patterns and Best Practices


Best Practice

Multiple incoming/outgoing sequence flows – makes it difficult to understand how many flows are required to come out/in.

Always use gateways for branching/merging – improves readability of the diagram and explicitly indicates control points.

Event-based gateway with outgoing sequence flow unconnected to event – makes it ambiguous when the alternative sequence flow should be taken.

Apply Deferred Choice pattern – all the sequence flows after event-based gateway should be connected to events. Use timer event to model cases when expected event does not happen.

Gateway unsynchronized with preceding subprocess ends – shows inconsistency between sub process details and its usage in a larger process.

Apply Internal Business Error pattern with synchronized end/branch naming – makes it very straightforward to consistently use gateways and sub processes.

Inconsistent Use of Gatways

Figure 1. A fragment of a business process Sell Licenses with anti-patterns and an improved version complying with best practices

About authors

The case was made by and the examples are taken from extensive authors’ (Darius Šilingas, Ph.D. and Edita Milevičienė) consultancy in financial, telecommunication, government, and information technology domains helping No Magic customers to adopt MagicDraw and Cameo Business Modeler products for efficient business and software modeling.

5.00 avg. rating (98% score) - 1 vote

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>



Time limit is exhausted. Please reload CAPTCHA.