Applying design patterns in BPM?

In response to the really sensible question posted on eBizQ: What key methods do you use for applying design patterns in BPM? here is my viewpoint:
I’ve been working both on software engineering (where design patterns have basically redefined the entire discipline) and in web and BP design.

I think to pattern as reusable design solutions to known problems. The concept is a very abstract one.. actually, as you may know they have been first used in architecture (meaning bricks and concrete, not software đŸ™‚ See: ).
I agree with Scott on the purposes of patterns and on the fact that they don’t really induce a fixed implementation
[As a side note: the Hashmap example, while it gives a good idea of the point, is already too detailed to be called a sw pattern, that’s already a design solution.]
However, while in software engineering I see patterns as usable in every setting, I agree with Andrew that in BPM they can be useful for composition of rather standard processes only. This is not so bad, since I would say that a large percentage of processes may fall in this category. Anyway, for sure ACM is not a field where a see an easy application of patterns, since ACM addresses a set of problems that are inherently not codifiable a priori.

In the academia van der Aalst and others have codified a fairly complete set of workflow patterns (, which are a useful tool for some purposes (e.g., comparing the expressive power of different workflow languages), but I’m not sure they are nearly as useful for actual BP design within industrial scenarios (honestly, I haven’t seen anybody using them in this way; have you?).
Also, I recently discovered a set of more practical patterns here: .

As a concluding remark, I’m not really sure about what is the real difference between a pattern and a template. Here is my (possibly simplistic) interpretation (opinions and criticisms are welcome): a pattern is a simple solution to a small problem, that composed together with others can contribute to a solution of a complex problem; a template is a complete solution which is completely configurable for being adapted to different context and therefore address similar situations.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s