2008-12-30

Comment 7 on "Anti-pattern: End-to-End Process Orchestration" comment 6

Anatoly,


I think that just having more than one pool within a BPMN diagram is not enough to consider it as choreography. My feeling: the difference between orchestration-dominant and choreography-dominant processes is in their behaviour. The former have “globally predictable” behaviour. The logic of templates (one pool implies one instance) is enough to implement such processes.


Diagram below (process for “selection of the best offer”, optimistic case) I would consider as choreography – its behaviour is less predictable. The logic of instances is required, because pool “VENDOR” actually implies many instances (one per each vendor involved in a bid).




Of course, in BPMN all vendors operate in the same way and that is perfect from the point of view of the company (i.e. pool “COOR”), because the company has to prove that all vendors are treated equally. In some sense, pool “VENDOR” acts as vendor’s proxy (or insulation layer). This allows us to make such coordination more explicit (easier to validate, control, monitor, certify, etc.)

Thanks,

AS

2008-12-26

Comment 4 on "Anti-pattern: End-to-End Process Orchestration" comment 3

Anatoly,

I think, that diagramm is "process orchestration". 

Yes, I should use BPMN instead of English next time.

Thanks,
AS 

2008-12-24

Comment 2 on "Anti-pattern: End-to-End Process Orchestration" comment 2

Anatoly,

More comments, please.

4) My point is that novice BPM desingers tend to use former model but the latter is more realistic.

My interpretation: they (novice BPM desingers) model the process from the point of view of one of the participants – “customer”; after they have to model from the points of view of other participants, e.g. “dealer”, “production”, etc., and finally, a common view should be synthesised. So, I would say that this is just uncompleted work.


5) Branches from a parallel gateway may go over other pools? I seriously doubt this. Not in BPMN. But you are right: parallel gateways do produce asynchronous threads.

Is illustration below “process orchestration” or “process choreography”?





6) My favourite analogy to process choreography is threads programming in java.
I would treat “process choreography” as coordination between threads from different java programs -- System.exit() at one pool should not stop a particular choreography.

Thanks,
AS

2008-12-23

Comment on "Anti-pattern: End-to-End Process Orchestration"

Comment on http://mainthing.ru/item/131/

1) Definition:
“Enterprise Process” (equivalent term “End-to-End Process”) is a business process connected to external customer at both ends and going through more than one top-level company’s departments.

More fundamental characteristics of enterprise processes are: a) core business and b) value-added. Those are main reasons that “a BPM initiative would pay for itself”.

2) “Order-to-cash” process

Please, be more precise. If a company produces a service (an intangible product) then there is no manufacturing. Also, some goods, e.g. normal cars in customer’s configuration, will be produced only after the order from a customer!

3) “Process Orchestration” means tasks execution sequence and logic within a single process frame. “Process Choreography” means the logic of several processes asynchronous execution coordinated by data/message flows.

This separation is not clear. Assuming that “single process frame” is a BPMN pool then one can have “execution sequence” spread over many pools exchanged with “data/message flows”. Even more, branches from a parallel gateway are executed asynchronously (and they may go over other pools).
My feeling: orchestration is similar to normal programming with functions (subroutines), while choreography is more close to co-routines.

Thanks,
AS

2008-12-13

Linkedin: Top Down or Bottom Up ?

<question group="BP Group">
Top Down or Bottom Up ?

Do we begin with a Top Down or Bottom Up approach when starting with BPM ?
Trying to figure out how BPM works is like solving a giant jigsaw puzzle. You can approach it in one of two ways. Using the “top down” approach (Process Architecture) , you start with the image of what the solved puzzle should look like, and use this to decide which pieces to ignore and which pieces to search for. The other approach is “bottom up” (Six Sigma), where you focus on the individual pieces themselves. You study them for unusual features and look for close matches with other puzzle pieces. If you don’t have a picture of the puzzle’s solution, the “bottom up” method is sometimes the only way to proceed. Lacking a good framework for understanding processes, organisations have been forced to stick with the “bottom up” approach. This tasks is Herculean if not impossible, with a puzzle as complex as an organisational structure.

