Sunday, February 21, 2010

BPMN 2.0 Applied: Level 1 descriptive modeling or business-oriented process mapping

Introduction

It's very practical how Bruce Silver describes the usage of BPMN 2.0 in three levels (Silver, Bruce (2009). BPMN Method & Style. Aptos, CA 95003 USA: CODY -CASSIDY PRESS).

  1. Level 1 - descriptive modeling or business-oriented process mapping. This level creates a good understanding for all stakeholders about how the business is running.
  2. Level 2 - analytical modeling or the "common process language shared by Business and IT". This level can use the complete notation and describes more complex logic. It's the basis for describing processes in detail, ready to automate.
  3. Level 3 - executable modeling is brand new with BPMN 2.0. It transforms BPMN from a diagramming notation to an XML language for executable process design. At level 3 it should be possible to govern executable systems by graphical models rather than "code". 

 

Level 1 Modeling Palette

The following BPMN constructs comprise the Level 1 Palette.
  • Pool: the pool represents the process as internal participant, this is also called a white-box pool because you know how it works. A black-box pool represents an external participant you don't know from the inside, for example "customer" or "partner".
  • Lane: most often lanes represent performer roles or business units in a white-box lane. You can also use sub-lanes, for example a unit within a department.
  • Task (user, service): a task is an atomic activity. A User Task means a task performed by a Human. A Service Task means an automated activity.
  • Sub-process: a sub-process is a compound activity, meaning an activity with sub-parts that can be represented as a process, a flow of contained activities.
  • Start event (None, Message, Timer): A Start Event indicates the start of a process or sub-process. A None Start Event means the trigger is unspecified, a sub-process must start with a None start. A Message Start signifies the process is triggered by a signal from outside the process. A Timer Start Event signifies the process is run on some predetermined schedule either on-time or recurring.
  • End event (None, Message, Terminate): An End Event indicates the end of a path in a process or sub-process. With a None End Event no result signal is thrown. With a Message End Event a message is sent. With a Terminate End Event immediately ends the process or sub-process.
  • Gateway (Exclusive or Parallel): An Exclusive Gateway (XOR) means only one of the output sequence flows is to be followed, based on some condition. A Parallel Gateway (AND-split) means that all output sequence flows are to be followed.
  • Sequence Flow: A sequence flow links activities, gateways and events within a single pool. They represent orchestration.
  • Message Flow: A message flow represents a signal (message) between two pools. To associate data, you can add a message symbol, an envelope icon. It may not be used to connect two nodes within a single pool.
  • Data Object, Data Store: A Data Object represents a variable while a Data Association represents a mapping between that variable and a data input or output. A Data Store represents externally stored data accessible to the process.
  • Text Annotation: Used to insert information within a diagram.
  • Link event pair (off-page connector): to split a process over more than one page.
 

Level 1 Method and Style

I advice a top-down approach because you'll get to the end just as quickly and be happier with the end result. In black text I describe the methods to create a level 1 BPMN diagram and in red italic I describe the style conventions that will help you to create clear and consistent diagrams.
  1. Define Process Scope
  2. Create the Top Level Diagram for the Happy Path
    1. Add Pools
      • Label white-box pools with the name of a process
    2. Add Lanes (optional)
      • Model internal process participants (activity performers) as lanes within a single process pool. Label lanes with the role or organizational unit that performs (or is responsible for) its contained activities.
    3. Add Happy Path Start and End Event to Process Pool
      • Use only one start event
      • Label Message start events "Receive X" where X is the object triggering the process
      • Label Timer start events to indicate the process schedule ( time or recurring)
    4. Add Major Steps in the Happy Path
      • Label activities VERB-NOUN
      • Try to break it down to no more than 6 steps, use sub-processes to avoid that.
      • Sequence flow must not cross a pool boundary.
      • Sequence flow must not cross sub-process boundary.
    5. Reconnect Concurrent Steps
    6. Add Gateways (XOR and AND) and reconnect steps
      • All activities, gateways and events must be connected via a continuous chain of sequence flows leading from a start event to an end event. They cannot be "floating" in the diagram.
  3. Add Top-Level Exception Paths (most processes have other flows than the happy path
    1. Identify Exception End States and represent them as End Event
      • Label them to indicate the end state. If multiple paths lead to the same effective end state, route them all to a single end event.
    2. Insert Gateways to Define Exception Paths
      • If possible, label exclusive decision gateways with a Yes/No Question, and label the outgoing sequence flows yes and no where the "Yes" answer describes the exception.
  4. Expand Sub-process to Show Detail at Child Level
      • Make models hierarchical, fitting each process level on one page
      • You MUST use a None Start Event
  5. Add Intermediate Message Flows to External Pools (Optional)
    1. Add Black-box pools for External Participants
      • Label black-box pools with a participant role or business entity
      • Begin customer-facing processes with a Message Start Event receiving a message flow from the Customer Pool
    2.  Add Top-Level-Diagram Message Flows
      • Show them between the process and all external pools
      • Label message flows with the name of the message. Use a message linked to the message flow to indicate additional detail, if necessary.
      • Message flow cannot be use to connect points in the same pool.
      • Message flow cannot connect to a gateway.
    3. Add Child-Level-Diagram Message Flows
      • Be consistent with the parent diagram (more detail is possible)
Remarks:
  • I advice not to use "Data Objects". If you want to use them I advice to reserve them for information details of packaging that is not obviously implied by the orchestration itself.
 

Examples

Figure 1: Top Level Diagram for the "Project Sales" process
The "Black-box" Customer has an opportunity.  In the sub-process "Close Opportunity" the deal is closed. If the deal is won, a contract is registered in the ERP-system to fulfill the contract. If a contract according the standards for that company is necessary a contract is created and mutually signed. If a valid contract is available the project status is set to "active".
 

Figure 2: Child Level Diagram for the "Close Opportunity" sub-process
In this process diagram the sub-process is foreseen with much more detail, including lanes.