Practical process patterns: AVS

This is the Advance Voting Solution (AVS) pattern from my book www.samarin.biz/book . The pattern uses the coordination of instances (many instances of pool “VOTERS” for each instance of pool “COOR”).

BPMN events work well for cases which require the coordination of many (an unknown number at the time of the design) participants with a similar behaviour. This case is typical for voting, bids and other dynamic situations. The logic “one pool implies one instance because there is one participant” is not sufficient for such cases. Instead it is necessary to use the logic “one pool implies many instances, one per participant” is required (this is rather implicit in BPMN).

For example, figure above shows a voting process with many voters each of whom behaves in accordance with the coordination logic presented in the pool VOTERS. The whole process is coordinated by the pool COOR and comprises three steps: preparation 1, ballot casting 2 and finalisation 3.

In the first step 1 , the repetition of process fragment PF01 in the pool COOR starts many instances of a process in the pool VOTERS.

In the second step 2 , each voter may cast a ballot (activity Vote from the pool VOTERS); this event is consumed by the intermediate message event E01 in the repeating process fragment PF02 in the pool COOR. If a voter hasn’t cast a ballot before the deadline, then process fragment PF01 in the pool VOTERS is terminated by a time-out exception which is consumed by the intermediate message event E02 in the repeating process fragment PF02 in the pool COOR.

In the third step 3, the process publishes the results of the vote.

The explicit separation of the behaviour of the voters from the voting procedure and the imposition that all voters are treated equally (i.e. the pool VOTERS acts as a voter’s proxy) considerably simplifies the validation, control, monitoring and certification of such a process-based solution.



#BPM for business analysts: modelling procedure

A presentation about a modelling procedure from my book www.samarin.biz/book 

General information from BPM you may get from http://www.slideshare.net/samarin/bpm-for-developers


Got lost in three pines? - Process analysis vs process design vs process modeling

This blog post is inspired by the recent LinkedIn discussion

With many different opinions about process analysis, process design and process modeling, the specific of BPM (as a methodology, a practice and supporting tools) must give us the right context to avoid be getting lost in three concepts.


We mainly agreed that enterprises need (to improve their performance) to model, automate, execute, control, measure and optimise the flow of business activities that span the enterprise's systems, employees, customers and partners within and beyond the enterprise boundaries. That was known before BPM, e.g. BPR, quality management, Lean, 6s, etc. The BPM brought into this picture the following specific features.

1. The single description of the process (i.e. template or modèle) is used in those 6 functions:
  • process template is modelled (planed, communicated) - business + architects
  • process template is automated (instrumented) -  IT + architects
  • process is executed - all participants (normal users) can see the same process instance
  • individual active process instances are controlled - by super-users and business process owners
  • process instances (mainly completed) are measured - by business process owners
  • process template(s) are optimised - by architects and business process owners
More details in http://improving-bpm-systems.blogspot.com/2010/02/bpm-reference-model-fragment-04-essence.html. See also "Who is doing #BPM within an enterprise" http://improving-bpm-systems.blogspot.com/2010/05/who-is-doing-bpm.html

2. The single description of the process should be executable. It must have a correct algorithm and formal coding.  It should be visual and understandable for all participants. Thanks to modern BPM tools this is easy achievable right now.

3. Because of the recursive nature of processes, the creation of this single description of the process is an iterative work. Within each iteration there are analysis and syntheses (or design). 
See slides 28-38 in http://www.samarin.biz/pubs/AS-AW08-track.pdf

4. Functions (from the item 1 above) can be carried out in several different sequences as shown in http://improving-bpm-systems.blogspot.com/2010/12/illustrations-for-bpm-acm-case.html . Classical "as-is" and "to-be" are just one of many options.