Examples showing how and when to use the 6 different types of start events in business process modeling notation (BPMN) diagrams.
We presented an introduction to BPMN diagrams last week. Business analysts are often required to document as-is processes and to-be processes. These diagrams help identify the scope of a software project. The diagrams can also help uncover requirements that might be overlooked without diagramming the processes.
The BPMN specification is designed to establish a common language and convention for creating process diagrams. This common convention allows people who are familiar with modeling, but new to a project to avoid learning a new diagramming language on each project or for each client. We have a link to the official version of the spec in our introductory post (we will update that link if and when the spec changes).
Each business process has some form of initiating event. In BPMN terminology, it is called a start event. There are six different types of start events that we can include in a BPMN model.
- None – the modeler does not specify the start event.
- Message – a message triggers the start of the process.
- Timer – a time, a date, or a recurring time or date triggers the start of the process.
- Rule – evaluation of a rule initiates the process.
- Link – this represents the start of a sub-process that is part of a larger process.
- Multiple – more than one form of trigger can initiate the process.
When we aren’t certain of, or do not want to specify the start of a process, we can use the empty circle, or none start event. We also use this start event when the trigger for the process is irrelevant.
In this BPMN diagram example, the process shows that we first get our eggs, then scramble them and eat them for breakfast. We don’t indicate why the process was started. It could be because we were hungry, because we’re on a dietary schedule, or because our mom told us we had to eat our breakfast. We don’t know, or care. Trying to figure out what triggers the egg scrambling process doesn’t help us understand the process any better – so we use the none start event.
When a process is initiated by an outside actor sending us a message (telling us to start the event), we use the message start event.
This BPMN diagram example shows a process of getting water, giving it to a child, and returning to bed. The process is initiated by the receipt of a message. We become aware that the child is complaining of thirst and unable to sleep. When we receive that message, we initiate the process of getting water for the child.
The timer event is used in BPMN diagrams to indicate that the process begins at a set time or date. It can also be used for processes that repeat on a schedule (hourly, daily, etc).
In our example, on the actor’s wedding anniversary, he buys a gift, gives it to his spouse, and then enjoys their anniversary. This process is triggered by the timing of the anniversary.
A business process that is initiated according to the evaluation of a rule or condition is initiated with a rule start event. A rule can have any amount of complexity or simplicity.
In this BPMN diagram example, the rule might be “If caller ID indicates a friend or family member.” When the rule evaluates to true, the process is started. In this process we answer the phone, talk, and then hang up the phone. But we only do this if the call is from a friend or family member.
A link start event is a special case. It indicates that we are looking at a sub-process, or part of a larger process. In the larger process, the flow will enter into a sub-process activity, at which point the flow transitions to our detailed process diagram. The sub-process starts at the link start event and continues to the end event. When the detailed process reaches the end event, the flow returns to the larger, or parent process.
In this BPMN diagram example, we start with a modified version of our egg-scrambling process. Note that the “Scramble Eggs” activity has been changed from a task to a sub-process. The diagram on the right shows the sub-process.
The entire flow reads as follows:
- [parent process] Unknown start event
- [parent process] Get Eggs
- [parent process] Initiate Scramble Eggs sub-process
- [sub-process] Link start event
- [sub-process] Stir Eggs
- [sub-process] Apply Heat
- [sub-process] Stir Eggs
- [sub-process] If not done, return to Stir Eggs
- [sub-process] end event – returns flow control to parent process
- [parent process] Eat breakfast
- [parent process] end event
A business process may be initiated by any of multiple different events. When we don’t know or care what those events are, we can use the none start event. When the process initiator is important, we use the multiple start event. Additional notes or documentation will indicate the possible starting events.
Our television watching process (turn on tv, watch tv, turn off tv) could be initiated because we want to be entertained, or because we want to be educated. This might matter because it could impact what channel we watch. We might be turning it on at a precise time, every morning, to check for school closings. We might just want the tv for background noise while we do something else. Since we care about how the process is initiated, we use the multiple start event instead of the none start event.
We now know which of the 6 BPMN start events to use in any BPMN diagram. We should use the BPMN diagramming standard to make our diagrams consistent within and across projects.