Imagine a jigsaw puzzle with several thousand pieces. Many of the pieces can be interpreted multiple ways, as if each had an image on both sides but only one of them is right. All the pieces are poorly shaped so you can’t be certain if two pieces fit together or not. Many of them will not be used in the ultimate solution, but you don’t know which ones or how many. Every month new pieces arrive in the post. Some of these new pieces replace older ones, as if the puzzle maker was saying, “I know you’ve been working with these old puzzle pieces for a few years, but they turned out to be wrong. Sorry! Use the new ones instead until further notice.” Unfortunately, you have no idea what the end result will look like; worse, you may have some ideas but they are wrong.



</question>


From my recommendations for building enterprise BPM systems
<quote>
4.6 Avoid the trap of the selection of “top-down” vs. “bottom-up” – use the “pinball” style

Another typical symptom of getting stuck in the design phase of your BPM system is the existence of endless discussions about the necessary “granularity” of the services:

“If we select a top-down style then we will create coarse-grained business-related services, but we are not sure whether such services are implementable or reusable. If we follow a bottom-up style then we will implement too many fine-grained services for which the business value is not obvious.”

Actually, any such discussion is misplaced at this stage. What should be discussed is how to build future flexibility into the enterprise BPM system which will allow the rapid and painless adaptation of services to increase or decrease their granularity. Small and agile improvements may be required in different layers – rather like the multiple refinements of a ball trajectory in a pinball machine.

This pitfall is extremely common, so take care! We think its root is in the traditional (vs. agile) development practices which aim to provide a perfect system straight away – in such a system all services shall have the “right” granularity.
</quote>

I agree about the analogy with puzzle. I used it for my business process modelling procedure, see http://www.improving-bpm-systems.com/pubs/AS-BPMDS08.pdf

<quote>
In some senses, modelling is similar to solving a puzzle – everyone has his/her own way, but there are a few practical tips, e.g. make the edges first, group together pieces with a similar colour or pattern, collect them into clusters, use the latter as “centres of crystallisation” and then fill in the rest. But, there are a few real-life difficulties: you have to do many puzzles at the same time, to use pieces from other puzzles, to cut new pieces, to optimise the number of pieces, to transform some puzzles, etc. It should be a lot of fun!
</quote>

Thanks,
AS

2008-12-12

Linkedin: I NEED INPUT ON A WHITE PAPER. CAN YOU PLEASE REVIEW THE LINKED ARTICLE?

<question group="Business Process Improvement">
I NEED INPUT ON A WHITE PAPER. CAN YOU PLEASE REVIEW THE LINKED ARTICLE?
.

www.OnTheSystem.com/everything

</question>

I like the idea of a simple theory which will help us to improve enterprises.

Some of my ideas from http://www.improving-bpm-systems.com/pubs/AS-AW08-keynote.pdf

An enterprise BPM system is a dynamic set of artefacts (or building blocks?)

Artefacts are interconnected and interdependent

We have to anticipate potential changes: policies, priorities, compliance, technology, etc.

Implementation of such changes necessitates the evolution of some artefacts and the relationships between them

It must be easy to modify all artefacts and relationships without causing any negative effects

Principles:
- All artefacts must be evolved to become digital, external and virtual
- All artefacts must be versionable throughout their lifecycle
- All relationships between these artefacts are modelled explicitly
- All models are made to be executable

Thanks,
AS

2008-12-07

LinkedIn: What's your experience on failure of CORBA and EJB?

<question group="International Association of Software Architects">
What's your experience on failure of CORBA and EJB?
The Rise and Fall of CORBA

http://acmqueue.com/modules.php?name=Content&pa=printer_friendly&pid=396&page=1

</question>

I used CORBA successfully in Java, Unix and Windows environment. Still remember the IDL and simplicity of the naming service from Visibroker. Wish that modern tools would match them soon.

I didn’t write “nontrivial CORBA applications”. I used CORBA as a tool to connect distributed services -- similar to modern ESB. Together with service coordination (via a workflow tool) and implementation of services in dynamic language (Jython) this worked fine. Versioning was externalised.

Thanks,
AS